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

javascript 的函数在执行前被解析是否合理?

javascript 的函数在执行前被解析是否合理?

LEATH 2019-04-16 20:27:29
因为函数会被提前解析,导致if的条件无效了。如:if(test){functiona(){alert(1);}}else{functiona(){alert(2);}}a();无论test是true还是false,都会执行alert(2);
查看完整描述

2 回答

?
繁星coding

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

請不要混淆函數聲明與函數表達式。
if(test){
functiona(){
alert(1);
}
}else{
functiona(){
alert(2);
}
}
a();
等價於
functiona(){
alert(1);
}
functiona(){
alert(2);
}
if(test){
}else{
}
a();
這是js的性質,沒有什麼合不合理性可言。存在即合乎理性,合乎理性即存在。
但是否合乎情理就值得商榷了。考慮到這種寫法的誤導性並且本身沒什麼意義,ES6發生了改變。不過一直用嚴格模式的路過~
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 301 浏览
慕课专栏
更多

添加回答

举报

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