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

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

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

繁星淼淼 2019-04-16 17:05:42
javascriptfunctionfn(a){console.log(a);vara=2;functiona(){}console.log(a);}fn(1);为什么会先输出functiona(){}再输出2?
查看完整描述

2 回答

?
蝴蝶不菲

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

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

TA贡献1786条经验 获得超13个赞

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

添加回答

举报

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