![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=1739199387-ndElHrcFJuU1KIluTk6mVhR4ke6fc0py-0-7cac7463c48799527c04578e9888e8af)
以上代码结果将返回1000,这是一个bug。在ES6中,用let限制块级作用域,而var限制函数作用域。
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164853.jpg?sign=1739199387-GfhdS6B2nBXMk9pud6l3Ki5wsrX02FOm-0-533ff8dd2d4b4cc03982e5b2a83849fa)
程序结果将会是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=1739199387-hphsdQI85RZnUzbui68iY0kpxm3FJvcs-0-9d6a89c9c9b5815577bdd873c4ee7cc1)
2.对象常量
对象的属性可以修改,对象的引用不能修改:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164855.jpg?sign=1739199387-wAWGwPf7uLgKQwpGhAD7M5PVAfnnWS12-0-a13301219c27cb9719fb347c70ce4344)
3.冻结对象
防止修改对象的属性:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164856.jpg?sign=1739199387-aX1rQdrPr0YlL9MyE202kOVYFTPSvf1z-0-341ae4513d651717076d39c830d22672)