本文介紹ES6中的const和let,現在ES6早已被浏覽器支援了。
目前各大浏覽器基本上都支援 ES6 的新特性,其中 Chrome 和 Firefox 浏覽器對 ES6 新特性最友好,IE7~11 基本不支援 ES6(微軟放棄IE了)。
以下是各大浏覽器支援情況及開始時間:
下面開始介紹:
ES5作用域分為全局作用域和函數作用域,而ES6的作用域還增加了塊級作用域(if、for等這些大括号裡面)。
變量在作用域之外是不能被通路的,通路的時候會報錯說變量未定義,因為作用域之外生命周期結束了。
一、const
ES6強制開始了嚴格模式,變量未聲明不能使用,否則就會直接報錯。
const用于聲明常量,在程式運作中不能直接被修改,不然會報錯。
const聲明的時候一定要指派,不然會報錯。
const作用域和let一樣都是塊級作用域。
如果聲明了一個常量為json對象類型,那麼這個常量裡面的對象屬性可以更改和添加。因為const定義的變量存儲的是對象的引用。
二、var
var定義的變量可以修改,如果不初始化會輸出undefined,不會報錯。
三、let
let在塊級作用域有效,在該塊級作用域之外将不能被通路。
let不存在變量提升(變量提升即将變量聲明提升到它所在作用域的最開始的部分)。
let聲明的變量不能重複聲明,不然會報錯,const亦如此。