let用于聲明變量,其用法類似于var,但是所聲明的變量只在let命令所在的代碼塊中有效
《ES6標(biāo)準(zhǔn)入門》
應(yīng)用場景:
for (var i = 0; i < 3; i++) {}
console.log(i) // 輸出3
for (let i = 0; i < 3; i++) {}
console.log(i) // 輸出undefined
let 只應(yīng)用與for循環(huán)內(nèi)部,可在當(dāng)前代碼塊下進(jìn)行操作訪問
var 支持當(dāng)前代碼塊和子代碼塊操作
{
let a = 1
{
console.log(a) // 輸出undefined
}
console.log(a) // 輸出a
}
{ //該行為又被稱作,暫時(shí)性死區(qū)
console.log(a) // 輸出 ReferenceError
let a = 1
}
暫時(shí)性死區(qū):
function demo(x = y , y = 2){ // 即在未定義y的情況下使用y這個(gè)值
return [x,y]
}
demo()
const 用于聲明變量,一旦聲明,其值不能改變。
if (true) {
const Max = 5
Max = 5 //RefrenceError 暫時(shí)性死區(qū)
}