JS const关键字生成常量的三个特点介绍

 更新时间:2023年05月18日 09:06:07   作者:让你五行代码  
这篇文章主要介绍了JS const关键字生成常量有哪些特点,下面通过代码演示const关键字声明的常量的块级作用域效果,需要的朋友可以参考下

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常量在内存中的存储地址,所以输出结果会报错。

到此这篇关于JS const关键字生成常量有哪些特点的文章就介绍到这了,更多相关js const关键字生成常量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在uniapp中custombar的使用步骤

    在uniapp中custombar的使用步骤

    在 UniApp中,自定义TabBar是指替换默认的Tab栏以实现更多个性化的设计,自定义 TabBar 可以通过创建一个新的组件来实现,并在页面中引用该组件,下面给大家介绍在uniapp中custombar的使用步骤,感兴趣的朋友一起看看吧
    2024-05-05
  • JavaScript运动函数实例详解

    JavaScript运动函数实例详解

    这篇文章主要为大家详细介绍了JavaScript的运动函数,使用实例在论证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • setInterval 和 setTimeout会产生内存溢出

    setInterval 和 setTimeout会产生内存溢出

    jscript 5.7 发布修复了不少ie javascript内存泄露的问题。但是leak依然存在。当我们频繁使用 setInterval 和 setTimeout 时就会每几秒钟出现32k leak...
    2008-02-02
  • 谈谈我对JavaScript DOM事件的理解

    谈谈我对JavaScript DOM事件的理解

    DOM与事件是JavaScript最核心的组成部分之一,他们赋予了页面无限的想象空间,你根本无法离开他们,否则js将寸步难行。本文给大家分享我对javascript dom事件的了解,对javascript dom事件相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • JavaScript打印iframe内容示例代码

    JavaScript打印iframe内容示例代码

    打印iframe内容的方法有很多,下面为大家简单介绍下使用JavaScript实现打印,有需求的朋友可以参考下
    2013-08-08
  • javascript简单实现命名空间效果

    javascript简单实现命名空间效果

    这篇文章主要介绍了javascript简单的实现命名空间效果的方法。需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • JavaScript统计数组中相同的数量的方法总结

    JavaScript统计数组中相同的数量的方法总结

    在JavaScript中,我们经常需要对数组中对象的属性进行统计。在本文中,我们将介绍如何使用JavaScript来实现这一功能,文中有详细的代码示例,需要的朋友可以借鉴参考
    2023-05-05
  • js实现的奥运倒计时时钟效果代码

    js实现的奥运倒计时时钟效果代码

    这篇文章主要介绍了js实现的奥运倒计时时钟效果代码,可实现根据指定时间进行倒计时的实时显示效果,非常简单实用,需要的朋友可以参考下
    2015-12-12
  • JavaScript前端实现GIF图片循环播放

    JavaScript前端实现GIF图片循环播放

    使用 img 加载 GIF 图片,内容只会播放一次,之后就会自动暂停,所以这篇文章为大家介绍了如何使用JavaScript实现GIF图片循环播放吧
    2025-03-03
  • JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    这篇文章主要介绍了JS/HTML5游戏常用算法之碰撞检测 地图格子算法,结合实例形式详细分析了javascript碰撞检测算法的相关原理、实现技巧与操作注意事项,需要的朋友可以参考下
    2018-12-12

最新评论