• 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
  • 相关阅读:
    ROS2专题【02】:Ubuntu上安装ROS2
    【数据库入门】关系型数据库为什么这么受欢迎?
    复用和解复用
    RabbitMQ:work结构
    RabbitMQ 集群
    三星泄露微软 Copilot 新功能:用自然语言操控各种功能
    Flutter 实现背景 Parallax 动画
    ​DPDK 高效原因初探
    Linux系统的介绍和使用
    华为机试真题实战应用【赛题代码篇】-整数最小和(附Python和Java代码)
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/127595114