深圳JAVA培训-高端面授深圳JAVA培训机构
云和教育:云和数据集团高端IT职业教育品牌
  • 华为
    授权培训中心
  • 腾讯云
    一级认证培训中心
  • 百度营销大学
    豫陕深授权运营中心
  • Oracle甲骨文
    OAEP中心
  • Microsoft Azure
    微软云合作伙伴
  • Unity公司
    战略合作伙伴
  • 普华基础软件
    战略合作伙伴
  • 新开普(股票代码300248)
    旗下丹诚开普投资
  • 中国互联网百强企业锐之旗
    旗下锐旗资本投资

const关键字生成常量的3个特点

  • 发布时间:
    2023-03-06
  • 版权所有:
    云和教育
  • 分享:

consl是ES6中新增的用于声明常量的关键字,所谓常量就是值(内存地址)不能变化的量。使用const关键字声明的常量具有3个特点,下面分别进行讲解。

1.const关键字声明的常量具有块级作用域

const关键字声明的常量具有块级作用域,const关键字的作用域与let关键字的作用域相同,其声明的量只在声明所处的块级作用域有效。

下面通过代码演示const关键字声明的常量的块级作用域效果,示例代码如下。

<script>
  if {true} {
    const a = 10;
    console.1og(a)//输出结果:10
  }
  console.log (a);    //报错,a未定义
</script>

上述代码中,第3行代码在if语句块中使用const关键字声明了一个常量a并赋值为10;第4行代码输出常量a的值,结果为10;第6行代码在语句块外部输出常量a,结果会报错。这说明使用const关键字声明的常量只在所处的块级作用域内有效,也就是说常量a只能在if语句块中被访问。

2.const关键字声明常量时必须赋值

const关键字声明的是一个只读常量。常量一旦声明,值就不能改变。这意味着const关键字。

在声明常量时必须给常量赋初始化值,否则就会报错。下面通过代码演示const关键字声明常量时不赋值的情况,示例代码如下。

<script>
  const PI;//报错,常量PI未赋值
</script>

 

上述代码中,第2行代码使用const关键字声明了一个常量PI,但是没有给这个常量赋值,因此在程序运行时会报错。

3.const关键字声明常量并赋值后常量的值不能修改

使用const关键字声明常量,常量的值对应的内存地址不可更改,使用场景如下。

(1)对于基本数据类型(如数值、字符串),一旦赋值,值就不可修改,示例代码如下。

<script>
  const PI = 3.14;
  PI=100//报错,无法对常量赋值
</script>

上述代码中,第2行代码使用const关键字声明了一个常量PI.并给常量赋值为3.14。然后执行下一条语句,重新给PI赋值为l00时,程序在运行时会报错。

(2)对于复杂数据类型(如数组、对象),虽然不能重新赋值,但是可以更改内部的值,示例代码如下。

<script>
  const ary = [100,0200];
  ary[0] = 'a';
  ary[1] = 'b';
  console.log(ary)//可以更改数组内部的值,结果为['a','b']
  ary=['a''b']//报错,无法对常量赋值
 </script>

上述代码中,第2行代码使用const关键字声明了一个ary数组,数组中有2个值分别为100和200。然后在第3行、第4行代码中,通过数组下标的形式找到对应的值,并更改值,此时值是可以更改成功,因为这个操作并没有更改ary数组在内存中的存储地址。下面在第6行代码中给ary这个常量重新赋值,所赋的值是一个新数组,这是不被允许的,因为此操作改变了ary常量在内存中的存储地址,所以输出结果会报错。