書接上文,上文講到了Let與var區(qū)別和變量提升與死區(qū),下面繼續(xù)探索將塊級函數(shù)作用域和Const。
塊級作用域函數(shù)聲明
在es5中函數(shù)只能在最頂層的函數(shù)作用域中聲明,在塊級作用域中聲明會報錯,而es6中則允許塊級作用域聲明函數(shù)但是必須在有大括號的情況下才成立,沒有則報錯。
在塊中聲明函數(shù)會出現(xiàn)一個現(xiàn)象,就是這個function變量可以再任何地方調(diào)用,不會和let一樣只能在當(dāng)前塊中,因為函數(shù)聲明會提升到所在塊級作用域的頭部
Const
Const和let情況基本一致,只不過只能聲明一次聲明時必須賦值,且值不能被修改。和let一樣同樣存在暫時性死區(qū),聲明只在塊級作用域中有效。Const實質(zhì)上并不是不可以改變內(nèi)容,而是指向的那個內(nèi)存地址不能改變,例如將const指向一個對像const a = {],那么可以隨便操作a里面的內(nèi)容如a.a=1,但是不能指向另一個對象如a = {} 則會報錯。
上一篇: 什么是es6——變量
下一篇: 什么是es6——頂層對象