JavaScript Const

88 阅读2分钟

ES2015 引入了两个重要的 JavaScript 新关键词:letconst

通过 const 定义的变量与 let 变量类似,但不能重新赋值:

块作用域

块作用域内使用 const 声明的变量与 let 变量相似。

在本例中,x 在块中声明,不同于在块之外声明的 x:

在声明时赋值

JavaScript const 变量必须在声明时赋值:

不正确

const PI;

PI = 3.14159265359;

正确

const PI = 3.14159265359;

原始值

如果我们将一个原始值赋给常量,我们就不能改变原始值:

常量对象可以更改

您可以更改常量对象的属性:

// 创建对象:
const car = {type:"Porsche", model:"911", color:"white"};

// 更改属性:
car.color = "red";

// 添加属性:
car.owner = "Steve";

// 显示属性:
document.getElementById("a").innerHTML = "车主是:" + car.owner;

但是您无法重新为常量对象赋值值

常量数组可以更改

您可以更改常量数组的元素:

但是您无法重新为常量数组赋值:

重新声明

在程序中的任何位置都允许重新声明 JavaScript var 变量:

var x = 2; // 允许

var x = 3; // 允许

x = 4; // 允许

在同一作用域或块中,不允许将已有的 varlet 变量重新声明或重新赋值给 const

var x = 2; // 允许

var x = 3; // 允许

x = 4; // 允许

在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:

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; // 不允许

}

在另外的作用域或块中重新声明 const 是允许的:

const x = 2;       // 允许

{
  const x = 3;   // 允许
}

{
  const x = 4;   // 允许
}

通过 const 定义的变量不会被提升到顶端。

const 变量不能在声明之前使用: