JavaScript Const 关键字
不可重新分配
A const
变量无法重新分配:
必须分配
JavaScript const
变量在声明时必须赋值:
正确的
常量 PI = 3.14159265359;
错误
常量 PI;
圆周率 = 3.14159265359;
何时使用 JavaScript const?
作为一般规则,始终使用 const
除非您知道该值将会改变。
使用 const
当你声明:
- 一个新的数组
- 一个新对象
- 新功能
- 新的 RegExp
常量对象和数组
关键词 const
有点误导。
它没有定义常量值。它定义了对值的常量引用。
因此你不能:
- 重新分配常量值
- 重新分配常量数组
- 重新分配常量对象
但是你可以:
- 改变常量数组的元素
- 改变常量对象的属性
常量数组
您可以更改常量数组的元素:
例子
// 您可以创建一个常量数组:
const cars = ["萨博", "沃尔沃", "宝马"];
// 您可以改变一个元素:
汽车[0] = "丰田";
// 您可以添加一个元素:
汽车.推(“奥迪”);
亲自尝试 »
但你不能重新分配数组:
常量对象
您可以更改常量对象的属性:
例子
// 您可以创建一个 const 对象:
const car = {类型:“菲亚特”, 型号:“500”, 颜色:“白色”};
// 您可以更改属性:
汽车.颜色=“红色”;
// 您可以添加一个属性:
汽车.车主=“约翰逊”;
亲自尝试 »
但您不能重新分配对象:
浏览器支持
这 const
Internet Explorer 10 或更早版本不支持关键字。
下表定义了第一个完全支持 const
关键词:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | 歌剧 36 |
2016 年 3 月 | 2013 年 10 月 | 2015 年 2 月 | 2016年9月 | 2016 年 3 月 |
块范围
使用以下语句声明变量 const
类似于let
到那个时刻块范围.
在此示例中,块中声明的 x 与块外声明的 x 不同:
您可以在以下章节中了解有关块范围的更多信息 JavaScript 作用域.
重新声明
重新声明 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; // 允许
}
Const 提升
变量定义 var
是悬挂 到顶部并可随时初始化。
含义:可以在声明变量之前使用它:
如果你想了解更多关于提升的知识,请学习本章 JavaScript 提升.
变量定义 const
也被提升到顶部,但是还未初始化。
含义:使用 const
在声明之前使用变量将导致ReferenceError
: