| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Assignment | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
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.
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
x = y
xEin gltiges Zuweisungsziel, einschlielich eines Identifiers oder eines Property-Accessors. Es kann auch ein Destructuring-Muster sein.
yEin Ausdruck, der den Wert spezifiziert, der x zugewiesen werden soll.
Der Wert von y.
ReferenceErrorWird im Strict-Mode ausgelst, wenn einem Identifier, der nicht im Geltungsbereich deklariert ist, ein Wert zugewiesen wird.
TypeErrorWird im Strict-Mode ausgelst, wenn einer Eigenschaft, die nicht modifizierbar ist, ein Wert zugewiesen wird.
Der Zuweisungsoperator unterscheidet sich vllig vom Gleichheitszeichen (=), das an anderen Stellen als syntaktische Trennung verwendet wird, einschlielich:
var, let, und const-DeklarationenAll diese Stellen akzeptieren einen Zuweisungsausdruck auf der rechten Seite des =, daher gilt bei mehreren verketteten Gleichheitszeichen:
const x = y = 5;
Dies ist gleichbedeutend mit:
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:
const x = 5,
y = 5;
let x = 5;
let y = 10;
let z = 25;
x = y; // x is 10
x = y = z; // x, y and z are all 25
Der Zuweisungsausdruck selbst wird zu dem Wert auf der rechten Seite ausgewertet, sodass Sie den Wert gleichzeitig protokollieren und einer Variablen zuweisen knnen.
let x;
console.log(x); // undefined
console.log(x = 2); // 2
console.log(x); // 2
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:
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.
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.
Die linke Seite kann auch ein Zuweisungsmuster sein. Dies ermglicht es, mehreren Variablen gleichzeitig Werte zuzuweisen.
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.
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-assignment-operators |
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |