本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
第 1 章 什么是 JavaScript
1.1 简短的历史回顾
1995 年,NetScape(网景公司),布兰登(Brendan Eich) ,Mocha(后来改名为 LiveScript
什么是JS:基于对象和事件驱动的客户端脚本语言
W3C第一个标准: ECMA-262
1.2 JavaScript 实现
JS包含哪几个部分: ECMA 、BOM 、DOM
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
1.2.1 ECMAScript
ECMAScript,即 ECMA-262 定义的语言,并不局限于 Web 浏览器。
ECMAScript 3.1 变成了 ECMA-262 的第 5 版
ECMA-262 第 6 版,俗称 ES6、ES2015 或 ES Harmony(和谐版)
ECMA-262 第 7 版,也称为 ES7 或 ES2016
ECMA-262 第 8 版,也称为 ES8、ES2017
ECMA-262 第 9 版,也称为 ES9、ES2018
ECMA-262第 10版,也称为 ES10、ES2019
以后每年一个版本
1.2.2 DOM
文档对象模型(DOM,Document Object Model)是一个应用编程接口(API),用于在 HTML 中使 用扩展的 XML。DOM 将整个页面抽象为一组分层节点。HTML 或 XML 页面的每个组成部分都是一种 节点,包含不同的数据。
DOM 级别:DOM Level 1、DOM Level 1、DOM Level 3
| 浏 览 器 | DOM 兼容 |
|---|---|
| Netscape Navigator 1~4.x | — |
| Netscape 6+(Mozilla 0.6.0+) | Level 1、Level 2(几乎全部)、Level 3(部分) |
| IE2~4.x | — |
| IE5 | Level 1(很少) |
| IE5.5~8 | Level 1(几乎全部) |
| IE9+ | Level 1、Level 2、Level 3 |
| Edge | Level 1、Level 2、Level 3 |
| Opera 1~6 | — |
| Opera 7~8.x | Level 1(几乎全部)、Level 2(部分) |
| Opera 9~9.9 | Level 1、Level 2(几乎全部)、Level 3(部分) |
| Opera 10+ | Level 1、Level 2、Level 3(部分) |
| Safari 1.0.x | Level 1 |
| Safari 2+ | Level 1、Level 2(部分)、Level 3(部分) |
| iOS Safari 3.2+ | Level 1、Level 2(部分)、Level 3(部分) |
| Chrome 1+ | Level 1、Level 2(部分)、Level 3(部分) |
| Firefox 1+ | Level 1、Level 2(几乎全部)、Level 3(部分) |
1.2.3 BOM
浏览器对象模型(BOM):用于支持访问和操作浏览器的窗 口。使用 BOM,开发者可以操控浏览器显示页面之外的部分。
1.3 JavaScript 版本
作为网景的继承者,Mozilla 是唯一仍在延续最初 JavaScript 版本编号的浏览器厂商
| 浏 览 器 | JavaScript 版本 |
|---|---|
| Netscape Navigator 2 | 1.0 |
| Netscape Navigator 3 | 1.1 |
| Netscape Navigator 4 | 1.2 |
| Netscape Navigator 4.06 | 1.3 |
| Netscape 6+(Mozilla 0.6.0+) | 1.5 |
| Firefox 1 | 1.5 |
| Firefox 1.5 | 1.6 |
| Firefox 2 | 1.7 |
| Firefox 3 | 1.8 |
| Firefox 3.5 | 1.8.1 |
| Firefox 3.6 | 1.8.2 |
| Firefox 4 | 1.8.5 |
1.4 小结
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 会因浏览器而异,不过开发者仍然可以假定存在很大一部分 公共特性。