第 1 章 什么是 JavaScript

150 阅读3分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

第 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
IE5Level 1(很少)
IE5.5~8Level 1(几乎全部)
IE9+Level 1、Level 2、Level 3
EdgeLevel 1、Level 2、Level 3
Opera 1~6
Opera 7~8.xLevel 1(几乎全部)、Level 2(部分)
Opera 9~9.9Level 1、Level 2(几乎全部)、Level 3(部分)
Opera 10+Level 1、Level 2、Level 3(部分)
Safari 1.0.xLevel 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 21.0
Netscape Navigator 31.1
Netscape Navigator 41.2
Netscape Navigator 4.061.3
Netscape 6+(Mozilla 0.6.0+)1.5
Firefox 11.5
Firefox 1.51.6
Firefox 21.7
Firefox 31.8
Firefox 3.51.8.1
Firefox 3.61.8.2
Firefox 41.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 会因浏览器而异,不过开发者仍然可以假定存在很大一部分 公共特性。