鍍金池/ 問(wèn)答/HTML/ 關(guān)于js解析的問(wèn)題

關(guān)于js解析的問(wèn)題

var a = 100
var b = function() {
    console.log(a)
    var a = 1;
}
b()




var a = 100
var b = function() {
    var a = 1;
    console.log(a)
}
b()

第一段代碼打印undefined 第二段代碼打印1。 我的問(wèn)題是第一段不應(yīng)該打印1嗎,因?yàn)橘x值聲明會(huì)提前于執(zhí)行語(yǔ)句,即使不打印1應(yīng)該打印全局a的那個(gè)值 100?
回答
編輯回答
編輯回答
艷骨

js執(zhí)行順序

var a;
var b;
a = 100
b = function() {
    var a;
    console.log(a)
    a = 1;
}
b()
a = 100
b = function() {
    var a;
    a = 1;
    console.log(a)
}
b()
2018年5月16日 23:53
編輯回答
爆扎

去firefox mdn查變量提升

2018年5月23日 16:11
編輯回答
骨殘心

我僅說(shuō)第一段代碼(相當(dāng)于這樣執(zhí)行的):

var a = 100
var b = function() {
    var a;  //變量聲明提升
    console.log(a); //這時(shí)打印應(yīng)為undefined
    a = 1;
}
b()
2017年8月11日 19:18