--- title: 'SyntaxError: test for equality (==) mistyped as assignment (=)?' slug: Web/JavaScript/Reference/Errors/Equal_as_assign tags: - Errors - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Equal_as_assign original_slug: Web/JavaScript/Reference/Fehler/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
}