1. var 可聲明前置
a = 3
var a
var a = 4
2. let不可聲明前置
a = 3 //報錯
let a
3. let不可重復聲明
let a = 3
let a = 4 //報錯
var a = 5 //報錯
4. 存在塊級作用域
for(let i =0; i<3; i++){
console.log(i)
}
console.log(i) //報錯
IIFE的替換
(function(){
var a = 1
}())
{
let a = 1
}
暫時性死區(qū)(TDZ):在let聲明變量之前都是該變量的死區(qū)淮韭,在死區(qū)內該變量不可使用
5. const 聲明的常量不可改變
const a = 1
a = 2 //報錯
const obj = {a: 1}
obj.a = 2 //沒問題
obj = {a: 2} //報錯