У меня проблема с очень простой частью кода, написанной в Javascript, не могли бы вы мне помочь?
Вот что я думаю, что до сих пор понял javascript и переменные:
- Значение undefined оценивается как false в логической операции
- Используя оператор == в сравнении, вы спрашиваете, сопоставимы ли два значения независимо от их типов.
Я нашел файл упражнений в онлайн-курсе, и я попытался это сделать, но у меня не было такого же результата, ожидаемого на уроке; основная проблема заключалась в том, что я сравнивал значение через значение "if value == false {...}", в то время как в решении использовалось значение "if! value {...}"
Поэтому я решил написать очень короткий код, чтобы попробовать его сам, но я получаю смешанные результаты. Здесь, в приведенном ниже примере, я ожидал бы, что этот JS-код сгенерирует два одинаковых предупреждения ( "foo равно false" ), но вместо этого первый оператор if возвращает "foo IS NOT равно false", а второй - возвращает (как и ожидалось) "foo равно false".
Вот что я написал:
var foo = undefined;
if (foo == false) {
alert("foo is equal to false");
} else {
alert("foo is not equal to false"); // Javascript executes this row
}
if (!foo) {
alert("foo is equal to false"); // Javascript executes this row
} else {
alert("foo is not equal to false");
}
AFAIK, оба IF должны выполнять одну и ту же работу и вводить, когда я его пробовал, заменив в первой строке значение "var foo = undefined;" с "var foo = 0;" он работал как ожидалось, а 0 - другое значение, которое должно быть оценено как false, или, по крайней мере, это то, что я помню.
Не могли бы вы рассказать мне, что я делаю неправильно?