0%

JS核心篇-Let和Const基本概念

Let, Const 基本概念

let 所宣告的變數是可以修改它的值。
const 所宣告的變數是不可以修改它的值。

let 的作用域是用大括號做區分。

1
2
3
4
5
6
7
let ming = '小明'

{
let ming = '大胖'
}

console.log(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
2
3
4
5
6
7
const person = {
name: 'ming',
height: 180
}
person.name = 'tina' // OK!

person = {} // Error!!