JavaScript诞生背景
JavaScript诞生于1995年,最初是为了处理输入框的验证。
起初,表单数据要发送到服务端才能知道数据是否填写,以及数据格式是否正确,也就是所有的校验都要服务器端处理。当时拨号上网的速度很慢,当满心欢喜输入一通、提交到服务端,等了许久传递回来的却是“您输入的数据格式不正确,请重新输入”……
为了能在客户端及时处理表单的校验,减少服务端压力,产生了JavaScript。
ECMAScript诞生
1995年2月,Netscape与Sum公司在发布Netscape Navigator2前联合开发了LiveScript,后改名JavaScript。
同时,微软在Internet Explorer3中加入JScript。
产生了两个不同版本
- Netscape Navigator中的JavaScript
- Internet Explorer中的JScript
为了统一规范和标准
1997年,以JavaScript1.1为蓝本的建议被提交给ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会)
ECMA指定39号技术委员会(T39,Technical Committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”。
TC39由Netscape、Sun、微软、Borland及其他关注脚本语言发展的程序员组成。
最终,产生了ECMA-262,定义一种名为ECMAScript的新脚本语言的标准
总结:1995年网景和微软各自开发了一套JavaScript,当时网景的叫JavaScript,微软的叫JScript。为了解决一门语言有两套版本的现状,1997年,ECMA组织一个包括网景、微软、Sun和其他关注脚本的程序员组成的小组,来统一JavaScript规范。这个规范就是ECMA262,用来作为定义ECMAScript的标准
ECMA-262与ECMAScript的关系
宿主环境不仅提供基本的ECMAScript实现,还提供该语言的扩展。
DOM是扩展之一,在ECMAScript的核心类型和语法的基础上进行扩展,提供更多更具体的功能,目的是实现针对环境的操作。
宿主环境:Web浏览器、Node
ECMA-262规定了这门语言的下列组成部分:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 对象
ECMAScript就是实现ECMA-262规定的各个方面内容的语言的描述。
也就是ECMA-262规定了一些内容,而ECMAScript就是对这些规定的内容的语言描述
DOM
文档对象模型DOM是经过扩展用于HTML的应用程序编程接口(API)
API,应用程序接口,Application Programming Interface,是一组定义软件组件间如何交互的规则和协议;无需了解背后的详细实现,允许不同的软件应用程序或系统通过预定义的接口进行通信、共享数据和功能
如手机上的天气应用,可能会通过调用气象部门提供的API来获取实时天气数据。气象部分提供的接口,我不需要了解它如何实现,我能直接获取数据。
DOM创建表示文档的树形图,借助DOM提供的API,开发人员可对节点进行增删改操作。
网景和微软在DHTML中各持己见,为了约束他们。万维网联盟(W3C)开始规划DOM
BOM
浏览器对象模型,Browser Object Model。包括浏览器窗口和框架,针对浏览器的JavaScript扩展
- 弹出窗口、关闭窗口,移动和缩放窗口
- 提供浏览器详细信息的navigator对象
- 浏览器加载页面的详细信息的location对象
- 对cookies的支持
- XMLHttpRequest对象
小结
JavaScript是专为与网页交互而设计的脚本语言,由三部分组成:
- ECMAScript,由ECMA-262定义,提供核心语言功能;
- 文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
- 浏览器对象模型(BOM),提供与浏览器交互的方法和接口;
五大主流浏览器对ECMAScript5的支持程度越来越高;对DOM支持相差较多;对BOM也有差异。