書接上文,上文講到了Let與var區別和變量提升與死區,下面繼續探索將塊級函數作用域和Const。
塊級作用域函數聲明
在es5中函數只能在最頂層的函數作用域中聲明,在塊級作用域中聲明會報錯,而es6中則允許塊級作用域聲明函數但是必須在有大括號的情況下才成立,沒有則報錯。

在塊中聲明函數會出現一個現象,就是這個function變量可以再任何地方調用,不會和let一樣只能在當前塊中,因為函數聲明會提升到所在塊級作用域的頭部

Const
Const和let情況基本一致,只不過只能聲明一次聲明時必須賦值,且值不能被修改。和let一樣同樣存在暫時性死區,聲明只在塊級作用域中有效。Const實質上并不是不可以改變內容,而是指向的那個內存地址不能改變,例如將const指向一個對像const a = {],那么可以隨便操作a里面的內容如a.a=1,但是不能指向另一個對象如a = {} 則會報錯。

上一篇: 什么是es6——變量
下一篇: 什么是es6——頂層對象



