SyntaxError: test for equality (==) mistyped as assignment (=)?(тест на равенство (==) опечатка как присваивание (=)?)

Сообщения

Warning: SyntaxError: тест на равенство (==) опечатка как присваивание (=)?

Тип ошибки

(Только в Firefox) SyntaxError предупреждение, в котором сообщается, только если javascript.options.strict предпочтение установлено в true.

Что пошло не так?

Было присвоение ( = ), когда вы обычно ожидали тест на присвоение (==). Чтобы помочь отладке, JavaScript (с включёнными строгими предупреждениями) предупреждает об этом шаблоне.

Примеры

Задание в условных выражениях

Рекомендуется не использовать простые назначения в условном выражении (например, if...else), поскольку при просмотре кода назначение можно спутать с равенством. Например, не используйте следующий код:

js
if (x = y) {
  // делать правильные вещи
}

Если необходимо использовать присваивание в условном выражении, то обычно вокруг него ставят дополнительные скобки. Например:

js
if ((x = y)) {
  // делать правильные вещи
}

В противном случае вы, вероятно, хотели использовать оператор сравнения (например, = = или ===):

js
if (x == y) {
  // делать правильные вещи
}

Смотрите также