const

This is an experimental technology, part of the ECMAScript 6 (Harmony) proposal.
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.

Zusammenfassung

Die const-Deklaration erstellt eine benamte Konstante (nur lesender Zugriff)

Syntax

const name1 = wert1 [, name2 = wert2 [, ... [, nameN = wertN]]];
nameN
Name der Konstanten. Dieser kann jeder legale Bezeichner sein.
wertN
Wert der Konstanten. Dieser kann jeder legale Ausdruck sein.

Beschreibung

Diese Deklaration erstellt eine Konstante, die global oder lokal in der Funktion, in der sie deklariert wird, verfügbar ist. Der Gültigkeitsbereich von Konstanten ist auf Blöcke beschränkt. Der Wert einer Konstanten kann nicht überschrieben werden und eine Konstante kann nicht mehrfach deklariert werden. Eine Initialisierung ist für eine Konstante vorausgesetzt. Eine Konstante kann sich den Namen nicht mit einer Funktion oder Variablen im gleichen Gültigkeitsbereich teilen.

Beispiel

Das folgende Beispiel zeigt, wie Konstanten funktionieren. Probieren Sie es in Ihrer Browser-Konsole aus.

// Definiert my_fav als eine Konstante und weist ihr den Wert 7 zu.
const my_fav = 7;

// Das Überschreiben wird in Firefox und Chrome ignoriert.
// (Schlägt jedoch nicht in Safari fehl.)
// (Erzeugt einen SyntaxError ab Gecko 36.)
my_fav = 20;

// gibt 7 aus
console.log("my favorite number is: " + my_fav);

// Der Versuch, eine existierende Konstante neu zu definieren, 
// erzeugt einen Fehler
const my_fav = 20;

// Der Name my_fav ist für die obige Konstante reserviert, weshalb 
// dieses ebenfalls einen Fehler erzeugt.
var my_fav = 20; 

// my_fav ist immer noch 7
console.log("my favorite number is " + my_fav);

// Konstanten benötigten einen Initialwert, weshalb ein SyntaxError 
// erzeugt wird.
const foo;

// Konstanten können auch Objekte sein.
const myObject = {"key": "value"};

// Das Überschreiben wird nicht beachtet 
// (in Firefox und Chrome, aber nicht in Safari)
myObject = {"otherKey": "value"};

// Immer, wenn die Attribute eines Objektes nicht geschützt sind, 
// können diese überschrieben werden.
// Aus diesem Grund wird diese Zeile ohne Probleme ausgeführt.
myObject.key = "otherValue";

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 6 (ECMA-262)
Die Definition von 'Let and Const Declarations' in dieser Spezifikation.
Anwärter Empfehlung Initial definition.

Browserkompatibilität

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basisfunktionalität ? ? IE11 12.00 (vielleicht früher) 5.1.7 (vielleicht früher)

Fehlschlagen beim
Überschreiben

20 13 (13) IE11 ? ?
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basisfunktionalität ? ? ? ? ? ?

Fehlschlagen beim
Überschreiben

? ? ? ? ? ?

 

Anmerkungen

In frühen Versionen von Firefox und Chrome und seit Safari 5.1.7 und Opera 12.00 kann der Wert einer Konstanten nachträglich geändert werden. Konstanten sind im Internet Explorer 6-10 nicht unterstützt, jedoch wurden sie in Version 11 eingeführt.

Firefox-spezifische Anmerkungen

Die const-Deklaration wurde in Firefox schon implementiert, bevor const ein Teil der ECMAScript 6 Spezifikation war. Für die const-ES6-Erfüllung siehe Bug 950547 und Bug 611388.

  • Begonnen mit Gecko 36 (Firefox 36 / Thunderbird 36 / SeaMonkey 2.33):
    • {const a=1}; erzeugt jetzt einen ReferenceError und gibt nicht mehr 1 wegen des Blockgültigkeitsbereiches zurück.
    • const a; erzeugt jetzt einen SyntaxError ("missing = in const declaration"): Eine Initialisierung wird benötigt.
    • const a = 1; a = 2; erzeugt jetzt einen SyntaxError ("invalid assignment to const a").

See also

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: fscholz, schlagi123
 Zuletzt aktualisiert von: fscholz,