如果不宣告變數會污染全域,多人開發起來會變得很雜亂
例 1
例 2
function fnB的a不會影響到全域的a
答:'local',1 '全',0
宣告後a將變成區域變數(範圍為fn()函式內)
使用var 跟使用 let差異
for(var i = 0; i < 10; i++){
console.log(i);
}
console.log(i); //❶
❶ 取得到值 10
for(let i = 0; i < 10; i++){
console.log(i);
}
console.log(i); //❶
❶ 取不到值
只有在function中宣告時會使變數限定在函式區域內(區域變數)
其他則污染全域(window)
只要有{}就會使let變成區域變數
for迴圈預設會帶let比較不出錯
for (let i = 0; i < 10; i++) {
}
就是不能修改的let
var a = 0;
let b = 1;
console.log(window);
let a = 0;
let a = 1;
console.log(a);
function fn(a){
console.log(a);
let a = 2;
console.log(a);
}
fn(1);