天天看點

JS進階-作用域-塊作用域

在ES6之前,JS中的作用域隻有全局作用域和函數作用域。ES6引入了塊作用域,使得開發和維護都變得更簡單,在這裡對ES6的塊作用域進行簡單介紹。

在ES5時代,隻能使用var定義變量,由于沒有塊作用域,示例1中的變量i在循環結束後可以在全局作用域中通路,很顯然變量i污染了全局作用域。

ES6引入了let關鍵字定義變量,它可以将變量綁定到所在的任意作用域中,實作塊作用域。

塊作用域可以代替立即執行函數(IIFE)

let不會進行聲明提升,并且不能重複聲明

ES6引入了const關鍵字定義一個常量,它也可以建立塊作用域。修改常量值會引起錯誤。

const不會進行聲明提升,并且不能重複聲明

在ES6之前的環境中,可以使用try-catch語句建立塊級作用域。

部落格: https://blog.86886.wang

GitHub: https://github.com/wmui