帮我看看一个预解释的问题啊!

var fn = function(){
    alert(123)
};
function fn(){
    alert(456)
}
fn();
为什么输出的是123呢?
阅读 2.2k
3 个回答

声明提升,函数声明的提升优先级大于变量声明的提升,函数表达式不会被提升

以上代码,其处理过程是

function fn(){
    alert(456)
}
var fn;
fn = function(){
    alert(123)
};
fn();

函数声明有两种方式 一种是字面量的形式 一种是函数直接的函数声明 在预处理阶段 函数声明会提升

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题