JavaScript语法分析、AST、V8、JITJavaScript是如何执行的原文地址,对于常见的编译型语言(如:Java),其编译步骤分为:词法分析->语法分析->语义检查->代码优化和字节码生成。对于解释型语言(比如JavaScript),通过词法分析->语法分析->语法树,就可以开始解释执行了。具体过程如下:1.词法分析是将字符流(charstream)转化为记号流(tokenstream)NAME"AST"EQUALSNAME"isTree"SEMICOLON2.语法分析转化为AST(AbstractSyntaxTree),你可以在这里试试http://esprima.org/3.预编译,JavaScript引擎解析脚本时,会在预编译期间处理所有声明的变量和函数!并且先预声明变量,再预定义函数!4.解释和执行。在执行过程中,JavaScript引擎严格按照作用域机制(scope)执行,JavaScript变量和函数的作用域是在定义时确定的,而不是在执行时确定的。JavaScript中的变量作用域在函数体内有效,没有块作用域;functionfunc(){for(vari=0;i
