JavaScript有预编译吗

JavaScript013

JavaScript有预编译吗,第1张

预编译是指在编译之前做的一些工作,比如 C/C++ 的宏处理。

JavaScript 本身是没有预编译的。当然,在浏览器运行 JavaScript 之前必须编译成客户端的机器码。

按照代码块的先后顺序关系,先对代码块进行预编译,再执行。代码块指的是script标签包含的js片段。具体如下:

step 1. 读入第一个代码块。

step 2. 做语法分析,有错则报语法错误(比如括号不匹配等),并跳转到step5。

step 3. 对var变量和function定义做“预编译处理”(永远不会报错的,因为只解析正确的声明)。

step 4. 执行代码段,有错则报错(比如变量未定义)。

step 5. 如果还有下一个代码段,则读入下一个代码段,重复step2。

step6. 结束。