Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Anweisungen und Deklarationen
  5. const

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

const

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Dieconst-Deklaration deklariert block-skopierte lokale Variablen. Der Wert einer Konstante kann nicht durch Zuweisung mit demZuweisungsoperator geändert werden, aber wenn eine Konstante einObjekt ist, können ihre Eigenschaften hinzugefügt, aktualisiert oder entfernt werden.

Probieren Sie es aus

const number = 42;try {  number = 99;} catch (err) {  console.log(err);  // Expected output: TypeError: invalid assignment to const 'number'  // (Note: the exact output may be browser-dependent)}console.log(number);// Expected output: 42

Syntax

js
const name1 = value1;const name1 = value1, name2 = value2;const name1 = value1, name2 = value2, /* …, */ nameN = valueN;
nameN

Der Name der zu deklarierenden Variablen. Jeder muss ein legaler JavaScript-Bezeichner oder einDestructuring-Bindungsmuster sein.

valueN

Anfangswert der Variablen. Es kann jeder legale Ausdruck sein.

Beschreibung

Dieconst-Deklaration ist sehr ähnlich zulet:

  • const-Deklarationen sind auf Blöcke sowie auf Funktionen beschränkt.

  • const-Deklarationen können nur nach dem Erreichen des Deklarationsortes zugegriffen werden (siehetemporal dead zone). Aus diesem Grund werdenconst-Deklarationen häufig alsnicht-hoisted angesehen.

  • const-Deklarationen erstellen keine Eigenschaften aufglobalThis, wenn sie auf oberster Ebene eines Skripts deklariert werden.

  • const-Deklarationen können nicht durch eine andere Deklaration im selben Gültigkeitsbereicherneut deklariert werden.

  • const beginnenDeklarationen, nicht _Anweisungen. Das bedeutet, dass Sie keine alleinstehendeconst-Deklaration als Körper eines Blocks verwenden können (was sinnvoll ist, da es keine Möglichkeit gibt, auf die Variable zuzugreifen).

    js
    if (true) const a = 1; // SyntaxError: Lexical declaration cannot appear in a single-statement context

Ein Initialisierer für eine Konstante ist erforderlich. Sie müssen seinen Wert in derselben Deklaration angeben. (Das macht Sinn, da er später nicht geändert werden kann.)

js
const FOO; // SyntaxError: Missing initializer in const declaration

Dieconst-Deklaration erstellt einen unveränderlichen Verweis auf einen Wert. Das bedeutetnicht, dass der von ihr gehaltene Wert unveränderlich ist – lediglich, dass der Variablenbezeichner nicht neu zugewiesen werden kann. Im Falle eines Objekts bedeutet dies beispielsweise, dass der Inhalt des Objekts (z.B. seine Eigenschaften) verändert werden kann. Sie solltenconst-Deklarationen verstehen als "erstellen Sie eine Variable, derenIdentität konstant bleibt", nicht "derenWert konstant bleibt" — oder, "erstellen Sie unveränderlicheBindungen", nicht "unveränderliche Werte".

Viele Stilrichtlinien (einschließlich derMDN-Richtlinien) empfehlen die Verwendung vonconst anstelle vonlet, wann immer eine Variable in ihrem Gültigkeitsbereich nicht neu zugewiesen wird. Dies macht die Absicht deutlich, dass sich der Typ einer Variablen (oder der Wert, im Fall eines primitiven Werts) niemals ändern kann. Andere bevorzugen möglicherweiselet für Nicht-Primitive, die mutiert werden.

Die Liste, die demconst-Schlüsselwort folgt, wird alsBindungsliste bezeichnet und ist durch Kommas getrennt, wobei die KommaskeineKomma-Operatoren sind und die=-ZeichenkeineZuweisungsoperatoren sind. Initialisierer von späteren Variablen können sich auf frühere Variablen in der Liste beziehen.

Beispiele

Grundlegende Verwendung von const

Konstanten können mit Groß- oder Kleinschreibung deklariert werden, aber eine häufige Konvention ist die Verwendung von reinen Großbuchstaben, insbesondere für primitive Werte, da diese wirklich unveränderlich sind.

js
// define MY_FAV as a constant and give it the value 7const MY_FAV = 7;console.log(`my favorite number is: ${MY_FAV}`);
js
// Re-assigning to a constant variable throws an errorMY_FAV = 20; // TypeError: Assignment to constant variable// Redeclaring a constant throws an errorconst MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declaredvar MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declaredlet MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declared

Block-Skopierung

Es ist wichtig, die Natur der Block-Skopierung zu beachten.

js
const MY_FAV = 7;if (MY_FAV === 7) {  // This is fine because it's in a new block scope  const MY_FAV = 20;  console.log(MY_FAV); // 20  // var declarations are not scoped to blocks so this throws an error  var MY_FAV = 20; // SyntaxError: Identifier 'MY_FAV' has already been declared}console.log(MY_FAV); // 7

const in Objekten und Arrays

const funktioniert auch bei Objekten und Arrays. Ein Versuch, das Objekt zu überschreiben, wirft einen Fehler "Assignment to constant variable".

js
const MY_OBJECT = { key: "value" };MY_OBJECT = { OTHER_KEY: "value" };

Jedoch sind Objekt-Schlüssel nicht geschützt, daher wird die folgende Anweisung ohne Probleme ausgeführt.

js
MY_OBJECT.key = "otherValue";

Sie müsstenObject.freeze() verwenden, um ein Objekt unveränderlich zu machen.

Dasselbe gilt für Arrays. Die Zuweisung eines neuen Arrays zur Variable wirft einen Fehler "Assignment to constant variable".

js
const MY_ARRAY = [];MY_ARRAY = ["B"];

Dennoch ist es möglich, Elemente in das Array zu schieben und es somit zu verändern.

js
MY_ARRAY.push("A"); // ["A"]

Deklaration mit Destructuring

Die linke Seite jedes= kann auch ein Bindungsmuster sein. Dies ermöglicht das Erstellen mehrerer Variablen auf einmal.

js
const result = /(a+)(b+)(c+)/.exec("aaabcc");const [, a, b, c] = result;console.log(a, b, c); // "aaa" "b" "cc"

Für weitere Informationen sieheDestructuring.

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-let-and-const-declarations

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp