- Vue.js 3.0从入门到精通(视频教学版)
- 李小威编著
- 392字
- 2022-07-27 18:37:36
3.2 块作用域构造let和const
块级声明用于声明在指定块的作用域之外无法访问的变量。这里的块级作用域是指函数内部或者字符{}内的区域。
在ES6中,let是一种新的变量声明方式。在函数作用域或全局作用域中,通过关键字var声明的变量,无论在哪里声明,都会被当成在当前作用域顶部声明的变量。
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P39_165325.jpg?sign=1739471524-ess60kJJcSx45zETe7mDEiI6MOLTcLqO-0-7b1b3dbf50ace1c2a3b7cea08b5c1291)
以上代码结果将返回1000,这是一个bug。在ES6中,用let限制块级作用域,而var限制函数作用域。
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164853.jpg?sign=1739471524-JSuEwKgwzztZiAHIbHn6AJQ8ufauMeBl-0-bcda75e44213bb30f0e40030b4fad629)
程序结果将会是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=1739471524-dnEBA96FSdp6HJyQ1hGuAuQuVruZP4ar-0-45bb49578a15b95c7c0bd4179a2316e2)
2.对象常量
对象的属性可以修改,对象的引用不能修改:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164855.jpg?sign=1739471524-YRTnlXF4usJjse20WTcVozhNJsfJzxXL-0-a3dffb9685b0a7dd96bdd4938af75ade)
3.冻结对象
防止修改对象的属性:
![](https://epubservercos.yuewen.com/AF1F26/23721640501031706/epubprivate/OEBPS/Images/Figure-P40_164856.jpg?sign=1739471524-Be05lOEaWmRJxZ0Y9qbv0uXV65PnileG-0-3c3e797280980fbcbc65b94cb0b4ab20)