编译型语言:在程序执行之前必须进行专门的编译过程。只要编译一次,翻译成机器语言,之后无须重编译。执行效率高,但是跨平台性能较差。
解释性语言:程序运行时才编译。不直接变成机器语言,先翻译成中间代码,再由解释器对中间代码进行解释运行。因此解释性语言的效率较低。
js本质是解释性语言,它需要一边执行一边解析。js引擎的执行过程大致是:
源代码 抽象语法树 字节码 JIT 本地代码

随着web发展,要求js能够快速被解析执行。v8引擎就是为了解决这一问题。node也是采用该引擎解析js。
V8使用c++开发,其js编译成原生机器码,让js运行速度媲美二进制程序。
在V8中,JavaScript相关代码并非一下完成编译的,而是在某些代码需要执行时,才会进行编译,这就提高了响应时间,减少了时间开销
https://blog.csdn.net/qq_30638831/article/details/90552912