今天看見塊級作用域是發現了一個愚昧的問題,在此記錄一下,謹記:
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就不必提了。