JavaScript-Const

ECMAScript 2015

ECMAScript 2015 führte zwei wichtige neue JavaScript-Schlüsselwörter ein:let und const.

Durch const Die Variable, die definiert ist let Variablen ähnlich, aber kann nicht neu zugewiesen werden:

Beispiel

const PI = 3.141592653589793;
PI = 3.14;      // Dies wird fehlschlagen
PI = PI + 10;   // Dies wird auch fehlschlagen

Probieren Sie selbst aus

Blockbereich

inBlockbereichinnerhalb verwendet const Die deklarierte Variable ist let Variablen sind ähnlich.

In diesem Beispiel wird x im Block deklariert, anders als x, das außerhalb des Blocks deklariert wird:

Beispiel

var x = 10;
// Hier ist x = 10
{ 
  const x = 6;
  // Hier ist x = 6
}
// Hier ist x = 10

Probieren Sie selbst aus

Sie können im vorherigen Kapitel JavaScript-Let In der Mittelstufe lernen Sie mehr über Blockbereiche.

bei der Deklaration zugewiesen werden

JavaScript const Variablen müssen bei der Deklaration zugewiesen werden:

Falsch

const PI;
PI = 3.14159265359;

Richtig

const PI = 3.14159265359;

Keine wahre Konstante

Schlüsselwort const Ist irreführend.

Es definiert keine Konstantenwerte. Es definiert eine konstante Referenz auf Werte.

Daher können wir den ursprünglichen Wert der Konstante nicht ändern, aber wir können die Eigenschaften des Konstantenobjekts ändern.

Ursprünglicher Wert

Wenn wir einen ursprünglichen Wert einem Konstanten zuweisen, können wir den ursprünglichen Wert nicht ändern:

Beispiel

const PI = 3.141592653589793;
PI = 3.14;      // Dies wird fehlschlagen
PI = PI + 10;   // Dies wird auch fehlschlagen

Probieren Sie selbst aus

const-Objekte können geändert werden

Sie können Eigenschaften von const-Objekten ändern:

Beispiel

// Sie können const-Objekte erstellen:
const car = {type:"porsche", model:"911", color:"Black"};
// Sie können Eigenschaften ändern:
car.color = "White";
// 您可以添加属性:
car.owner = "Bill";

Probieren Sie selbst aus

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

Beispiel

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

Probieren Sie selbst aus

常量数组可以更改

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

Beispiel

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

Probieren Sie selbst aus

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

Beispiel

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

Probieren Sie selbst aus

浏览器支持

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 变量:

Beispiel

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

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

Beispiel

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

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

Beispiel

const x = 2;       // Erlaubt
const x = 3;       // 不允许
x = 3;             // 不允许
var x = 3;         // 不允许
let x = 3;         // 不允许
{
  const x = 2;   // Erlaubt
  const x = 3;   // Nicht erlaubt
  x = 3;         // Nicht erlaubt
  var x = 3;     // Nicht erlaubt
  let x = 3;     // Nicht erlaubt
}

wieder in einem anderen Bereich oder Block deklariert const Ist erlaubt:

Beispiel

const x = 2;       // Erlaubt
{
  const x = 3;   // Erlaubt
}
{
  const x = 4;   // Erlaubt
}

Hoisting

Durch var Definierte Variablen werdenHoistingnach oben gehoben. Wenn Sie nicht wissen, was Hoisting ist, lesen Sie bitte das Kapitel über Hoisting.

Sie können Variablen vor der Deklaration von var-Variablen verwenden:

Beispiel

carName = "Volvo";    // Sie dürfen hier carName verwenden
var carName;

Probieren Sie selbst aus

Durch const Definierte Variablen werden nicht nach oben gehoben.

const Variablen können nicht vor ihrer Deklaration verwendet werden:

Beispiel

carName = "Volvo";    // Sie dürfen hier carName nicht verwenden
const carName = "Volvo";