JavaScript 数组 Const

使用 const 声明数组

<!DOCTYPE html>
<html lang="en">
<P id="demo"></P>
<body>
    <script>
        const cars = ["lisa", "Jenny", "Rose"];
        document.getElementById("demo").innerHTML=cars;

    </script>
</body>

</html>

结果:

无法重新赋值

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

<!DOCTYPE html>
<html lang="en">

<body>
    <p id="demo"></p>
<script>
    try{
        const cars= ["lisa", "Jenny", "Rose"];
        cars= ["lisa1", "Jenny1", "Rose1"];    // ERROR
    }
    catch(err){
        document.getElementById("demo").innerHTML=err;
    }
</script>    
</body>
</html>

结果:

数组不是常量

关键字 const 有一定误导性它不定义常量数组。它定义的是对数组的常量引用。因此,我们仍然可以更改常量数组的元素。

元素可以重新赋值

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

<!DOCTYPE html>
<html lang="en">
<P id="demo"></P>
<body>
    <script>
        //创建数组
        const cars = ["lisa", "Jenny", "Rose"];
        //修改元素
        cars[0]="Jisso"
        //添加元素
        cars.push("Audi");
        //显示数组
        document.getElementById("demo").innerHTML=cars;

    </script>
</body>

</html>

结果:

声明时赋值

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

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

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

不起作用:

const cars;
cars = ["Saab", "Volvo", "BMW"];

var 声明的数组可以随时初始化您甚至可以在声明之前使用该数组

<!DOCTYPE html>
<html lang="en">
<P id="demo"></P>

<body>
    <script>
        cars = ["lisa", "Jenny", "Rose"];
        var cars;
        document.getElementById("demo").innerHTML = cars;
        
    </script>
</body>

</html>

const 块作用域

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

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

<!DOCTYPE html>
<html lang="en">
<P id="demo"></P>

<body>
    <script>
        var cars = ["lisa", "Jenny", "Rose"]; 
        {
            var cars = ["Toyota", "Volvo", "BMW"];
        }
        document.getElementById("demo").innerHTML = cars[0];

    </script>
</body>

</html>

重新声明数组

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

var cars = ["Volvo", "BMW"];   // 允许
var cars = ["Toyota", "BMW"];  // 允许
cars = ["Volvo", "Saab"];      // 允许

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

var cars = ["Volvo", "BMW"];         // 允许
const cars = ["Volvo", "BMW"];       // 不允许
{
  var cars = ["Volvo", "BMW"];         // 允许
  const cars = ["Volvo", "BMW"];       // 不允许
}

不允许在同一作用域或同一块中重新声明或重新赋值现有的 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"];           // 不允许
}

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

const cars = ["Volvo", "BMW"];       // 允许
{
  const cars = ["Volvo", "BMW"];     // 允许
}
{
  const cars = ["Volvo", "BMW"];     // 允许
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值