2

青少年c语言编程培训机构(c语言编程语言培训)

尽管你可能使用JavaScript 很多年了,但是你知道JavaScript 在浏览器中是如何工作的吗?

尽管你可能使用JavaScript 很多年了,但是你知道JavaScript 在浏览器中是如何工作的吗?

参考附图,请注意,图形中的大多数内容都不是JavaScript语言本身的一部分。Web API、Callback Queue(回调队列)和Event Loop(事件循环)都是浏览器提供的功能。JavaScript 在Node.js中运行的情况类似。

为什么JavaScript是一种非阻塞的单线程语言?

JavaScript 一次只能做一件事,因为它只有一个调用栈(Call stack)。调用栈是JavaScript 解释器跟踪函数调用的机制。每次脚本或函数调用另一个函数时,它都会被添加到调用栈的顶部。每次函数退出时,解释器都会将其从调用栈中移除。

JavaScript只有一个调用栈,这就是为什么它一次只能做一件事。

JavaScript堆(Heap)是我们定义函数或变量时存储对象的地方。

虽然这对于JavaScript语言本身是正确的,但我们仍然可以在浏览器中并发执行操作,这是通过浏览器提供的Web API 实现。

为了应对JavaScript 单线程机制,Web浏览器为我们提供了可以在JavaScript代码中调用的API。然而,执行是由平台本身处理的,这就是它不会阻塞调用栈的原因。

Web API 的另一个优点是它们是用底层代码(如C语言)编写的,这允许它们做一些在纯JavaScript中不可能做的事情。

这样,就可以在JavaScript 中进行AJAX请求或操作DOM,以及其它一些事情,如地理跟踪、访问Local Storage、Service Workers等等。

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2596440/
1
上一篇少儿编程少儿(少儿编程基础)
下一篇 天津河西儿童编程培训(天津河北区铁东路街少儿编程培训)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部