JavaScript Const

ECMAScript 2015

ES2015 ya ɗanɗe:let a ɗanɗe: const.

通过 const Ƙarfin a naa iya ɗanɗe: let Ƙarfin a naa iya ɗanɗe:

实例

const PI = 3.141592653589793;
PI = 3.14;      // za a iya ɗanɗe:
PI = PI + 10;   // za a iya ɗanɗe:

亲自试一试

ɗanɗe ɗauki ceke:

a ɗanɗe:ɗanɗe ɗauki ceke:a ɗanɗe: const Ƙarfin a naa iya ɗanɗe: let Ƙarfin za a iya ɗanɗe:

Anɗe kaiya ceke, x za a iya ɗanɗe a ɗanɗe:

实例

var x = 10;
// ɗanɗe, x ce 10
{ 
  const x = 6;
  // ɗanɗe, x ce 6
}
// ɗanɗe, x ce 10

亲自试一试

Anɗe kaiya ceke: JavaScript Let Anɗe kaiya ceke ɗauki ceke:

a ɗanɗe ɗanɗe:

JavaScript const Ƙarfin a naa iya ɗanɗe ɗanɗe ɗanɗe a ɗanɗe ɗanɗe:

Za a iya ɗanɗe:

const PI;
PI = 3.14159265359;

Za a iya ɗanɗe:

const PI = 3.14159265359;

Za a iya ɗanɗe:

Kodom: const Za a iya ɗanɗe:

Anɗe kaiya ceke ɗauki ceke ɗauki ceke za a iya ɗanɗe:

Dahaba, a naa iya ɗanɗe ɗanɗe ceke ɗauki ceke, amma a naa iya ɗanɗe ceke ɗauki ceke ceke:

ɗauki ceke:

Tashe a naa ɗanɗe ɗauki ceke, a naa iya ɗanɗe ɗanɗe:

实例

const PI = 3.141592653589793;
PI = 3.14;      // za a iya ɗanɗe:
PI = PI + 10;   // za a iya ɗanɗe:

亲自试一试

Ceke ɗauki ceke za a iya ɗanɗe:

Anɗe kaiya ceke ɗauki ceke:

实例

// ɗanɗe kaiya ceke const:
const car = {type:"porsche", model:"911", color:"Black"};
// ɗanɗe kaiya ceke:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";

亲自试一试

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

实例

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR

亲自试一试

常量数组可以更改

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

实例

// 您可以创建常量数组:
const cars = ["Audi", "BMW", "porsche"];
// 您可以更改元素:
cars[0] = "Honda";
// 您可以添加元素:
cars.push("Volvo");

亲自试一试

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

实例

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // ERROR

亲自试一试

浏览器支持

Internet Explorer 10 或更早版本不支持 const 关键词。

下表定义了第一个完全支持 const 关键词的浏览器版本:

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
2016 年 3 月 2013 年 10 月 2015 年 2 月 2016 年 9 月 2016 年 3 月

重新声明

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

实例

var x = 2;    // 允许
var x = 3;    // 允许
x = 4;        // 允许

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

实例

var x = 2;         // 允许
const x = 2;       // 不允许
{
  let x = 2;     // 允许
  const x = 2;   // 不允许
}

在同一作用域或块中,为已有的 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;   // 允许
}

提升

通过 var 定义的变量会被提升到顶端。如果您不了解什么是提升(Hoisting),请学习提升这一章。

您可以在声明 var 变量之前就使用它:

实例

carName = "Volvo";    // 您可以在此处使用 carName
var carName;

亲自试一试

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

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

实例

carName = "Volvo";    // 您不可以在此处使用 carName
const carName = "Volvo";