在Web浏览器上下文中理解的总称“JavaScript”包含几个非常不同的元素。
其中一个是核心语言(ECMAScript),另一个是Web API的集合,包括DOM(文档对象模型)
JavaScript, the core language (ECMAScript)
JavaScript的核心语言由ECMA TC39委员会标准化为ECMAScript语言。
此核心语言也用于非浏览器环境,例如node.js.
ECMAScript defines:
- 语言语法(解析规则,关键字,控制流,对象字面初始化……)
- 错误处理机制(throw, try / catch,创建用户自定义的错误类型的能力)
- 类型(boolean, number, string, function, object, ...)
- The global object: 在浏览器中,此全局对象是window对象,但ECMAScript仅定义不是特定于浏览器的API,例如,parseInt, parseFloat, decodeURI, encodeURI...
- 基于原型的继承机制
- 内置对象和函数(JSON, Math, Array.prototype方法, Object内省方法等)
- Strict mode
ECMAScript Internationalization API Specification 是 ECMAScript语言规范的补充。
国际化API为JavaScript应用程序提供排序规则(字符串比较),数字格式和日期和时间格式,让应用程序选择语言并根据需要定制功能。
DOM APIs
WebIDL
WebIDL规范提供了DOM技术和ECMAScript之间的胶水。
The core of the DOM
文档对象模型(DOM)是一种跨平台,与语言无关的约定,用于表示HTML,XHTML和XML文档中的对象并与之交互。
可以通过使用对象上的方法来寻址和操纵DOM树中的对象。
W3C标准化了核心文档对象模型,该模型定义了将HTML和XML文档抽象为对象的语言无关接口,并定义了操纵此抽象的机制。
HTML DOM
HTML是Web的标记语言,是根据DOM指定的。 分层在DOM Core中定义的抽象概念之上,HTML也定义了元素的含义。 HTML DOM包括诸如HTML元素上的className属性或诸如document.body之类的API。
HTML规范还定义了对文档的限制; 例如,它要求所有表示无序列表的ul元素的子元素都是li元素,因为它们代表列表项。 通常,它还禁止使用标准中未定义的元素和属性。
Other notable APIs
- 首先在HTML标准的Window接口上指定setTimeout和setInterval函数。
- XMLHttpRequest 使发送异步HTTP请求成为可能。
- CSS对象模型 抽象CSS规则作为对象。
- WebWorkers 允许并行计算。
- WebSockets 允许低级双向通信。
- Canvas 2D Context 是<canvas>的绘图API。