const
变量不能重新赋值:
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
亲自试一试 »
JavaScriptconst
变量在声明时必须被赋值:
const PI = 3.14159265359;
const PI;
PI = 3.14159265359;
始终使用以下方式声明变量const
当您知道不应更改该值时。
使用const
当您声明:
关键字const
有点误导。
它没有定义常量值。它定义了对值的常量引用。
因此,您不能:
但是你可以:
您可以更改常量数组的元素:
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
亲自试一试 »
但你不能重新分配数组:
您可以更改常量对象的属性:
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
亲自试一试 »
但你不能重新分配对象:
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // ERROR
亲自试一试 »
作用域 | 重新声明 | 重新分配 | 吊装 | 绑定这个 | |
变量 | 不 | 是的 | 是的 | 是的 | 是的 |
让 | 是的 | 不 | 是的 | 不 | 不 |
常量 | 是的 | 不 | 不 | 不 | 不 |
let
和const
有块作用域。
let
和const
不可能是重新声明。
let
和const
必须是宣布使用前。
let
和const
做不绑定到this
。
let
和const
是未吊装。
var
不必声明。
var
被吊起。
var
与此相关。
这个let
和const
Internet Explorer 11 或更早版本不支持关键字。
下表定义了完全支持的第一个浏览器版本:
Chrome 49 | Edge 12 | Firefox 36 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
声明一个变量const
类似于let
到那个时刻块作用域。
在本例中,块中声明的 x 与块外声明的 x 不同:
您可以在本章中了解有关块作用域的更多信息JavaScript 作用域。
重新声明 JavaScriptvar
程序中的任何位置都允许使用变量:
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
重新声明现有的var
或者let
变量为const
,在同一作用域内,不允许:
var x = 2; // Allowed
const x = 2; // Not allowed
{
let x = 2; // Allowed
const x = 2; // Not allowed
}
{
const x = 2; // Allowed
const x = 2; // Not allowed
}
重新分配现有的const
同一作用域内的变量是不允许的:
const x = 2; // Allowed
x = 2; // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
{
const x = 2; // Allowed
x = 2; // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
}
重新声明变量const
,在另一个作用域或另一个块中,是允许的:
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
变量定义为var
是吊起的到顶部并可以随时初始化。
含义:您可以在声明变量之前使用该变量:
如果您想了解有关起重的更多信息,请学习本章JavaScript 提升。
变量定义为const
也被提升到顶部,但没有初始化。
含义:使用const
声明之前的变量将导致ReferenceError
:
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!