--- title: 'SyntaxError: test for equality (==) mistyped as assignment (=)?' slug: Web/JavaScript/Reference/Fehler/Equal_as_assign tags: - Errors - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Equal_as_assign ---
Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
{{jsxref("SyntaxError")}} Warnung nur im strict mode.
Es gibt eine Zuweisung (=
) an der eigentlich ein Gleichheitsprüfung (==
) erwartet wird. Um das Debuggen zu unterstützen, warnt JavaScript diesen Fakt (im strict mode).
Es ist ratsam in bedingten Ausdrücken (wie z. B. if...else
) keine einfachen Zuweisungen zu verwenden, weil beim lesen des Codes eine Zuweisung mit einer Gleichheitsprüfung verwechselt werden kann. Zum Beispiel sollte folgender Code nicht verwendet werden:
if (x = y) { // do the right thing }
Wenn es notwendig ist eine Zuweisung in einem bedingten Ausdruck einzusetzen, ist es verbreitet, diese mit runden Klammern einzuklammern. Zum Beispiel:
if ((x = y)) { // do the right thing }
Andernfalls kann es sein, dass eigentliche eine Vergleichsoperation gemeint war (z. B. ==
oder ===
):
if (x == y) { // do the right thing }