Я попытался создать в JavaScript функцию, которая сообщает, является ли число четным или нет, или это число вообще. Я получаю эту ошибку: введите описание изображения здесь

Это для урока в CodeCademy.

0
DreamCode 18 Дек 2015 в 13:27

4 ответа

Лучший ответ

Вы проверяете, существует ли функция isNaN, а не является ли число NaN похожим на isNaN(number).

И хотя строка с содержанием является правдивой, результат верен для любого числа.

1
Nina Scholz 18 Дек 2015 в 10:34

Вы возвращаете строку.

else if(isNan){
    return "Whatever";
}

Вы просто говорите javascript для оценки isNan, как значение, а не как функцию. Чтобы оценить его как функцию, вы должны использовать его для вызова , например:

else if(isNan(yourNumber)){
    return true;
}

Кстати, когда вы пытаетесь оценить функцию как значение, как вы, javascript всегда будет возвращать true, если эта функция не является неопределенной или нулевой.

0
Redd Sanso 18 Дек 2015 в 10:34

Потому что

else if(isNaN)

Будет true и вернет "This is not a number", и эта строка будет считаться истинной. Здесь вы проверяете, isNaN определен как функция или нет, что, конечно, определено, поэтому вы должны проверить, где число является действительным числом или нет.

Вместо этого вы должны делать

else if(isNaN(number))
0
void 18 Дек 2015 в 10:34

IsNaN - это функция, поэтому ваш оператор else if (isNaN) всегда должен быть истинным, поскольку isNaN - допустимая функция. Попробуйте else if (isNaN(number)), и вам, вероятно, следует проверить isNaN, прежде чем пытаться по модулю, поскольку, если вы введете строку, она сразу же выдаст ошибку, когда вы попытаетесь получить модуль строки.

0
Shilly 18 Дек 2015 в 10:32