什么是JavaScript
历史回顾
- 1995年 网景公司+Sun公司 LiveScript —> JavaScript
- 1996年 微软 IE3 包含名为 JScript 的 JavaScript 实现
- 1997年 JavaScript 1.1 作为提案被提交给欧洲计算机制造商协会(Ecma) ECMAScript
- 1998年 浏览器均以 ECMAScript 作为自己 JavaScript 实现的依据
JavaScript实现
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
ECMAScript
ECMAScript,即 ECMA-262 定义的语言,并不局限于 Web 浏览器。
在基本的层面,它描述这门语言的如下部分
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 全局对象
DOM
- 文档对象模型(DOM,Document Object Model)是一个应用编程接口(API),用于在 HTML 中使用扩展的 XML。DOM 将整个页面抽象为一组分层节点。HTML 或 XML 页面的每个组成部分都是一种节点,包含不同的数据。
- DOM 通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用 DOM API,可以轻松地删除、添加、替换、修改节点。
- DOM 并非只能通过 JavaScript 访问,而且确实被其他很多语言实现了。不过对于浏览器来说,DOM 就是使用 ECMAScript 实现的,如今已经成为 JavaScript 语言的一大组成部分。
- 除了 DOM Core 和 DOM HTML 接口,有些其他语言也发布了自己的 DOM 标准。
- 可伸缩矢量图 (SVG)
- 数学标记语言 (MathML)
- 同步多媒体集成语言 (SMIL)
BOM
- IE3 和 Netscape Navigator 3 提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗口
- BOM唯一一个没有相关标准的 JavaScript 实现。HTML5 以正式规范的形式涵盖了尽可能多的 BOM 特性,解决了很多与 BOM 相关的问题
- BOM 主要针对浏览器窗口和子窗口(frame),通常将任何特定于浏览器的扩展都归在 BOM 的范畴。
- 弹出新浏览器窗口的能力
- 移动、缩放和关闭浏览器窗口的能力
- navigator 对象,提供关于浏览器的详尽信息
- location 对象,提供浏览器加载页面的详尽信息
- screen 对象,提供关于用户屏幕分辨率的详尽信息
- performance 对象,提供浏览器内存占用、导航行为和时间统计的详尽信息
- 对 cookie 的支持
- 其他自定义对象,如 XMLHttpRequest 和 IE 的 ActiveXObject
小结
- JavaScript 是一门用来与网页交互的脚本语言,包含以下三个组成部分
- ECMAScript:由 ECMA-262 定义并提供核心功能
- 文档对象模型(DOM):提供与网页内容交互的方法和接口
- 浏览器对象模型(BOM):提供与浏览器交互的方法和接口
- JavaScript 的这三个部分得到了五大 Web 浏览器(IE、Firefox、Chrome、Safari 和 Opera)不同程度的支持。所有浏览器基本上对 ES5(ECMAScript 5)提供了完善的支持,而对 ES6(ECMAScript 6)和ES7(ECMAScript 7)的支持度也在不断提升。这些浏览器对 DOM 的支持各不相同,但对 Level 3 的支持日益趋于规范。HTML5 中收录的 BOM 会因浏览器而异,不过开发者仍然可以假定存在很大一部分公共特性。