鍍金池/ 問答/數據庫  HTML/ 變量提升到底是怎么回事?

變量提升到底是怎么回事?

這塊代碼第二個為什么彈5?。?/p>

    var x = 1;
    var y = 2;
    method(8)
    alert(x+y)
    function method(y) {
        x += 2;
        y += 3;
        alert(x+y)
    }
回答
編輯回答
掛念你

你這個問題要理解的不是變量提升,而是變量的作用域,你的代碼和下面的代碼是一樣的,別看形參是y,實際上這是兩個不同的值

    var x = 1;
    var y = 2;
    method(8)
    alert(x+y)
    function method(a) {
        x += 2;
        a += 3;
        alert(x+a)
    }
2018年1月20日 12:28
編輯回答
檸檬藍

函數中的y 是參數里的y 但函數里的x還是全局的x

2018年5月27日 12:26
編輯回答
蝶戀花

函數內部變量有定義就找函數內部的變量,沒定義就找全局的,函數內部的變量和全局的變量名相同,前者會覆蓋后者

var x = 1;
var y = 2;
method(8)
alert(x+y)
function method(y) {
    x += 2; //全局變量x=1+2
    y += 3; //形參y=8+3
    alert(x+y)
}
2018年2月26日 18:20