setTimeout是JavaScript本身的一部分还是浏览器提供的一个api?

setTimeout是JavaScript本身的一部分还是浏览器提供的一个api?,javascript,browser,ecmascript-6,v8,Javascript,Browser,Ecmascript 6,V8,setTimeout是JavaScript本身的一部分还是浏览器提供的一个api 它是ES的一部分吗?来自: 规范 生活水平如何 …您将无法在中看到它。它是浏览器中窗口对象的一部分,而不是在ECMAScript中定义的。因此,其他环境(如Node)不能保证具有该功能。该功能实际上是由浏览器的窗口对象公开的,因此它们不一定在ECMAScript规范中定义,因为它们不是JavaScript功能,而是浏览器本身的功能 您可以从前面链接的文档中的规范部分看到,它使用了WHATWG HTML生活标准:

setTimeout是JavaScript本身的一部分还是浏览器提供的一个api

它是ES的一部分吗?

来自:

规范 生活水平如何


…您将无法在中看到它。

它是浏览器中
窗口
对象的一部分,而不是在ECMAScript中定义的。因此,其他环境(如Node)不能保证具有该功能。

该功能实际上是由浏览器的
窗口
对象公开的,因此它们不一定在ECMAScript规范中定义,因为它们不是JavaScript功能,而是浏览器本身的功能

您可以从前面链接的文档中的规范部分看到,它使用了WHATWG HTML生活标准

与这样的Javascript函数相反,它显式使用EMACScript


澄清:尽管任何符合ECMAScript的任意环境都不可能有
setTimeout
,但Node.js尤其如此。@apsillers但是,请注意Node.js实现与web实现不同。它返回一个对象而不是一个数字。投票吧,这是一个非常有用的答案。但不幸的是,这并不是我特定问题的第一个正确答案。“由浏览器的窗口对象本身公开……它们不是JavaScript功能,而是浏览器本身的功能”ECMAScript标准定义的所有内容也由
窗口
公开。JavaScript有时被定义为ECMAScript+环境API。