为了账号安全,请及时绑定邮箱和手机立即绑定

求解这段JS代码的输出结果为什么先输出function a() {}

求解这段JS代码的输出结果为什么先输出function a() {}

慕虎7371278 2019-04-07 11:19:12
javascriptfunctionfn(a){console.log(a);vara=2;functiona(){}console.log(a);}fn(1);为什么会先输出functiona(){}再输出2?
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

var和function是会提前声明的,而且function是优先于var声明的(如果同时存在的话),所以提前声明后输出的a是个function,然后代码往下执行a进行重新赋值了,故第二次输出是2。
                            
查看完整回答
反对 回复 2019-04-07
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

未赋值的函数会被提升到前面;
写代码的时候经常会这样写是正确的;
abc();//输出abc
functionabc(){console.log("abc")};
但是把函数赋值给变量就会出错
abc();
varabc=function(){console.log("abc")}
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 425 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信