js定义变量的几种方式
const也可以作为块级变量
ECMAScript 2015 (ES6)
2015 年,JavaScript 引入了一个重要的新关键字:const。
使用 const 声明数组已成为一种常见做法:
实例
const cars = ["Saab", "Volvo", "BMW"];
无法重新赋值
用 const 声明的数组不能重新赋值:
实例
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
数组不是常量
关键字 const 有一定误导性。
它不定义常量数组。它定义的是对数组的常量引用。
因此,我们仍然可以更改常量数组的元素。
元素可以重新赋值
您可以更改常量数组的元素:
实例
// 您可以创建常量数组:
const cars = ["Saab", "Volvo", "BMW"];
// 您可以更改元素:
cars[0] = "Toyota";
// 您可以添加元素:
cars.push("Audi");
const 块作用域
用 const 声明的数组具有块作用域。
在块中声明的数组与在块外声明的数组不同:
实例
const cars = ["Saab", "Volvo", "BMW"];
// 此处 cars[0] 为 "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// 此处 cars[0] 为 "Toyota"
}
// 此处 cars[0] 为 "Saab"
用 var 声明的数组没有块作用域:
实例
var cars = ["Saab", "Volvo", "BMW"];
// 此处 cars[0] 为 "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// 此处 cars[0] 为 "Toyota"
}
// 此处 cars[0] 为 "Toyota"
您可以在以下章节中学习更多关于块作用域的内容:JavaScript 作用域。
重新声明数组
在程序中的任何位置都允许用 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"]; // 允许
}
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript 类方法</h1>
<p>将参数传递给 "age()" 方法。</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
let date = new Date();
let year = date.getFullYear();
let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is " + myCar.age(year) + " years old.";
</script>
</body>
</html>
_
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2021-02-23 这款网络排查工具,堪称神器!