使用isNaN()的问题

时间:2017-01-30 18:20:46

标签: javascript

实际上这是一个简单的程序来检查天气,数字可被2整除或不能被2整除或给出的输入不是数字。根据我的信息isNaN('berry)应该给我真实的' berry'是一个字符串,但在我的代码中,这是非常错误的。

代码是:

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');

上面的代码在运行时返回false。任何帮助将不胜感激。 这是屏幕截图isNaN

3 个答案:

答案 0 :(得分: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');

答案 1 :(得分: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');

答案 2 :(得分:-1)

当参数实际为new-array execution functions时,

isNan()返回true。您提供了'berry',而不是NaN,因此isNan()返回false。

引用文档:

  

isNaN()函数确定值是否为NaN。

  

返回值

     

如果给定值为NaN,则为true;否则,错误。