怎么自己做一个下载网站:第2节 了解JavaScript

JavaScript诞生于1995年;当时,它的主要意图是处理客户端验证;在JavaScript问世之前,有必要把表奇数据发送到效劳器端才干验证数据,比如:是否填写了某个值,是否输入了一个无效的值;当一个用户填写完一个表单,单击提交,然后等候了30秒钟,最终效劳器返回音讯说有一个必填字段没有填写,用户只得从头填写;因此为了完成这样的简略的表单验证有必要频频地与效劳器交换数据,并且会加剧用户的担负。

当时,Netscape Navigator期望通过JavaScript来解决这个问题,在客户端就可以够进行验证;自此今后,javascipt逐渐成为所有阅读有必要支撑的一个功用;如今,JavaScript的用处早已不再局限于简略的数据验证,而是具备了与阅读器窗口及其内容等简直所有方面交互的能力;其现已成为一个功用全面的编程言语,可以处理杂乱的核算和交互,具有了闭包、匿名函数,乃至元编程等特性;作为Web的一个重要组成部分,JavaScript的功用愈来愈强壮,它从一个简略的脚本东西开展成为一门强壮的编程言语,完满是出乎人们的意料;

应该说,它便是一门十分简略的言语,也是一门十分杂乱的言语;说它简略,是因为学会使用它十分容易,说它杂乱,是因为要真正把握它,需要很大的精力。

JavaScript难度体现在:JavaScript的常识点交叉引用比较多,并且常识点层次感其实不强;广度,JavaScript宿主环境比较杂乱,比如,html5就添加了很多API,如:客户端存储、数据库、定位、Web Worker、文件体系等;另外,因为Javascript言语的特点,有很多的细节或底层的原理,需要你花更多的时间和精力去研讨。另外,因为学习我们这门言语的同学,大大都都是第一次触摸编程,或者说编程的出发点比较低,而在JavaScript学习中会触摸很多专业术语、概念和编程思维,假如你有其他言语的开发基础,天然了解起来就比较容易了,假如没有,那还得在思维上有所了解,也就是思维上的难度,不过,学完我们这门JavaScript课后,你再学习其他言语,也相比照较容易了,因为言语的学习就是一通百通。

简略前史:


1995年,Netscape公司抉择为Navigator2开发一种名为LiveScript的脚本言语,该言语将同时在阅读器和效劳器中使用,它在效劳器端上的名字叫LiveWire;后来,Sun公司(被Oracle公司收购,所以JavaScript就属于其了)也加入到这个项目中来,在Navigator2正式发布前,Netscape为了赶上名声大噪的Java,暂时把LiveScript改成Javascript。

Javascript取得了巨大的成功,在Navigator3中已发布了JavaScript1.1;JavaScript遭到了用户的极大重视;同时,微软也在它自己的阅读器IE中也加入了名为Jscript的JavaScript完成,命名为Jscript,主要是为了避开与Netscape有关的授权问题;以现在的眼光来看,1996年微软为了进入Web阅读器而施行的这个重大举措,也标志着Javascript向前迈了一大步。

微软推出的Jscript的JavaScript,意味着有了两个不同的JavaScript版本:Navigator中的JavaScript与IE中的Jscript;当时,还没有呈现所谓的规范,更没有所谓的Javascript的规范语法和特性,两个不同版本并存的局势现已完全暴露了这个问题,跟着业界忧虑的日益加剧,JavaScript的规范化问题被提上了日程。

1997年,以Javascript1.1为蓝本的建议被提交给了ECMA(即欧洲核算机制造商协会);该协会指定39号技能委员会(T39)负责“规范化一种通用、跨平台、供给商中立的脚本言语的语法和语义”;T39由来自Netscape、Sun、微软、Borland及其他重视脚本言语开展的公司的程序员组成,通过数月的努力完成了ECMA-262规范,即一种名为ECMAScript(音为:ek-ma-script)的新脚本言语的规范,为何不叫JavaScript,主要仍是因为商标上的冲突。

Javascript的完成:


虽然Javascript和ECMAScript通常都被人们用来表达相同的意义,但Javascript的意义却比ECMA-262中规则的要多得多;一个完好的Javascript完成包括:核心(ECMAScript)、文档对象模型(DOM)、阅读器对象模型(BOM)。

1) 核心(ECMAScript):

由ECMA-262界说的ECMAScript与Web阅读器没有依赖关系;ECMA-262界说的只是这门言语的基础,而在此基础之上可以构建更完善的脚本言语;

详细来说ECMA-262规则了以下内容部分:语法、类型、语句、要害字、保留字、操作符、对象,它仅针对文本、数组、日期和正则表达式的操作界说了少数的API,其本身其实不包括输入和输出界说;其输入输出的功用(类似网络、存储和图形相关的杂乱特性)是由JavaScript所属的宿主环境(host environment)提供的;这里的宿主环境通常是Web阅读器。
function Point(x,y){
this.x = x;
this.y = y;
}
Point.prototype.r = function(){
return Math.sqrt(this.x * this.x + this.y * this.y);
};
var p = new Point(1,1);
console.log(p.r());

宿主环境不只提供根本的ECMAscript的完成,同时也会提供该言语的扩展,以便言语与环境之间对接交互;而这些扩展,如DOM,则使用ECMAScript的核心类型和语法提供更多更详细的功用,以便完成针对环境的操作;其他宿主环境包括Node(一种效劳端Javascript)和Adobe Flash。

ECMAScript就是对完成ECMA-262规范规则的各个方面内容的言语的描述;Javascript完成了ECMAScript,ActionScript也完成了ECMAScript。

2) 文档对象模型(DOM):

文档对象模型(DOM,document Object Model)是针对XML但通过扩展用于HTML的应用程序编程接口(API,Application Programming Interface);DOM把整个页面映射为一个多层节点结构;HTML或XML页面中的每一个组成部分都是某品种型的节点,这些节点又包括着不同类型的数据,如:


Web前端开发-零点程序员



zeronetwork



说明:依据这个HTML结构,可以绘制一个分层节点图表明。

通过DOM提供的API,可以轻松自如地删除、添加、替换或修正任何节点;
window.onload = function(){
var div = document.getElementById("mydiv");
if(!div){
div = document.createElement("div");
div.id = "mydiv";
div.innerHTML = "

Web前端开发

";
document.body.appendChild(div);
}
var p = document.createElement("p");
p.style.color = "purple";
p.innerHTML = "zeronetwrok大师哥王唯";
div.appendChild(p);
}

3) 阅读器对象模型(BOM)

支撑可以拜访和操作阅读器窗口的阅读器中对象模型(BOM,Browser Object Model);

使用BOM可以控制阅读器显示的页面以外的部分;其实就是阅读器窗口,而各个阅读器完成的方式不同,它作为Javascript完成的一部分但却没有相关的规范,所以兼容性是个大问题,也是常常会导致问题的当地;但这个问题在HTML5中得到了解决,HTML5把很多BOM功用写入正式规范,解决了兼容性问题,但其实不是所有。


Web前端开发-零点程序员-王唯



3.Javascript版本及ECMAScript的版本:

Javascript版本及ECMAScript的版本

Javascript版本及ECMAScript的版本


【免责声明】本文仅代表作者或发布者个人观念,不代表(www.lmnkf.cn)及其所属公司官方发声,对文章观念有疑义请先联络作者或发布者自己修正,若内容触及侵权或违法信息,请先联络发布者或作者删除,若需我们协助请联络平台管理员,Emailcxb5918(本平台不支撑其他投诉反馈渠道,谢谢合作)。若需要学习以上相关常识请到巨推学院观看视频教程,网站地址www.tsllg.cn。

相关阅读