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) {
// делать правильные вещи
}