javascript - 所有 JavaScript 函数最终都会归结为 ECMAScript 或 Web API 规范吗?

标签 javascript google-chrome ecmascript-6 v8

请注意,这个问题是从浏览器的 Angular 提出的。

我一直在深入研究 JavaScript 的内部结构,并意识到任何一段 JavaScript 代码最终都是由引擎执行的。

根据我的理解,引擎“知道”如何处理 JavaScript 函数,它应该:

  1. 将其内置(ECMAScript 规范)
  2. 通过浏览器嵌入(Web API 规范)

那么,任何最细粒度级别的 JavaScript 函数最终都是在 ECMAScript 规范或浏览器的 Web API 规范中定义的,这样说对吗?

最佳答案

您的意思的答案可能是"is";您所问问题的答案是“否”;-)

您在https://developer.mozilla.org/en-US/docs/Web/JavaScript处看到的所有被描述为“JavaScript”的内容由 ECMAScript 标准定义。从实现 Angular 来看,这意味着它内置于 JavaScript 引擎中。

浏览器定义了一系列附加功能,最显着的是 DOM API,请参阅 https://developer.mozilla.org/en-US/docs/Web/Reference/API 。在实现方面,这些函数和对象由相应 JavaScript 引擎的相应嵌入器(即在您的场景中的浏览器)提供。 JavaScript 引擎为嵌入器提供了指定此类事物的设施,从概念上讲,“使用这些方法定义此对象,并且这些是调用这些方法时应该执行的函数”。

其他嵌入器提供不同的功能,例如节点:https://nodejs.org/docs/latest/api/ 。一般来说,嵌入器所做的就是将他们想要的任何东西暴露给 JavaScript 方面,以便在 JavaScript 引擎内运行的程序可以与世界交互。

当然还有脚本文件和模块中定义的 JavaScript 函数,即您自己的代码和导入。显然,这些既没有内置到引擎中,也没有内置到浏览器中,但引擎知道要为它们做什么,因为它知道如何执行您提供的源代码。

关于javascript - 所有 JavaScript 函数最终都会归结为 ECMAScript 或 Web API 规范吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59342821/

相关文章:

javascript - 如何使用字符串连接在 JSX 中创建 DOM 元素

javascript - MongoDB $or 用于 $match 阶段内的两个字段

css unset 在 chrome 中不起作用,在 firefox 中很好

google-chrome - 如何使 Chrome 始终使用远程调试端口标志启动

node.js - 失败请求的递归 promise

javascript - JS从字符串中读取对象

jquery - 按键事件在 IE 和 Chrome 中不起作用,但在 FF 中起作用

javascript - 使用 array.map() 从对象数组中查找元素

javascript - React-create-app 中的对象解构

c# - 如何获取带有名称和任何扩展名的图像?