js编译原理
var name = 123;
function getName(){
console.log(name);
var name = 456;
}
getName();
输出undefined;
这是因为浏览器的解释器var name = 456虽然写法如此,解释的时候会解释为var name; name=456;其中声明变量提前至当前作用域最前面。当运行到getName时,代码等同:getName(){var name; console.log(name);name = 123} 输出undefine 详细请查阅 js编译原理
浙公网安备 33010602011771号