gpt4 book ai didi

JavaScript:为什么控制台不被视为标准内置对象?

转载 作者:行者123 更新时间:2023-11-29 17:42:41 25 4
gpt4 key购买 nike

console 不包含在 the list 中,但几乎可以在任何环境中使用。

旁注,为什么 console 不像所有其他内置全局对象(如 NumberArray)一样大写?

最佳答案

ECMA-262 没有定义 console 因为 ECMA-262 没有 I/O 的概念。只需每个浏览器实现/注入(inject)它自己的 console 实现。

console object最早由浏览器调试工具引入,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 扩展了 Safari 也使用的 WebKit

  • Node.js 建立在 V8 之上,它定义了 console API由节点使用。

目前,许多 console 方法都是跨浏览器兼容的,但情况并非总是如此。检查compatibility table查看差异。

可以说,每个 console 实现都根据其服务的环境(芯片、服务器、浏览器等)而有所不同。因此,在 ECMA 中对其进行标准化是没有意义的。

就像其他浏览器特定的 API 一样,console 被注入(inject)到 javascript 中,让开发人员可以访问浏览器 API,例如 NodeDocument.

这是一个完整的列表 web API注入(inject) javascript 以便在浏览器的 JS 代码中访问。

why isn't console capitalized like every other built-in global object?

实现 window 接口(interface)的 whatwg 规范提供的所有方法都未大写 ( Check the window interface ),因为这些方法都不是构造函数。

spec 中也提到了它由于历史原因,console 是小写的。然而,本说明讨论的是 namespace 定义,使用“控制台”而不是规范中使用的“控制台”,并且不是公开的 API。


有趣的事实:我记得有一次,控制台 曾经在 debugger was not opened 时抛出错误。在 IE 上。

关于JavaScript:为什么控制台不被视为标准内置对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com