应该是预解析(js)
代码在执行前会有一个预解析过程(暂时这样理解),
这个阶段, 只对 函数形参, var定义的变量, function进行一个解析的准备过程。这个[预解析]过程中,会有一个预解析的先后顺序,即 函数的形参 -> function -> var。而且重名时预留函数、后者会覆盖前者。
预解析结果形参如果有值则解析到值, 没有则为undefined; 函数则解析到整个函数;变量都为undefined;
如果是
function {
a = 2; //这里没有预解析这一步
}
ex: 【一】
函数有参数存在,在函数调用时,对【局部】函数作用域的解析过程中解析到了参数 a = undefined;
ex:【二】

这里还涉及执行上下文。。
再接下去是【逐行读代码】。

浙公网安备 33010602011771号