第1章 JavaScript 简介


# 第1章 JavaScript 简介

# 1.1 JavaScript简史

# 1.2 JavaScript实现

JavaScript实现由下列三部分组成:

  • ECMAScript(核心)
  • DOM(文档对象模型)
  • BOM(浏览器对象模型)

# 1.2.1 ECMAScript

ECMA-262定义的ECMAScriptWeb浏览器没有依赖关系。Web浏览器是ECMAScript实现可能的宿主环境之一,其他宿主环境包括Node.jsAdobe Flash动画

ECMAScript组成部分:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 对象

ECMAScript版本:

版本 发布时间 版本差异
1 1997年6月 首版
2 1998年6月 1998年6月发布。格式修正,以使得其形式与ISO/IEC16262国际标准一致
3 1999年12月 强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变
4 放弃 由于关于语言的复杂性出现分歧,第4版本被放弃,其中的部分成为了第5版本及Harmony的基础
5 2009年12月 新增“严格模式(strict mode)”,一个子集用作提供更彻底的错误检查,以避免结构出错。澄清了许多第3版本的模糊规范,并适应了与规范不一致的真实世界实现的行为。增加了部分新功能,如getters及setters,支持JSON以及在对象属性上更完整的反射[4][5][6][7][8]
5.1 2011年6月 ECMAScript标5.1版形式上完全一致于国际标准ISO/IEC 16262:2011。
6 2015年6月 ECMAScript 2015(ES2015),第 6 版,最早被称作是 ECMAScript 6(ES6),添加了类和模块的语法,其他特性包括迭代器,Python风格的生成器和生成器表达式,箭头函数,二进制数据,静态类型数组,集合(maps,sets 和 weak maps),promise,reflection 和 proxies。作为最早的 ECMAScript Harmony 版本,也被叫做ES6 Harmony。
7 2016年6月 ECMAScript 2016(ES2016),第 7 版,多个新的概念和语言特性[9]
8 2017年6月 ECMAScript 2017(ES2017),第 8 版,多个新的概念和语言特性[10]
9 2018年6月 ECMAScript 2018 (ES2018),第 9 版,包含了异步循环,生成器,新的正则表达式特性和 rest/spread 语法。
10 2019年6月 ECMAScript 2019 (ES2019),第 10 版

# 1.2.2 文档对象模型(DOM)

文档对象模型(DOMDocument Object Model)是针对XML但进过扩展用于HTML的应用程序编程接口(APIApplication Programming Interface)。DOM把整个页面映射为一个多层节点结构,也叫作DOM树,页面中每个组成部分都是某种类型的节点。

一个完整的HTML页面应该包含下列标签:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

# 1. DOM级别

  • DOM1
  • DOM2
  • DOM3

# 1.2.3 浏览器对象模型(BOM)

扩展:

  • 弹窗功能
  • 移动、缩放和关闭浏览器
  • 提供浏览器详细信息的navigator对象
  • 提供浏览器所加载页面的详细信息的navigator对象
  • 提供用户显示器分辨率详细信息的screen对象
  • 支持cookies
  • XHLHttpRequestIEActiveXObject对象

# 1.4 小结

JavaScript是一种专与网页交互设计的脚本语言,由下列三个不同的部分组成:

  • ECMAScript,有ECMA-262定义,提供核心语言功能
  • 文档对象模型(DOM),提供访问和操作网页内容的方法和接口
  • 浏览器对象模型(BOM),提供与浏览器交互的方法和接口。

JavaScript的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari和Opera)中都得到了不同程度的支持。

浏览器内核

  • gecko,代表浏览器FireFox
  • Presto,代表浏览器Opera
  • WebKit,代表浏览器Safari
  • Blink,代表浏览器Chrome
  • Trident,代表浏览器IE、360安全浏览器、QQ浏览器

浏览器内核主要分成两部分:渲染引擎(layout engineer或RenderingEngine)和JS引擎

渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整讯息(例如加入css等),以及计算网页的显示方式,然后会输出至浏览器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其他需要编辑、显示网络内容的应用程序都需要内核。

JS引擎:解析和执行JavaScript来实现网页的动态效果。

上次更新: 10/26/2019, 11:44:13 PM