猿问

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

因为函数会被提前解析,导致if的条件无效了。
如:
if(test){
functiona(){
alert(1);
}
}else{
functiona(){
alert(2);
}
}
a();
无论test是true还是false,都会执行alert(2);
LEATH
浏览 302回答 2
2回答

繁星coding

請不要混淆函數聲明與函數表達式。if(test){functiona(){alert(1);}}else{functiona(){alert(2);}}a();等價於functiona(){alert(1);}functiona(){alert(2);}if(test){}else{}a();這是js的性質,沒有什麼合不合理性可言。存在即合乎理性,合乎理性即存在。但是否合乎情理就值得商榷了。考慮到這種寫法的誤導性並且本身沒什麼意義,ES6發生了改變。不過一直用嚴格模式的路過~
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答