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

Zuweisungsoperator (=) - 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

Zuweisungsoperator (=)

Baseline
Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Der Zuweisungsoperator (=) wird verwendet, um einer Variablen oder Eigenschaft einen Wert zuzuweisen. Der Zuweisungsausdruck selbst hat einen Wert, nmlich den zugewiesenen Wert. Dies ermglicht es, mehrere Zuweisungen zu verketten, um einen einzelnen Wert mehreren Variablen zuzuweisen.

In diesem Artikel

Probieren Sie es aus

let x = 2;
const y = 3;

console.log(x);
// Expected output: 2

console.log((x = y + 1)); // 3 + 1
// Expected output: 4

console.log((x = x * y)); // 4 * 3
// Expected output: 12

Syntax

js
x = y

Parameter

x

Ein gltiges Zuweisungsziel, einschlielich eines Identifiers oder eines Property-Accessors. Es kann auch ein Destructuring-Muster sein.

y

Ein Ausdruck, der den Wert spezifiziert, der x zugewiesen werden soll.

Rckgabewert

Der Wert von y.

Ausnahmen

ReferenceError

Wird im Strict-Mode ausgelst, wenn einem Identifier, der nicht im Geltungsbereich deklariert ist, ein Wert zugewiesen wird.

TypeError

Wird im Strict-Mode ausgelst, wenn einer Eigenschaft, die nicht modifizierbar ist, ein Wert zugewiesen wird.

Beschreibung

Der Zuweisungsoperator unterscheidet sich vllig vom Gleichheitszeichen (=), das an anderen Stellen als syntaktische Trennung verwendet wird, einschlielich:

All diese Stellen akzeptieren einen Zuweisungsausdruck auf der rechten Seite des =, daher gilt bei mehreren verketteten Gleichheitszeichen:

js
const x = y = 5;

Dies ist gleichbedeutend mit:

js
const x = (y = 5);

Das bedeutet, y muss eine bereits existierende Variable sein, und x ist eine neu deklarierte const-Variable. y wird der Wert 5 zugewiesen, und x wird mit dem Wert des y = 5-Ausdrucks initialisiert, der ebenfalls 5 ist. Wenn y keine bereits existierende Variable ist, wird eine globale Variable y im Nicht-Striktmodus implizit erstellt, oder ein ReferenceError wird im Striktmodus ausgelst. Um zwei Variablen innerhalb derselben Deklaration zu erklren, verwenden Sie:

js
const x = 5,
  y = 5;

Beispiele

Grundlegende Zuweisung und Verkettung

js
let x = 5;
let y = 10;
let z = 25;

x = y; // x is 10
x = y = z; // x, y and z are all 25

Wert von Zuweisungsausdrcken

Der Zuweisungsausdruck selbst wird zu dem Wert auf der rechten Seite ausgewertet, sodass Sie den Wert gleichzeitig protokollieren und einer Variablen zuweisen knnen.

js
let x;
console.log(x); // undefined
console.log(x = 2); // 2
console.log(x); // 2

Zuweisung eines nicht qualifizierten Identifiers

Das globale Objekt steht an der Spitze der Geltungsbereichskette. Beim Versuch, einen Namen in einen Wert aufzulsen, wird die Geltungsbereichskette durchsucht. Dies bedeutet, dass Eigenschaften am globalen Objekt von jedem Bereich aus bequem sichtbar sind, ohne dass die Namen mit globalThis. oder window. oder global. qualifiziert werden mssen.

Da das globale Objekt eine String-Eigenschaft hat (Object.hasOwn(globalThis, "String")), knnen Sie den folgenden Code verwenden:

js
function foo() {
  String("s"); // The function `String` is globally available
}

Das globale Objekt wird letztendlich nach nicht qualifizierten Identifiers durchsucht. Sie mssen nicht globalThis.String tippen; Sie knnen einfach das unqualifizierte String verwenden. Um diese Funktion konzeptionell konsistenter zu gestalten, geht die Zuweisung an nicht qualifizierte Identifiers davon aus, dass Sie eine Eigenschaft mit diesem Namen am globalen Objekt erstellen mchten (mit ausgelassenem globalThis.), wenn es keine Variable mit demselben Namen in der Geltungsbereichskette gibt.

js
foo = "f"; // In non-strict mode, assumes you want to create a property named `foo` on the global object
Object.hasOwn(globalThis, "foo"); // true

Im Striktmodus fhrt die Zuweisung an einen nicht qualifizierten Identifier im Striktmodus zu einem ReferenceError, um die versehentliche Erstellung von Eigenschaften im globalen Objekt zu vermeiden.

Es ist zu beachten, dass die obige Implikation bedeutet, dass JavaScript entgegen der weit verbreiteten Fehlinformation keine impliziten oder nicht deklarierten Variablen hat. Es verwechselt lediglich das globale Objekt mit dem globalen Geltungsbereich und erlaubt es, den Qualifizierer des globalen Objekts bei der Erstellung von Eigenschaften auszulassen.

Zuweisung mit Destructuring

Die linke Seite kann auch ein Zuweisungsmuster sein. Dies ermglicht es, mehreren Variablen gleichzeitig Werte zuzuweisen.

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

Fr weitere Informationen siehe Destructuring.

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-assignment-operators

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page