0%

Javascript介绍

编译型语言的特点

c , c++ , 打包成操作系统机器码,然后再执行

解释型语言的特点

Javascript,一边编译成机器码一边执行

V8引擎

V8引擎是谷歌浏览器和NodeJS内置的 Javascript引擎

比如你在一个网页中加载一个calc.js文件,如图:D:\个人博客\blog\source_posts\Javascript介绍\image-20220501212609819

这个文件里的每个字节都会被转化成符号,比如ASCII或者UTF-8字节D:\个人博客\blog\source_posts\Javascript介绍\image-20220501212604289谷歌浏览器会识别这些关键词符号,直至将文件读取完毕

D:\个人博客\blog\source_posts\Javascript介绍\image-20220501213009153然后检查语法并生成抽象树D:\个人博客\blog\source_posts\Javascript介绍\image-20220501213141154

之后交给V8引擎的ignition解释器,生成字节码

D:\个人博客\blog\source_posts\Javascript介绍\image-20220501213318435

ignition解释器然后会运行这些字节码,转化成cpu运行的机器码

对于一些被调用多次的函数,turbofan优化器会存留之前生成的机器码,跳过解释直接运行机器码,啊v要注意函数的参数个数,类型一定要是一样的D:\个人博客\blog\source_posts\Javascript介绍\image-20220501214321900

致谢

https://www.youtube.com/watch?v=p-iiEDtpy6I&t=634s

https://dev.to/lydiahallie/javascript-visualized-the-javascript-engine-4cdf