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