--- title: >- SyntaxError: test for equality (==) mistyped as assignment (=)?(тест на равенство (==) опечатка как присваивание (=)?) slug: Web/JavaScript/Reference/Errors/Equal_as_assign translation_of: Web/JavaScript/Reference/Errors/Equal_as_assign ---
Warning: SyntaxError: тест на равенство (==) опечатка как присваивание (=)?
(Только в Firefox) {{jsxref("SyntaxError")}} предупреждение, в котором сообщается, только если javascript.options.strict
предпочтение установлено вtrue
.
Было присвоение ( = ), когда вы обычно ожидали тест на присвоение (==). Чтобы помочь отладке, JavaScript (с включёнными строгими предупреждениями) предупреждает об этом шаблоне.
Рекомендуется не использовать простые назначения в условном выражении (например, if...else), поскольку при просмотре кода назначение можно спутать с равенством. Например, не используйте следующий код:
if (x = y) { // делать правильные вещи }
Если необходимо использовать присваивание в условном выражении, то обычно вокруг него ставят дополнительные скобки. Например:
if ((x = y)) { // делать правильные вещи }
В противном случае вы, вероятно, хотели использовать оператор сравнения (например, = = или ===):
if (x == y) { // делать правильные вещи }