2

青少年c语言编程培训机构(c语言编程语言培训)-pg电子游戏试玩平台网站

尽管你可能使用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
上一篇少儿编程少儿(少儿编程基础)
下一篇 天津河西儿童编程培训(天津河北区铁东路街少儿编程培训)

为您推荐

联系pg电子游戏试玩平台网站

联系pg电子游戏试玩平台网站

在线咨询:

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注pg电子游戏试玩平台网站

返回顶部
网站地图