使用 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"]; // 允许
}