Let, Const 基本概念
let
所宣告的變數是可以修改它的值。const
所宣告的變數是不可以修改它的值。
let 的作用域是用大括號做區分。
1 | let ming = '小明' |
let 有沒有Hoisting? 暫時性死區
先上一個例子
console.log(ming); // Error!!
let ming = ‘小明’;
上面這個案例,會看到會直接報錯。
事實上,在let
定義一個變數的過程,也是有經過創造 和 執行兩個階段
所以,拆解一下上面這個範例
—創造—
let ming;
—執行—
console.log(ming); // Error!!
let ming = ‘小明’
從上面的拆解可以看到,其實,let
宣告也是有提升的效果,只不過在let
宣告之後 與 賦值之前,
是不行取用這個變數的,而let
宣告之後 與 賦值之前這個區間就叫做TDZ(暫時性死區)。
而var
宣告之後 和 var
賦值之前,就沒有這種暫時性死區的問題。
const宣告物件
在JS的概念中,物件是傳參考,而const
是阻止被宣告變數被改變。
所以,當我們利用const
來宣告一個變數,只要我們不改變該變數指向的位址,
不管你是要為該物件新增新的屬性 或者 改變該物件屬性的內容 都是可以的。
1 | const person = { |