实现

Javascript包含

  • ECMAscript: 即语言定义和规范
  • DOM:Document Object Model, 文档对象模型
  • BOM:Browser Object Model,浏览器对象模型

ECMAscript

ES各版本主的要更新

ES6

ECMA-262 第 6 版,俗称 ES6、ES2015 或 ES Harmony(和谐版),于 2015 年 6 月发布。这一版包含了大概这个规范有史以来最重要的一批增强特性。

ES6 正式支持了

  • 模块
  • 迭代器
  • 生成器
  • 箭头函数
  • 期约
  • 反射
  • 代理
  • 众多新的数据类型

ES7

ECMA-262 第 7 版,也称为 ES7 或 ES2016,于 2016 年 6 月发布。
这次修订只包含少量语法层面的增强

  • Array.prototype.includes
  • 指数操作符

ES8

ECMA-262 第 8 版,也称为 ES8、ES2017,完成于 2017 年 6 月。
这一版主要增加了

  • 异步函数(async/ await)
  • SharedArrayBuffer
  • Atomics API
  • Object.values() /Object.entries() /Object. getOwnPropertyDescriptors()
  • 字符串填充方法
  • 明确支持对象字面量最后的逗号。

ES9

ECMA-262 第 9 版,也称为 ES9、ES2018,发布于 2018 年 6 月。
这次修订包括

  • 异步迭代、剩余和扩展属性
  • 一组新的正则表达式特性
  • Promise finally()
  • 模板字面量修订

ES10

ECMA-262 第 10 版,也称为 ES10、ES2019,发布于 2019 年 6 月。
这次修订增加了

  • Array.prototype. flat()/flatMap()、
  • String.prototype.trimStart()/trimEnd()、
  • Object.fromEntries()方法,
  • Symbol.prototype.description属性
  • 明确定义了 Function.prototype.toString()的返回值
  • 固定了 Array.prototype.sort()的顺序。
  • 修订解决了与 JSON 字符串兼容的问题
  • 定义了 catch子句的可选绑定。

ES11

即ES2020,新增:

  • String 的 matchAll 方法
  • 动态导入语句 import()
  • import.meta
  • export * as ns from ‘module’
  • Promise.allSettled
  • 一种新的数据类型:BigInt
  • GlobalThis
  • Nullish coalescing Operator
  • Optional Chaining

ES12

即ES2021, 新增:

  • String.prototype.replaceAll()
  • Promise.any
  • WeakRef
  • &&=, ||= and ??=
  • Numeric separators

DOM

DOM级别

  • DOM0(事实不存在)
  • DOM1: 主要映射文档结构
  • DOM2: 引入了以下新模块
    • DOM视图: 定义了跟踪不同文档视图的接口
    • DOM事件: 定义事件, 事件处理
    • DOM样式: 定义了基于CSS为元素应用样式的接口
    • DOM遍历和范围: 定义了遍历和操作文档树的接口
  • DOM3:
    • 引入统一方式加载和保存文档的方法
    • 新增验证文档的方法
    • 扩展DOM核心, 支持XML1.0规范
  • DOM4:w3c不再按照level来维护DOM,而是作为DOM living standard(可理解为 所有DOM为现实标准)维护,成为DOM4, 新增内容包括代替Muation Events的Mutation Observer 。详情可阅读此文章

BOM

浏览器由不同的厂家开发,BOM存在w3c标准和事实标准

主要针对浏览器窗口和子窗口(frame),人们通常把特定于浏览器的扩展归类在BOM中,如:

  • 弹出新浏览器窗口的能力
  • 移动、缩放、关闭窗口能力
  • navigator对象
  • location对象
  • screen对象
  • performance对象:提供内存,导航行为、时间统计等信息
  • 对cookie的支持
  • 其他自定义对象如 XHR对象 ActiveX对象

本章完

  1. <br /> <br />