const 关键字是在 ES6 (2015) 中引入的
使用 const 定义的变量无法重新声明
使用 const 定义的变量无法重新赋值
使用 const 定义的变量具有块作用域
使用 const 关键字定义的变量无法重新赋值:
示例
const PI = 3.141592653589793;
PI = 3.14; // 这将给出错误
PI = PI + 10; // 这也会给出错误
JavaScript const 变量在声明时必须赋值:
正确
const PI = 3.14159265359;
不正确
const PI;
PI = 3.14159265359;
当您知道不应更改值时,请始终使用 const 声明变量。
在声明以下对象时使用 const:
关键字 const 有点误导。
它不定义常量值。它定义对值的常量引用。
因此,不能:
示例
// 您可以创建一个常量数组:
const cars = ["Saab", "Volvo", "BMW"];
// 您可以更改元素:
cars[0] = "Toyota";
// 您可以添加元素:
cars.push("Audi");
但您不能重新分配数组:
示例
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // 错误
您可以更改常量对象的属性:
示例
// 您可以创建一个 const 对象:
const car = {type:"Fiat", model:"500", color:"white"};
// 您可以更改属性:
car.color = "red";
// 您可以添加属性:
car.owner = "Johnson";
但您不能重新分配对象:
示例
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // 错误
作用域 | 重新声明 | 重新分配 | 提升 | 绑定 | this |
---|---|---|---|---|---|
var | 否 | 是 | 是 | 是 | 是 |
let | 是 | 否 | 是 | 否 | 否 |
const | 是 | 否 | 否 | 否 | 否 |
就块作用域而言,使用 const 声明变量与 let 类似。
在此示例中,块中声明的 x 与块外声明的 x 不同:
示例
const x = 10;
// 此处 x 为 10
{
const x = 2;
// 此处 x 为 2
}
// 此处 x 为 10
在程序的任何地方都允许重新声明 JavaScript var 变量:
示例
var x = 2; // 允许
var x = 3; // 允许
x = 4; // 允许
不允许在同一作用域中将现有 var 或 let 变量重新声明为 const:
示例
var x = 2; // 允许
const x = 2; // 不允许
{
let x = 2; // 允许
const x = 2; // 不允许
}
{
const x = 2; // 允许
const x = 2; // 不允许
}
不允许在同一作用域中重新分配现有的 const 变量:
示例
const x = 2; // 允许
x = 2; // 不允许
var x = 2; // 不允许
let x = 2; // 不允许
const x = 2; // 不允许
{
const x = 2; // 允许
x = 2; // 不允许
var x = 2; // 不允许
let x = 2; // 不允许
const x = 2; // 不允许
}
允许在另一个作用域或另一个块中用 const 重新声明变量:
示例
const x = 2; // 允许
{
const x = 3; // 允许
}
{
const x = 4; // 允许
}
用 var 定义的变量被提升到顶部,并且可以随时初始化。
含义:您可以在声明变量之前使用该变量:
示例
这是可以的:
carName = "Volvo";
var carName;
用 const 定义的变量也会提升到顶部,但不会初始化。
含义:在声明变量之前使用 const 变量将导致 ReferenceError:
示例
alert (carName);
const carName = "Volvo";
本文介绍了JavaScript Const的使用,如有问题欢迎私信和评论