JS中的console.log是浏览器提供的Web Api的一部分吗

Dic*_*ens 1 javascript

我是 JS 新手,正在学习 Web API。让我有点困惑的是,如果 console.log 是浏览器提供的 Web Api 的一部分,如果是的话,那么为什么它不通过回调队列启动,我的意思是,据我所知,JS 在运行时发送了一些东西不属于要启动的Web Api。例如,dom、setTimeOut 是 Web api,浏览器不会自行启动它,而是发送到 Web api

zer*_*298 5

我认为您正在将同步和异步与浏览器 API 函数和 ECMAScript 核心混合在一起。除了规范中保证的 ECMA 核心功能之外,JavaScript 引擎(如 Rhino、node.js 等)还可以添加自己的 API。

这些 API 可以包括同步和异步函数。例如,将setTimeout使用事件循环,console.log()将同步写入浏览器的控制台(引擎之间的实现有所不同),fetch将调用可编辑的异步函数await

这些引擎可以向 JavaScript API 添加任何它们想要的内容,但这些附加 API 不需要是异步/同步的,甚至不需要使用事件循环。