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

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

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

扬帆大鱼 2019-04-19 16:11:16
javascriptfunctionfn(a){console.log(a);vara=2;functiona(){}console.log(a);}fn(1);为什么会先输出functiona(){}再输出2?
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

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

TA贡献1796条经验 获得超4个赞

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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号