JavaScript-Const
- Vorherige Seite JS-Let
- Nächste Seite JS-Operator
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
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
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
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";
但是您无法重新为常量对象赋值:
Beispiel
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
常量数组可以更改
您可以更改常量数组的元素:
Beispiel
// 您可以创建常量数组: const cars = ["Audi", "BMW", "porsche"]; // 您可以更改元素: cars[0] = "Honda"; // 您可以添加元素: cars.push("Volvo");
但是您无法重新为常量数组赋值:
Beispiel
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
变量:
Beispiel
var x = 2; // 允许 var x = 3; // 允许 x = 4; // 允许
在同一作用域或块中,不允许将已有的 var
或 let
变量重新声明或重新赋值给 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;
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";
- Vorherige Seite JS-Let
- Nächste Seite JS-Operator