1. 程式人生 > >js小筆記 -- let const的理解

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為產量是不能賦予前他新的陣列地址值