怎樣理解在函數中聲明var x = y = 1后調用函數時, x是局部變量, y是全局變量


下面這段代碼在執行的時候, 打印的結果是1, Error: undefined;

function fn() {
    var x = y = 1;
}

fn(); console.log(y);
// 1; console.log(x); // Error: undefined;

 

 

原因是這個函數在執行的時候, 是先執行的: y = 1; 因為這里的y在聲明賦值時沒有使用var, 因此會默認成為全局變量, 然后將一個全局變量的值賦值給一個局部變量x;

 其實際的執行過程如下: 

var y = 1;
function fn() {
    var x = y;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM