SyntaxError: test for equality (==) mistyped as assignment (=)?
Fehlermeldung
Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
Fehlertyp
SyntaxError
Warnung nur im strict mode.
Was ist falsch gelaufen?
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).
Beispiele
Zuweisung in bedingten Ausdrücken
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
}