第一章:什么是 JavaScript?

89 阅读2分钟

1995年, JavaScript 问世。 当时主要替代服务器语言处理表单输入验证功能。

JavaScript实现

完整的JavaScript 实现包含以下几个部分:

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

ECMA-262 定义了什么?

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

ECMAScript 只是对实现这个规范描述的所有内容的一门语言的称呼。JavaScript 实现了 ECMAScript。

ECMAScript版本

ECMAScript 3.1 变成了 ECMAScript的第五版 于2015年6月发布;

ECMA-262 第6版,俗称ES6、ES2015 或者 ES Harmony(和谐版),于 2015年6月发布。这一版包含了大概这个规范有史以来最重要额一批增强特性。 ES6正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型。

ECMA-262 第7版 也称为ES7 或者 ES2016, 于2016年6月发布。这次修订质保函了少量的语法层面增强,如 Array.prototype.includes 和指数操作符。

ECMA-262 第8版 也称为ES8 或者 ES2017, 于2017年6月发布。这一版主要增加了异步函数(async/await)、SharedArrayBuffer 及 Atomics API, 以及Object.values()/Object.entries()/Object.getOwnPropertyDescriptors() 和字符串填充方法,另外明确支持对象字面量最后的逗号。

ECMA-262 第9版 也称为ES9 或者 ES2018, 于2018年6月发布。这次修订包括异步迭代、剩余函数、和扩展属性、 一组新的正则表达式特性、 Promise Finally(), 以及模版字面量修订。

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

  • Array.prototype.flat()/flatMap()
  • String.ptototype.trimStart()/trimEnd()
  • Object.fromEntries()
  • Symbol.prototype.description
  • 明确定义了 Function.prototype.toString()的返回值
  • 固定了 Array.prototype.sort() 的顺序

另外这次修订解决了与Json 字符串兼容的问题, 并定义了catch子句的可选绑定。