传统代码编译过程(编译器):
1、词法分析
将变量,运算符等直接翻译
2、语法分析
对翻译结果进行语法分析,构造语法树
3、语义检查
检查变量类型,参数类型等是否合理
4、代码优化和字节生成
生成机器语言或者字节码
JavaScript解释代码(解释器)
JavaScript 引擎它到底算是个解释器还是个编译器,因为,比如像 V8(Chrome的JS引擎),它其实为了提高 JS 的运行性能,在运行之前会先将 JS 编译为本地的机器码(native machine code),然后再去执行机器码(这样速度就快很多),相信大家对 JIT(Just In Time Compilation)一定不陌生吧
JavaScript引擎本身也是程序,代码编写而成。比如V8就是用C/C++写的。不同浏览器都采用了不同的JavaScript引擎
JS 代码的解释,应该是此法分析和语法分析吧
弱类型不进行语义检查?
解释器不用便以为字节码活机器码?
网友评论