如何理解JavaScript运行原理,过程是怎样的
Admin 2022-06-27 群英技术资讯 441 次浏览
JavaScript
引擎是一个计算机程序,它的主要作用是JavaScript运行时将源码编译为机器码。
每个主流Web浏览器都有自己的JavaScript
引擎,它通常由web
浏览器供应商开发。
Google Chrome V8。
Mozilla Firefox Spider Monkey。
Safari Javascript Core Webkit。
Edge (Internet Explorer)
以前的JavaScript
引擎主要在web浏览器使用,不过随着nodejs
的出现就打破了这种局限。
V8包含了解析器(parser
),解释器(Ignition
),优化编译器(TurboFan
)。
解析器(parser):用于生成抽象语法树。
解释器(Ignition):将源码转换为字节码。
优化编译器(TurboFan
):进行一些优化编译优化处理,比如内联缓存。
下面是V8引擎的大体工作流程。
浏览器运行环境中,浏览器提供了Web API
,如:HTTP请求,计时器,事件等。
服务器运行环境中,nodejs提供了API。
下面是JavaScript
在浏览器中运行时的架构,它包含一个内存堆、一个内存栈、一个事件循环、一个回调队列。
stack heap call stack callback queue event loop
下面代码展示了JavaScript
执行的调用栈变化。
function add(x, y) { return x + y; } function print(x, y) { console.log('x+y=',add(x, y)) } print(1, 3)
JavaScript
先执行了 print
函数,然后调用Web API setTimeout()
,Web API
存储了 setTimeout()
的回调函数,3秒后将回调函数添加到回调队列,事件循环发现调用栈为空,于是将队列里的回调函数移至调用栈执行。
function add(x, y) { return x + y; } function print(x, y) { setTimeout(function (){ console.log('x+y=',add(x, y)) }, 3000) } print(1, 3)
JavaScript
运行主要依靠JavaScript
引擎和运行环境, 引擎 将js源码翻译成计算机所理解的机器码, 运行环境 提供了一些与计算机底层通讯的API和运行实现。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了jquery实现表格无缝滚动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
动态路由可以根据不同用户登录获取不一样的路由层级,可随时调配路由,下面这篇文章主要给大家介绍了关于vue实现动态路由的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
文本给大家分享的是js中this和箭头函数,其中关于this关键字是很多新手学习JavaScript时,比较难理解。箭头函数是新增的,小编觉得比较有意思,因此下文给大家介绍一下。对js中this和箭头函数感兴趣的朋友就继续往下看吧。
这篇文章主要介绍了JavaScript二叉搜索树构建操作详解,文章围绕主题展开二叉搜索树的性质以及二叉搜索树的构建、查找和删除等内容,需要的小伙伴可以参考一下
这篇文章主要给大家介绍了关于uniapp的核心知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008