(1)通过 const
定义的变量与 let
变量类似,但不能重新赋值,也就是说,const必须在声明时赋值。
(2)const不是真正的常数,它没有定义常量值。它定义了对值的常量引用。因此,我们不能更改常量原始值,但我们可以更改常量对象的属性。
const PI = 3.141592653589793;
PI = 3.14; // 会出错
PI = PI + 10; // 也会出错
常量对象可以更改 或 添加
// 您可以创建 const 对象:
const car = {type:"porsche", model:"911", color:"Black"};
// 您可以更改属性:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";
但在同一作用域中无法重新为常量赋值,也不允许重新声明,在另外的作用域中重新声明是可以的。
const x = 2; // 允许
const x = 3; // 不允许
x = 3; // 不允许
var x = 3; // 不允许
let x = 3; // 不允许
{
const x = 2; // 允许
const x = 3; // 不允许
x = 3; // 不允许
var x = 3; // 不允许
let x = 3; // 不允许
}
(3) 在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 const
(4)通过cosnt定义的变量不会被提升到顶端,也不能再声名前使用