Rea*_*eal 2 javascript ecmascript-5 ecmascript-6
console不包括在列表中,但几乎可以在任何环境中使用。
附带说明一下,为什么console不像其他内置全局对象那样大写,例如Number或Array?
ECMA-262 没有定义,console因为 ECMA-262 没有 I/O 的概念。只需每个浏览器实现/注入自己的console实现。
该控制台对象首先是由浏览器的调试工具介绍,萤火虫是第一次尝试制定控制台API一致的标准。
在WHATWG(网络超文本应用技术工作组)在正在进行的早期作品console规格定义控制台的API的语义,企图在不同环境创建收敛。
console不包括在列表中,但几乎可以在任何环境中使用。
console由于以下原因,该对象在浏览器之间以某种方式保持一致:
浏览器和 Node.js 都单独遵循 WHATWG 控制台规范。
Chrome 扩展了WebKit,它也被 Safari 使用。
Node.js 建立在V8之上,它定义了node 使用的控制台 API。
目前,许多console方法是跨浏览器兼容的,但情况并非总是如此。检查兼容性表以查看差异。
可以说,每 console实现都因其所服务的环境(芯片、服务器、浏览器等)而异。因此,在 ECMA 中对其进行标准化并不完全有意义。
就像其他浏览器特定的 API 一样,console被注入 javascript 以让开发人员访问浏览器 API,例如Node和Document。
以下是注入 javascript的完整Web API列表,可在浏览器的 JS 代码中访问。
为什么
console不像其他所有内置全局对象那样大写?
实现window接口的 whatwg 规范提供的所有方法都没有大写(检查窗口接口),因为这些方法都不是构造函数。
规范中还提到console由于历史原因而小写。然而,这说明是在谈论命名空间定义使用规范使用“控制台”,而不是“控制台”和不公开的API。
小花絮:我记得以前console如果没有在 IE 上打开调试器,它会抛出错误。