JavaScript: 为什么控制台不被视为标准内置对象?
JavaScript: Why isn't console considered a standard built-in object?
console
未包含在 the list 中,但几乎可以在任何环境中使用。
附带说明一下,为什么 console
不像其他所有内置全局对象(如 Number
或 Array
那样大写?
ECMA-262 没有定义 console
因为 ECMA-262 没有 I/O 的概念。每个浏览器 implements/injects 都有自己的 console
实现。
console对象最先由浏览器调试工具引入,Firebug率先尝试为控制台制定一致的标准api。
WHATWG(Web 超文本应用技术工作组)有一个早期的工作正在进行 console
规范来定义控制台的语义 API,试图创建跨环境融合。
console
is not included in the list, but is pretty much available to use in any environment.
由于以下原因,console
对象在浏览器之间以某种方式保持一致:
浏览器和 Node.js 都单独遵循 WHATWG 控制台规范。
Chrome 扩展了 WebKit,它也被 Safari 使用。
Node.js建立在V8之上,它定义了node使用的console API
目前许多 console
方法都是跨浏览器兼容的,但情况并非总是如此。检查 compatibility table 以查看差异。
可以说,每个 console
实现都因服务环境(芯片、服务器、浏览器等)而异。因此,在 ECMA 中对其进行标准化是没有意义的。
就像其他特定于浏览器的 API 一样,console
被注入到 javascript 以便开发人员可以访问浏览器 API,例如 Node
和 Document
.
这是一个完整的 web API 列表,注入 javascript 可以在浏览器的 JS 代码中访问。
why isn't console
capitalized like every other built-in global object?
实现window
接口的whatwg规范提供的所有方法不是capitalized(Check the window interface),因为非这些方法是构造函数。
spec中也提到,由于历史原因,console
是小写的。然而,这篇文章谈论的是 命名空间定义 使用 "console" 而不是规范中使用的 "Console" 和 NOT 公开的API.
有趣的事实:我记得有一次 console
在 IE 上 debugger was not opened 时会抛出错误。
console
未包含在 the list 中,但几乎可以在任何环境中使用。
附带说明一下,为什么 console
不像其他所有内置全局对象(如 Number
或 Array
那样大写?
ECMA-262 没有定义 console
因为 ECMA-262 没有 I/O 的概念。每个浏览器 implements/injects 都有自己的 console
实现。
console对象最先由浏览器调试工具引入,Firebug率先尝试为控制台制定一致的标准api。
WHATWG(Web 超文本应用技术工作组)有一个早期的工作正在进行 console
规范来定义控制台的语义 API,试图创建跨环境融合。
console
is not included in the list, but is pretty much available to use in any environment.
由于以下原因,console
对象在浏览器之间以某种方式保持一致:
浏览器和 Node.js 都单独遵循 WHATWG 控制台规范。
Chrome 扩展了 WebKit,它也被 Safari 使用。
Node.js建立在V8之上,它定义了node使用的console API
目前许多 console
方法都是跨浏览器兼容的,但情况并非总是如此。检查 compatibility table 以查看差异。
可以说,每个 console
实现都因服务环境(芯片、服务器、浏览器等)而异。因此,在 ECMA 中对其进行标准化是没有意义的。
就像其他特定于浏览器的 API 一样,console
被注入到 javascript 以便开发人员可以访问浏览器 API,例如 Node
和 Document
.
这是一个完整的 web API 列表,注入 javascript 可以在浏览器的 JS 代码中访问。
why isn't
console
capitalized like every other built-in global object?
实现window
接口的whatwg规范提供的所有方法不是capitalized(Check the window interface),因为非这些方法是构造函数。
spec中也提到,由于历史原因,console
是小写的。然而,这篇文章谈论的是 命名空间定义 使用 "console" 而不是规范中使用的 "Console" 和 NOT 公开的API.
有趣的事实:我记得有一次 console
在 IE 上 debugger was not opened 时会抛出错误。