![Vue.js 3.0从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/154/44510154/b_44510154.jpg)
上QQ阅读APP看书,第一时间看更新
3.2 块作用域构造let和const
块级声明用于声明在指定块的作用域之外无法访问的变量。这里的块级作用域是指函数内部或者字符{}内的区域。
在ES6中,let是一种新的变量声明方式。在函数作用域或全局作用域中,通过关键字var声明的变量,无论在哪里声明,都会被当成在当前作用域顶部声明的变量。
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P39_165325.jpg?sign=1739666773-9PZNbVo9WZw9DXNjfIHGGOvDPwyuXNKS-0-8e4518494dca88e18b0cc694f10ecf66)
以上代码结果将返回1000,这是一个bug。在ES6中,用let限制块级作用域,而var限制函数作用域。
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164853.jpg?sign=1739666773-Ki6R68O4CNOCylkfPq4EaYZWouEOTkwF-0-14c1bcd8285695add8c1f7a4aa19a777)
程序结果将会是0,因为块作用域中有了let,如果amount=l,那么这个表达式将返回1。本例是一个演示,这里有一堆常量,它们互不影响,因为它们属于不同的块级作用域。
JavaScript中的var只能声明一个变量,这个变量可以保存任何数据类型的值。ES6之前并没有定义声明常量的方式,ES6标准中引入了新的关键字const来定义常量。
使用const定义常量后,常量将无法改变,const常量的用法说明如下。
1.const常量,只能一次赋值
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164854.jpg?sign=1739666773-0HsMCajcW7cqxZFNrmokZRFZKhpCSAhF-0-f26093a4cea34ef805f396c1f1d74b88)
2.对象常量
对象的属性可以修改,对象的引用不能修改:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164855.jpg?sign=1739666773-ODjS4Fm2uuSPA259Kwk9vNgDqvALhQyq-0-f39805d7d40cd44cd33ace0e11b411ce)
3.冻结对象
防止修改对象的属性:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164856.jpg?sign=1739666773-MId1vBvPukPYVhPrK2soJYrFSV8U3TtC-0-1d2ce71e98cd887ddc8f572d499c01b6)