通過自執行函數實現塊級作用域時變量作用域問題。

今天看見塊級作用域是發現了一個愚昧的問題,在此記錄一下,謹記:

var a = 0;
(function(){
    var a = a;
    console.log(a);
})()

上述代碼顯示undefined,我還以爲是輸出0呢。後來想了想,知道了自己哪裏錯了,在此寫詳細點,怕有同樣問題的小白疑惑:
全局變量: a,a=undefined,a=0;
函數內局部變量:a,a=undefined,a=a=undefined;
解決方法:
1. var a = 0;
(function(){
var b = a;
console.log(b);
})()
2. var a = 0;
(function(a){
console.log(a);
})(a)
在此,大家可以去了解函數參數傳遞方式
3.let就不必提了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章