更新时间:2022年07月27日16时46分 来源:传智教育 浏览次数:
const是ES6中新增的用于声明常量的关键字。所谓常量就是值(内存地址)不能变化的量。const关键字声明的常量具有块级作用域,声明常量时必须赋值,声明常量并赋值后常量的值不能修改。
1.const关键字声明的常量具有块级作用域
演示const关键字声明的常量块级作用域效果,具体代码如下:
<script> if (true) { const a = 10; wconsole.log(a); //输出结果:10 } console.log(a); //报错,a未定义 </script>
2.const关键字声明常量时必须赋值
演示const关键字声明常量时不赋值的情况
<script> const PI;//报错,常量PI未赋值 </script>
3.const关键字声明常量并赋值后常量的值不能修改
(1)对于基本数据类型(如数值、字符串),一旦赋值,值就不可修改。
<script> const PI = 3.14; PI=100;/∥报错,无法对常量赋值 </script>
(2)对于复杂数据类型(如数组、对象),虽然不能重新赋值,但是可以更改内部的值。
<script> const ary =[100, 200]; ary[0] = 'a'; ary[1] = 'b'; console.log(ary);∥可以更改数组内部的值,结果为['a','b'] ary=['a','b'];∥报错,无法对常量赋值 </script>
变量的作用域范围不同
使用var关键字声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。使用let关键字声明的变量和使用const关键字声明的常量都具有块级作用域。
变量提升
使用var关键字声明的变量存在变量提升,可以先使用再声明。使用let关键字声明的变量和const关键字声明的常量不存在变量提升功能,只能先声明再使用。
值是否可以更改
使用var关键字和let关键字声明的变量,可以更改变量的值,但使用const关键字声明的常量,不能更改常量值对应的内存地址。
在编写程序的过程中,如果要存储的数据不需要更改,建议使用const关键字,如函数的定义、T值或数学公式中一些恒定不变的值。由于使用const声明的常量,其值不能更改,且JavaScript解析引擎不需要实时监控值的变化,所以使用const关键字要比let关键字效率更高。