針對的問題
- 變量提升 令人困惑
- 改變window對象或global對象的屬性
塊級作用域的特點
- 作用范圍在
{}
內(nèi)或者函數(shù)體內(nèi) - 不允許重復(fù)聲明
- 無變量提升
let聲明
let
跟var
比主要有以下三個特點:
- 無變量提升
- 只在塊級作用域內(nèi)有效
- 不允許重復(fù)聲明
const聲明
const
聲明與let
聲明類似贼穆,但const
聲明指向固定的內(nèi)存指針。
- 初始化時必須賦值
- 一旦聲明拇囊,不可改變指針指向
帶來的困惑 TDZ
TDZ :暫時性死區(qū)
在塊級作用域內(nèi)毡惜,let
和const
聲明前讲婚,任何對變量名的操作都會拋出異常,即使是typeof
應(yīng)用場景
- for循環(huán)中取代
var
- 取代IIFE函數(shù)