JavaScript -Konst
Das const
Schlüsselwort wurde in
ES6 (2015) eingeführt .
Mit definierte Variablen const
können nicht neu deklariert werden.
Mit definierte Variablen const
können nicht neu zugewiesen werden.
Mit definierte Variablen const
haben einen Blockbereich.
Kann nicht neu zugewiesen werden
Eine const
Variable kann nicht neu zugewiesen werden:
Beispiel
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Muss zugewiesen werden
JavaScript- const
Variablen muss ein Wert zugewiesen werden, wenn sie deklariert werden:
Richtig
const PI = 3.14159265359;
Falsch
const PI;
PI = 3.14159265359;
Wann sollte JavaScript const verwendet werden?
Als allgemeine Regel sollten Sie eine Variable immer mit deklarieren, const
es sei denn, Sie wissen, dass sich der Wert ändern wird.
Verwenden const
Sie, wenn Sie Folgendes angeben:
- Ein neues Array
- Ein neues Objekt
- Eine neue Funktion
- Ein neuer RegExp
Konstante Objekte und Arrays
Das Stichwort const
ist etwas irreführend.
Es definiert keinen konstanten Wert. Es definiert eine konstante Referenz auf einen Wert.
Aus diesem Grund können Sie NICHT:
- Weisen Sie einen konstanten Wert neu zu
- Weisen Sie ein konstantes Array neu zu
- Weisen Sie ein konstantes Objekt neu zu
- Ändern Sie die Elemente des konstanten Arrays
- Ändern Sie die Eigenschaften des konstanten Objekts
Doch kannst du:
Konstante Arrays
Sie können die Elemente eines konstanten Arrays ändern:
Beispiel
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
Aber Sie können das Array NICHT neu zuweisen:
Beispiel
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Konstante Objekte
Sie können die Eigenschaften eines konstanten Objekts ändern:
Beispiel
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
Aber Sie können das Objekt NICHT neu zuweisen:
Beispiel
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
Browser-Unterstützung
Das const
Schlüsselwort wird in Internet Explorer 10 oder früher nicht unterstützt.
Die folgende Tabelle definiert die ersten Browserversionen mit voller Unterstützung für das const
Schlüsselwort:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Bereich blockieren
Das Deklarieren einer Variablen mit const
ist ähnlich wie let
bei Block Scope .
Das im Block deklarierte x ist in diesem Beispiel nicht dasselbe wie das außerhalb des Blocks deklarierte x:
Beispiel
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
Mehr zum Blockumfang erfahren Sie im Kapitel JavaScript-Geltungsbereich .
Neudeklaration
Das Neudeklarieren einer JavaScript- var
Variablen ist überall in einem Programm erlaubt:
Beispiel
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
Das erneute Deklarieren einer vorhandenen var
oder -Variablen let
in const
, im selben Bereich, ist nicht zulässig:
Beispiel
var x = 2; // Allowed
const x = 2; // Not allowed
{
let x = 2; // Allowed
const x = 2; // Not allowed
}
{
const x = 2; // Allowed
const x = 2; // Not allowed
}
Die Neuzuweisung einer vorhandenen const
Variablen im selben Bereich ist nicht zulässig:
Beispiel
const x = 2; // Allowed
x = 2; // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
{
const x = 2; // Allowed
x = 2;
// Not allowed
var x = 2;
// Not allowed
let x = 2;
// Not allowed
const x = 2; // Not allowed
}
Das Umdeklarieren einer Variablen mit const
, in einem anderen Gültigkeitsbereich oder in einem anderen Block ist zulässig:
Beispiel
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
Const Heben
Mit definierte Variablen var
werden nach oben gehoben und können jederzeit initialisiert werden.
Bedeutung: Sie können die Variable verwenden, bevor sie deklariert wird:
Beispiel
Das ist in Ordnung:
carName = "Volvo";
var carName;
Wenn Sie mehr über Hoisting erfahren möchten, studieren Sie das Kapitel JavaScript Hoisting .
Mit definierte Variablen const
werden ebenfalls nach oben gehoben, aber nicht initialisiert.
Bedeutung: Die Verwendung einer const
Variablen, bevor sie deklariert wird, führt zu einem
ReferenceError
:
Beispiel
alert (carName);
const carName = "Volvo";