js小筆記 -- let const的理解

ES6 增加let命令聲明變量,類似於var,但是所聲明的變量,只在let聲明的變量只在聲明所在的代碼塊內有效,無法變量提升,可以解決for塊中條件變量的使用問題。

如:

var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6] () // 顯示10

let解決塊中變量提升帶來的麻煩

for (let i = 0; i < 10; i++) {
// ...
}

const實際上保證的,並不是變量的值不得改動,而是變量指向的那個內存地址所保存的數據不得改動。所以對於結構體或數組,指向內存地址所保存的值是一個地址地址,所以其中包含的其他元素值可以發生改變:

const a = [];
a.push('Hello'); // 可執行
a.length = 0; // 可執行
a = ['Dave']; // 報錯,a爲產量是不能賦予前他新的數組地址值

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