[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Errors/Invalid_const_assignment [Back]  [Original]

TypeError: ungltige Zuweisung zu const "x" - JavaScript | MDN

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

View in English Always switch to English

TypeError: ungltige Zuweisung zu const "x"

Die JavaScript-Ausnahme "ungltige Zuweisung zu const" tritt auf, wenn versucht wurde, einen Konstantenwert zu ndern. JavaScript const Deklarationen knnen nicht neu zugewiesen oder neu deklariert werden.

In diesem Artikel

Nachricht

TypeError: Assignment to constant variable. (V8-based)
TypeError: invalid assignment to const 'x' (Firefox)
TypeError: Attempted to assign to readonly property. (Safari)

Fehlertyp

TypeError

Was ist schiefgelaufen?

Eine Konstante ist ein Wert, der whrend der normalen Ausfhrung des Programms nicht verndert werden kann. Sie kann nicht durch Zuweisung gendert werden und kann nicht neu deklariert werden. In JavaScript werden Konstanten mit dem const Schlsselwort deklariert.

Beispiele

Ungltige Neudeklaration

Die Zuweisung eines Wertes an denselben Konstantennamen im selben Blockscope wird einen Fehler auslsen.

js
const COLUMNS = 80;

// 

COLUMNS = 120; // TypeError: invalid assignment to const `COLUMNS'

Behebung des Fehlers

Es gibt mehrere Mglichkeiten, diesen Fehler zu beheben. berprfen Sie, was mit der betreffenden Konstanten erreicht werden sollte.

Umbenennen

Falls Sie vorhatten, eine andere Konstante zu deklarieren, whlen Sie einen anderen Namen und benennen Sie um. Dieser Konstantenname ist bereits in diesem Scope belegt.

js
const COLUMNS = 80;
const WIDE_COLUMNS = 120;

const, let oder var?

Verwenden Sie const nicht, wenn Sie keine Konstante deklarieren wollten. Vielleicht wollten Sie eine block-skopierte Variable mit let oder eine globale Variable mit var deklarieren.

js
let columns = 80;

// 

columns = 120;

Scoping

berprfen Sie, ob Sie sich im richtigen Scope befinden. Sollte diese Konstante in diesem Scope erscheinen, oder war sie fr eine Funktion bestimmt?

js
const COLUMNS = 80;

function setupBigScreenEnvironment() {
  const COLUMNS = 120;
}

const und Unvernderlichkeit

Die const Deklaration erstellt eine schreibgeschtzte Referenz zu einem Wert. Es bedeutet nicht, dass der von ihr gehaltene Wert unvernderlich ist, sondern nur, dass der Variablenbezeichner nicht neu zugewiesen werden kann. Zum Beispiel, wenn der Inhalt ein Objekt ist, kann dieses Objekt selbst immer noch verndert werden. Das bedeutet, dass Sie den in einer Variablen gespeicherten Wert nicht ndern knnen:

js
const obj = { foo: "bar" };
obj = { foo: "baz" }; // TypeError: invalid assignment to const `obj'

Aber Sie knnen die Eigenschaften in einer Variablen ndern:

js
obj.foo = "baz";
obj; // { foo: "baz" }

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page