关于js解析的问题

vara=100
varb=function(){
console.log(a)
vara=1;
}
b()
vara=100
varb=function(){
vara=1;
console.log(a)
}
b()
第一段代码打印undefined第二段代码打印1。我的问题是第一段不应该打印1吗,因为赋值声明会提前于执行语句,即使不打印1应该打印全局a的那个值100?
呼如林
浏览 290回答 2
2回答

慕森卡

js执行顺序vara;varb;a=100b=function(){vara;console.log(a)a=1;}b()a=100b=function(){vara;a=1;console.log(a)}b()

扬帆大鱼

我仅说第一段代码(相当于这样执行的):vara=100varb=function(){vara;//变量声明提升console.log(a);//这时打印应为undefineda=1;}b()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript