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
}

Siehe auch