JavaScript Const-Schlüsselwort
Das Schlüsselwort const
wurde in ES6 (2015) eingeführt.
Variablen, die mit const
definiert sind, können nicht erneut deklariert werden.
Mit const
definierte Variablen können nicht neu zugewiesen werden.
Variablen, die mit const
definiert sind, haben einen Blockbereich.
Kann nicht neu zugewiesen werden
Eine const
-Variable kann nicht neu zugewiesen werden:
Beispiel
const PI = 3.141592653589793;
PI = 3.14; // Dies führt zu einem Fehler
PI = PI + 10; // Dies führt ebenfalls zu einem Fehler
Try it Yourself »
Muss zugewiesen werden
JavaScript const
-Variablen muss bei der Deklaration ein Wert zugewiesen werden:
Richtig
const PI = 3.14159265359;
Falsch
const PI;
PI = 3.14159265359;
Wann sollte JavaScript const verwendet werden?
Als allgemeine Regel gilt, dass Sie eine Variable immer mit const
deklarieren, es sei denn, Sie wissen, dass sich der Wert ändern wird.
Verwenden Sie const
, wenn Sie Folgendes deklarieren:
- Ein neues Array
- Ein neues Objekt
- Eine neue Funktion
- Ein neuer RegExp
Konstante Objekte und Arrays
Das Schlüsselwort const
ist etwas irreführend.
Es definiert keinen konstanten Wert. Es definiert einen konstanten Verweis auf einen Wert.
Aus diesem Grund können Sie NICHT:
- Einen konstanten Wert neu zuweisen
- Ein konstantes Array neu zuweisen
- Ein konstantes Objekt neu zuweisen
Aber Sie KÖNNEN:
- Ändern Sie die Elemente des Konstantenarrays
- Ändern Sie die Eigenschaften des konstanten Objekts
Konstante Arrays
Sie können die Elemente eines konstanten Arrays ändern:
Beispiel
// Sie können ein konstantes Array erstellen:
const cars = ["Saab", "Volvo", "BMW"];
// Sie können ein Element ändern:
cars[0] = "Toyota";
// Sie können ein Element hinzufügen:
cars.push("Audi");
Try it Yourself »
Sie können das Array jedoch NICHT neu zuweisen:
Beispiel
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Try it Yourself »
Konstante Objekte
Sie können die Eigenschaften eines konstanten Objekts ändern:
Beispiel
// Sie können ein const-Objekt erstellen:
const car = {type:"Fiat", model:"500", color:"white"};
// Sie können eine Eigenschaft ändern:
car.color = "red";
// Sie können eine Eigenschaft hinzufügen:
car.owner = "Johnson";
Try it Yourself »
Sie können das Objekt jedoch NICHT neu zuweisen:
Beispiel
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // ERROR
Try it Yourself »
Browser-Unterstützung
Das Schlüsselwort const
wird in Internet Explorer 10 oder früher nicht unterstützt.
Die folgende Tabelle definiert die ersten Browserversionen mit vollständiger Unterstützung für das Schlüsselwort const
:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Blockbereich
Das Deklarieren einer Variablen mit const
ähnelt let
, wenn es um Block Scope geht.
Das im Block deklarierte x ist in diesem Beispiel nicht dasselbe wie das außerhalb des Blocks deklarierte x:
Beispiel
const x = 10;
// Hier ist x 10
{
const x = 2;
// Hier ist x 2
}
// Hier ist x 10
Try it Yourself »
Mehr zum Block-Scope erfahren Sie im Kapitel JavaScript Scope.
Neudeklaration
Das erneute Deklarieren einer JavaScript-var
-Variable ist überall in einem Programm zulässig:
Beispiel
var x = 2; // Erlaubt
var x = 3; // Erlaubt
x = 4; // Erlaubt
Neudeklaration einer vorhandenen var
- oder let
-Variable in const
, im gleichen Bereich, ist nicht erlaubt:
Beispiel
var x = 2; // Erlaubt
const x = 2; // Nicht erlaubt
{
let x = 2; // Erlaubt
const x = 2; // Nicht erlaubt
}
{
const x = 2; // Erlaubt
const x = 2; // Nicht erlaubt
}
Das Neuzuweisen einer vorhandenen const
-Variable im gleichen Bereich ist nicht zulässig:
Beispiel
const x = 2; // Erlaubt
x = 2; // Nicht erlaubt
var x = 2; // Nicht erlaubt
let x = 2; // Nicht erlaubt
const x = 2; // Nicht erlaubt
{
const x = 2; // Erlaubt
x = 2;
// Nicht erlaubt
var x = 2;
// Nicht erlaubt
let x = 2;
// Nicht erlaubt
const x = 2; // Nicht erlaubt
}
Das erneute Deklarieren einer Variablen mit const
, in einem anderen Bereich oder in einem anderen Block ist zulässig:
Beispiel
const x = 2; // Erlaubt
{
const x = 3; // Erlaubt
}
{
const x = 4; // Erlaubt
}
Const Heben
Mit var
definierte Variablen werden nach oben angehoben und können jederzeit initialisiert werden.
Bedeutung: Sie können die Variable verwenden, bevor sie deklariert wird:
Wenn Sie mehr über das Heben erfahren möchten, lesen Sie das Kapitel JavaScript Hoisting.
Mit const
definierte Variablen werden ebenfalls nach oben gehoben, aber nicht initialisiert.
Bedeutung: Die Verwendung einer const
-Variable vor ihrer Deklaration führt zu einem ReferenceError
: