JavaScript问题:var a=5; var a; alert( a ) // 5。请问这是为什么?

vara=5;vara;alert(a)//5
我的理解:第一次vara:vara=5;==>在内存中开辟空间a,a中保存了数字5。第二次vara:vara;==>在内存中开辟空间a,a中什么都没有。
程序从上至下,从左至右执行,所以最后弹出的是“第二次vara”的结果,第二次vara中,a没有保存值,所以是undefined。
但执行结果是5,请问一下alert为什么不是undefined?
当局部变量和函数参数同名时,该怎么理解呢?也和预解析有关系吗?
functiontest(a){
vara=a||5;
alert(a)
}
test()//没传参的话,就是5;传参的话就alert参数
鸿蒙传说
浏览 1060回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript