• ES6新特性:const关键字详解


    const是ES6中新增的一个关键字,用于声明一个只读的常量,一旦声明后就不能再被修改。有以下几个特点

    1 声明必需赋初值

    在使用const声明变量时,一定要在声明时就给变量初始化,否则编译会报错'const' declarations must be initialized.
    在这里插入图片描述

    2 声明的变量不能被重新赋值

    2.1 一般情况

    一般的,声明的变量不能被重新赋值,否则会报错。Uncaught TypeError: Assignment to constant variable.

    DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ES6新特性:const关键字title>
    head>
    
    <body>
        <script>
            const PI = 3.14;
            PI = 3.1415;	//报错 
        script>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2.2 如果变量是一个对象,可以修改对象的属性

    DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ES6新特性:const关键字title>
    head>
    
    <body>
        <script>
            const obj = {
                name: 'Tom',
                age: 3
            }
            // 修改对象的属性值
            obj.age = 8;
            console.log('obj:', obj);
        script>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    控制台输出:

    在这里插入图片描述
    但是,如果试图给对象重新赋值,则会报错 Uncaught TypeError: Assignment to constant variable.

    DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ES6新特性:const关键字title>
    head>
    
    <body>
        <script>
            const obj = {
                name: 'Tom',
                age: 3
            }
            
            // 试图给对象重新赋值,报错Uncaught TypeError: Assignment to constant variable.
            obj={
                name: 'Tom',
                age: 8
            }
        script>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    2.3 如果变量是一个数组,可以修改数组的元素

    DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ES6新特性:const关键字title>
    head>
    
    <body>
        <script>
            const Arr = [1, 2, 3];
            Arr[0] = 99;
            console.log('Arr:', Arr);
        script>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    控制台输出:

    在这里插入图片描述
    但是,如果试图给数组重新赋值,则会报错 Uncaught TypeError: Assignment to constant variable.

    DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ES6新特性:const关键字title>
    head>
    
    <body>
        <script>
            const Arr = [1, 2, 3];
            Arr = [99, 2, 3];   // 尝试给Arr重新赋值,报错:Uncaught TypeError: Assignment to constant variable.
            console.log('Arr:', Arr);
        script>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    3 声明的变量一般用大写

    用小写并不会出错,只是习惯上,用大写表示常量。

    const PI = 3.1415926;
    
    • 1

    4 块级作用域

    let 关键字一样,const 关键字也具有块级作用域。

    块级作用域是指变量只在定义它们的块内部可见。这意味着,使用 const 声明的变量只能在声明它的块级作用域内使用,而不会影响外部作用域。

    DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ES6新特性:const关键字title>
    head>
    
    <body>
        <script>
            {
                const PI = 3.14;
                console.log("块内部:", PI); //块内部: 3.14
            }
            console.log("块外部:", PI); //报错,PI is not defined
        script>
    body>
    
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    5 不允许重复声明

    使用 const 声明的变量不能被重复声明。
    在这里插入图片描述


    总结:声明对象类型的变量,使用 const,声明非对象类型 的变量使用 let

  • 相关阅读:
    学习pytorch15 优化器
    解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误
    如何运行一个 SSM 项目以及解决 JDBC 连接数据库遇到的问题(已解决)
    Hadoop3.x 三大组件详解
    『LeetCode|每日一题』---->打家劫舍||
    MySQL主从同步
    docker基础
    【Python学习】-- excel的几种读取方式
    Sass详解和应用
    FigDraw 16. SCI 文章绘图之树形图(Dendrogram)
  • 原文地址:https://blog.csdn.net/weixin_46098577/article/details/134057958