2017-01-30 3 views
0

На самом деле это простая программа для проверки погоды. Число делится на 2 или не делится на 2 или вводимый заданный не является числом. Согласно моей информации, isNaN('berry) должен дать мне true as'berry 'это строка, но в моем коде это не так.Проблема с использованием isNaN()

Код:

var isNum = function(number) { 
    // My code goes here! 
    if (number%2===0){ 
     return true 
    } 
    else if (isNaN(number)){ 
     console.log("enter the number not the string"); 
     return number     
    } 
    else{ 
     return false 
    } 
}; 
isNum('berry'); 

Код выше возвращает меня ложно, когда я запускаю его. Любая помощь будет оценена. Это скриншот isNaN

+1

Почему вы не используете 'вернуться! IsNaN (номер)'? –

+1

Вы должны проверить 'isNaN (число)' * перед * проверкой 'number% 2 === 0'. –

+0

@RocketHazmat, но если его возвращение ложно, он действительно подходит ко второму другому, если также – mehulmpt

ответ

0

Вы можете попробовать использовать parseInt() или parseFloat() для преобразования переменных в их целое или поплавок эквивалент перед использованием в других местах.

Для определения типа переменной вы можете использовать typeof.

var isNum = function(number) { 
    var number_parsed = parseFloat(number); 
    if (isNaN(number) || typeof number == 'string'){ 
      console.log("enter the number not the string"); 
      return number     
    } elseif(number_parsed % 2 ===0){ 
     return true 
    } else{ 
     return false 
    } 
}; 
isNum('berry'); 
+0

Спасибо @PatrikMoore ваш код выше работает абсолютно нормально, но я хочу сделать это, используя «if, else if, else». –

+0

@ KedarKodgire см. Обновление выше:} –

+0

Да @PatrikMoore теперь работает правильно.И еще одно сомнение в том, что делает «parseFloat» и «||» в вышеприведенном коде, поскольку я новичок в этом, я никогда раньше не использовал это, можете ли вы объяснить мне немного об этом. –

-1

isNan() возвращает true, когда аргумент фактически NaN. Вы предоставили 'berry ', а не NaN, и поэтому isNan() возвращает false.

Цитирование документации:

Функция IsNaN() определяет, является ли значение NaN или нет.

.

Возвращаемое значение

верно, если данное значение NaN; в противном случае - false.

+0

isNaN() возвращает boolean (true/false) числа без номера/числа соответственно. – mehulmpt

+0

@MehulMohan не соответствует документации – dsh

+0

isNaN ('a') // true. | IsNaN (1); // ложный; | 'a' == NaN // false. Интересный факт: NaN == NaN // false. – mehulmpt

0

Ваш код дает следующий результат (запустить его здесь), и она работает правильно

var isNum = function(number) { 
 
    // My code goes here! 
 
    if (number%2===0){ 
 
     return true 
 
    } 
 
    else if (isNaN(number)){ 
 
     console.log("enter the number not the string"); 
 
     return number     
 
    } 
 
    else{ 
 
     return false 
 
    } 
 
}; 
 
isNum('berry');

Смежные вопросы