• JavaScript 28 JavaScript 数组 Const


    JavaScript

    28 JavaScript 数组 Const

    28.1 ECMAScript 2015 (ES6)

    2015 年,JavaScript 引入了一个重要的新关键字:const

    使用 const 声明数组已成为一种常见做法:

    const cars = ["Saab", "Volvo", "BMW"];
    
    • 1
    28.2 无法重新赋值

    const 声明的数组不能重新赋值:

    const cars = ["Saab", "Volvo", "BMW"];
    cars = ["Toyota", "Volvo", "Audi"];    // ERROR
    
    • 1
    • 2
    28.3 数组不是常量

    关键字 const 有一定误导性。

    它不定义常量数组。它定义的是对数组的常量引用。

    因此,我们仍然可以更改常量数组的元素。

    28.4 元素可以重新赋值

    可以更改常量数组的元素:

    // 您可以创建常量数组:
    const cars = ["Saab", "Volvo", "BMW"];
    
    // 您可以更改元素:
    cars[0] = "Toyota";
    
    // 您可以添加元素:
    cars.push("Audi");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    28.5 浏览器支持

    Internet Explorer 10 或更早的版本不支持 const 关键字。

    完全支持 const 关键字的首个浏览器版本:

    在这里插入图片描述

    28.6 声明时赋值

    JavaScript const 变量在声明时必须赋值:

    意思是:用 const 声明的数组必须在声明时进行初始化。

    使用 const 而不初始化数组是一个语法错误:

    【举个栗子】

    不起作用:

    const cars;
    cars = ["Saab", "Volvo", "BMW"];
    
    • 1
    • 2

    在这里插入图片描述

    var 声明的数组可以随时初始化。

    甚至可以在声明之前使用该数组:

    cars = ["Saab", "Volvo", "BMW"];
    var cars;
    
    • 1
    • 2

    在这里插入图片描述

    28.7 const 块作用域

    const 声明的数组具有块作用域

    在块中声明的数组与在块外声明的数组不同:

    const cars = ["Saab", "Volvo", "BMW"];
    // 此处 cars[0] 为 "Saab"
    {
      const cars = ["Toyota", "Volvo", "BMW"];
      // 此处 cars[0] 为 "Toyota"
    }
    // 此处 cars[0] 为 "Saab"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    var 声明的数组没有块作用域:

    var cars = ["Saab", "Volvo", "BMW"];
    // 此处 cars[0] 为 "Saab"
    {
      var cars = ["Toyota", "Volvo", "BMW"];
      // 此处 cars[0] 为 "Toyota"
    }
    // 此处 cars[0] 为 "Toyota"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    28.8 重新声明数组

    在程序中的任何位置都允许用 var 重新声明数组:

    var cars = ["Volvo", "BMW"];   // 允许
    var cars = ["Toyota", "BMW"];  // 允许
    cars = ["Volvo", "Saab"];      // 允许
    
    • 1
    • 2
    • 3

    不允许在同一作用域或同一块中将数组重新声明或重新赋值给 const

    var cars = ["Volvo", "BMW"];         // 允许
    const cars = ["Volvo", "BMW"];       // 不允许
    {
      var cars = ["Volvo", "BMW"];         // 允许
      const cars = ["Volvo", "BMW"];       // 不允许
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    不允许在同一作用域或同一块中重新声明或重新赋值现有的 const 数组:

    const cars = ["Volvo", "BMW"];       // 允许
    const cars = ["Volvo", "BMW"];       // 不允许
    var cars = ["Volvo", "BMW"];         // 不允许
    cars = ["Volvo", "BMW"];             // 不允许
    
    {
      const cars = ["Volvo", "BMW"];     // 允许
      const cars = ["Volvo", "BMW"];     // 不允许
      var cars = ["Volvo", "BMW"];       // 不允许
      cars = ["Volvo", "BMW"];           // 不允许
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    允许在另一个作用域或另一个块中使用 const 重新声明数组:

    const cars = ["Volvo", "BMW"];       // 允许
    {
      const cars = ["Volvo", "BMW"];     // 允许
    }
    {
      const cars = ["Volvo", "BMW"];     // 允许
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    旋转数组的最小数字、二维数组中的查找、调整数组顺序使奇数位于偶数前面
    52 https
    哪个牌子的电容笔好用?ipad触控笔推荐平价
    JavaWeb运行环境安装教程以及各个安装包
    19_ue4蓝图通讯与自定义事件触发加速
    Unity6 向量的概念和计算、预制体变体
    ctfshow(菜狗杯)
    这些视频转音频软件你知道吗?
    Java-基本数据类型
    《十》Qt各种对话框之QFontDialog
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/127595114