一、 什么是JavaScript
1.1历史回顾:
1.2JavaScript实现:
JavaScript是一门用来与网页交互的脚本语言,完整的JavaScript实现包含以下几个部分:
- 核心(ECMAScript):由ECMAScript定义并提供核心功能
- 文档对象模型(DOM):提供与网页内容交互的方法和接口
- 浏览器对象模型(BOM):提供与浏览器交互的方法和接口
1.2.1 核心ECMAScript:
ECMAScript,即ECMA-262定义的语言,这门语言没有输入输出之类的方法。
Web浏览器是ECMAScript实现的一种宿主环境。宿主环境提供ECMAScript的基准实现和环境自身交互必需的扩展。DOM是一种扩展,使用ECMAScript核心类型和语法,提供特定于环境的额外功能。
不涉及浏览器的情况下,ECMA-262定义了语法、类型、语句、关键字、保留字、操作符、全局对象。
ECMAScript只是对实现这个规范描述的所有方面的一门语言的称呼,JavaScript实现了ECMAScript,Adobe ActionScript也实现了ECMAScript。
要成为ECMAScript实现必须满足以下条件: 支持ECMA-262中描述的所有“类型、值、对象、属性、函数、以及程序语法和语义”; 支持Unicode字符标准。
1.2.2 DOM
文档对象模型是一个应用编程接口,用于在HTML中使用扩展的XML。
万维网联盟(W3C,World Wide Web Consortium)制定了DOM的推荐标准DOM Level 1,这个规范由以下两个模块组成:
- DOM Core:提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式;
- DOM HTML:扩展了DOM Core,并增加了特定于HTML的对象和方法。
1.2.3 BOM
IE3和Netscape Navigator 3提供了浏览器对象模型API,用于支持访问和操作浏览器的窗口,使用BOM,开发者可以操控浏览器显示页面之外的部分。
BOM是唯一一个没有相关标准的JavaScript实现(HTML5以正式规范的形式涵盖了尽可能多的BOM特性)。
BOM主要针对浏览器窗口和子窗口,不过通常特定于浏览器的扩展也归于BOM中,比如:
- 弹出新浏览器窗口的能力;
- 移动、缩放和关闭浏览器窗口的能力;
- navigator对象,提供关于浏览器的详尽信息;
- location对象,提供;浏览器加载页面的详尽信息;
- screen对象,提供关于用户屏幕分辨率的详尽信息;
- performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
- 对cookie的支持;
- 其他自定义的对象,如XMLHttpRequest和IE的ActiveXObject。
1.3 JavaScript版本:
1.4 小结:
JavaScript的三个部分得到了五大浏览器(IE、Firefox、Chrome、Safari、Opera)不同程度的支持。
所有浏览器基本上对ES5提供了完善的支持;这些浏览器对DOM的支持各不相同。
HTML5中收录的BOM会因浏览器而异,不过开发者任然可以假定存在很大一部分公共特性。