JavaScript的工作原理
在学习Web前端的时候,有很多重要的知识点需要我们深刻理解并掌握实际运用场景。例如,JavaScript是Web前端人员必须要掌握的知识点之一,下面,为大家全面介绍JavaScript的工作原理,希望对大家高效学习Web前端有所帮助。
JavaScript引擎是什么?
JavaScript引擎是一种用于将我们的代码转换为机器可读语言的引擎。如果没有JavaScript引擎,你编写的代码对计算机来说简直是一堆“胡言乱语”。不仅仅是JavaScript,其他所有编程语言都需要一个类似的引擎,来将这些“胡言乱语”转换成对计算机有意义的语言。
JavaScript引擎的组成部分有哪些?
1、编译器。主要工作是将源代码编译成抽象语法树,然后在某些引擎中还包含将抽象语法树转换成字节码。
2、解释器。在某些引擎中,解释器主要是接受字节码,解释执行这个字节码,然后也依赖来及回收机制等。
3、JIT工具。一个能够JIT的工具,将字节码或者抽象语法树转换成本地代码,当然它也需要依赖牢记垃圾回收器和分析工具(profiler)。它们负责垃圾回收和收集引擎中的信息,帮助改善引擎的性能和功效。
JavaScript引擎是如何工作的?
JavaScript的工作形式取决于是什么引擎。目前比较常用的JavaScript引擎有两个:WebKit的JavaScriptCore和Google的V8引擎。这两个引擎处理代码的方式是不同的。
JavaScriptCore: 源代码=》抽象语法树=》字节码
1、词法分析,将源代码分解成一系列具有明确含义的符号或字符串(分词);
2、用词法分析器分析这些符号,将其构建成抽象语法树;
3、解析器生成字节码(编译器可以理解);
4、4个JIT(Just-In-Time)进程参与进来,分析和执行解析器所生成的字节码。
谷歌的V8引擎,用C++编写,也编译和执行JavaScript源代码、处理内存分配、垃圾收集剩余物。V8引擎并不将抽象语法树转变成字节码或者其它中间表示,没有像Java一样的虚拟机或者字节码解释器。这么做主要是为了减少这抽象语法树到字节码的转换时间,这一切都在网页加载时候完成,虽然可以提高优化的可能,但是这些分析可能带来巨大的时间浪费。
JavaScript的工作原理相关推荐
- javascript引擎工作原理的初步了解
From:https://segmentfault.com/a/1190000014242281 Javascript引擎是能运行javascript代码的程序或解释器.做为前端开发人员,了解java ...
- JavaScript的工作原理:内存管理+如何处理4个常见的内存泄漏
本篇译文,删减了原文中一些无关紧要的内容,可以让大家花更少的阅读时间. 原文地址:https://blog.sessionstack.com/how-javascript-works-memory-m ...
- JavaScript引擎工作原理解析
JavaScript引擎是什么 想知道JavaScript引擎是什么,首先要知道JavaScript(简称js)是什么,相信对于屏幕前的你来说,js是干什么的已经不用再多说,但还是有必要介绍下Java ...
- JavaScript工作原理
HTML代码所表示的文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面.增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新的Web内容,更重要的是,引入脚本语言使我们有了事 ...
- js 数组 实现 完全树_JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个技巧
摘要: JS的"编译原理". 原文:JavaScript的工作原理:解析.抽象语法树(AST)+ 提升编译速度5个技巧 作者:前端小智 Fundebug经授权转载,版权归原作者所有 ...
- javascript原理_JavaScript程序包管理器工作原理简介
javascript原理 by Shubheksha 通过Shubheksha JavaScript程序包管理器工作原理简介 (An introduction to how JavaScript pa ...
- JavaScript定时器的工作原理(翻译)
JavaScript定时器的工作原理(翻译) 标签(空格分隔): JavaScript定时器 最近在看ajax原理的时候,看到了一篇国外的文章,讲解了JavaScript定时器的工作原理,帮助我很好的 ...
- JavaScript 工作原理之五-深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势(译)...
原文请查阅这里,略有改动,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第五章. 现在 ...
- JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十一章. 迄 ...
最新文章
- 非常全面的AutoML资源,看这个就够了!
- SMOTE 过采样的API使用
- 带 sin, cos 的线段树 - 牛客
- 数据挖掘原理与算法:Jupyter
- php ado,常用的php ADODB使用方法集锦
- linux内核态串口读写程序,linux 0.11 内核学习 -- rs_io.s,串口汇编代码
- Ardino基础教程 2_LED闪烁实验
- 支持回调处理 php函数,PHP支持回调的函数有哪些
- static void SetSysClockTo72(void)的一些理解
- Handler处理器 和 自定义Opener
- Python面试题解析之网络编程与并发
- 用javascript+PHP随机显示图片
- iptables的基础知识-iptables中的ICMP
- 社会工程学案例调研和研究
- 基本初等函数求导公式
- 百度云开发clouda学习(一)
- 使用jedis连接redis,关闭连接问题
- MuMu模拟器连接AndroidStudio脚本
- Spring boot——Actuator 详解
- CentOS7 搭建虚拟主机
热门文章
- 教你玩Robocode(5)——调试技巧
- NER命名实体识别,基于数据是字典的形式怎么识别
- element dialog 设置背景色
- 剑指-4和7幸运数字 (幸运数字 4和7)
- 钉钉开发系列(十一)钉钉网页扫码登录
- MySQL数据类型及字段属性
- 三菱Qplc.QD75Mh4触摸屏及plc程序,光纤伺服通讯
- 优秀!研二实习生“阿里+字节+拼多多+美团”四杀offer
- 14西安区域赛总结帖
- java怎么开始编写代码_Java编程入门:开始用Java编写代码