Поймать использование оператора присваивания вместо оператора равенства
Ветвящиеся программы, то есть те, которые выполняют разные вещи, если выполняются определенные условия, полагаются на if
, else if
и else
в JavaScript.
Условие иногда принимает форму проверки того, равен ли результат равному значению. Эта логика произносится (по крайней мере, на английском языке) как «если x равно y, тогда ...», которая может буквально перевести на код с помощью оператора =
или присваивания. Это приводит к непредвиденному потоку управления в вашей программе. Как описано в предыдущих задачах, оператор присваивания ( =
) в JavaScript присваивает значение имени переменной. И операторы ==
и ===
проверяют равенство (тройные ===
тесты для строгого равенства, что означает как значение, так и тип). Приведенный ниже код присваивает x
равному 2, который оценивается как true
. Почти каждое значение само по себе в JavaScript оценивается как true
, кроме тех, которые известны как «ложные» значения: false
, 0
, ""
(пустая строка), NaN
, undefined
и null
.
let x = 1;
let y = 2;
if (x = y) {
} else {
}
В этом примере блок кода в операторе if
будет выполняться для любого значения y
, если y
не является ложным. Блок else
,
который мы ожидаем запустить здесь, на самом деле не будет выполняться.
Исправьте условие, чтобы программа выполняла правильное ветвление, и соответствующее значение присваивалось переменной result
.