为什么第一个fn()执行结果是2 而不是undefined?(function(){ fn(); var fn=function(){ alert(1); }; fn(); function fn(){ alert(2); };})()
1 回答
萧十郎
TA贡献1815条经验 获得超13个赞
在预编译阶段,函数声明提升优先于变量声明提升的。
// 预编译阶段
function fn(){
alert(2);
};
var fn;
// 执行阶段
fn(); // 此时结果为 2
fn = function() {
alert(1);
}
fn(); // 此时结果为 1
添加回答
举报
0/150
提交
取消