考核内容: javascript 对代码进行预处理
题发散度: ★★★
试题难度: ★★★
解题思路:
在一个JavaScript文件或一个JavaScript代码块的内部,浏览器会先对代码进行预处理(编译),然后再执行。
1. 预处理会跳过执行语句,只处理声明语句,同样也是按从上到下按顺序进行的。包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。
注意1:对于声明并赋值的语句,例如 var a = 1,在预处理阶段会把这句话拆成两句:
var a;
a = 1;
也就是说,赋值或其他逻辑运算是在执行阶段进行的,在预处理阶段会被忽略。
注意2:
(1)函数声明的提升优先于变量声明的提升;
(2)重复的var声明会被忽略掉,但是重复的function声明会覆盖掉前面的声明。
2.在预处理阶段,声明的变量的初始值是undefined, 采用function声明的函数的初始内容就是函数体的内容。
3. 完成预处理之后,JavaScript代码会从上到下按顺序执行逻辑操作和函数的调用。
参考代码:
答案:
C. 2