在我的代码中使用isNaN?

时间:2015-10-31 06:55:10

标签: javascript

刚刚开始使用Javascript,我唯一的突破是:

var isEven = function(number) {
    if (number % 2 === 0) {
        return true
    }
    else if (number % 2 !== 0) {
        return false
    }
    else (isNaN) {
        return "Not a Number"
    }
};

我不能为我的生活弄清楚如何在这个语句中实现isNaN作为一个函数。我尝试了很多东西,我知道它很简单,但它并没有跳出来。有人能帮我吗?谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个。传递字符串时,它返回"不是数字"。首先,你需要检查它是否是isNaN(数字),然后继续其余的情况。即使它不是一个数字(数字%2!== 0),你的下一个返回false的顺序首先执行,它进行评估,传递此条件并返回false。

 var isEven = function(number) {
   if(isNaN(number)) {
       return "Not a Number";
   }
   else if (number % 2 === 0) {
       return true;
   }
   else /*you can simply use else instead of else if(number%2!== 0) to find if it is not even since it is the last case*/
   {
       return false;
   }

 };
var ddd = isEven("hhh");
 console.log(ddd);

答案 1 :(得分:0)

你误解了isNaN的目的。 isNaN的目的是检查某些内容是否等同于 NaN应该用于检查任意值是否为数字,并且您不应该将其用于此目的。

要检查值是否不是number类型,请使用:

if (typeof number !== 'number')

要检查值是数字还是代表数字的字符串,您可以使用:

if(isNaN(Number(number)) || 
   (typeof number !== 'number' && typeof number !== 'string'))

示例:



var isEven = function(number) {
if(isNaN(Number(number)) || 
   (typeof number !== 'number' && typeof number !== 'string')) {
    return "Not a Number";
  }
  
  return number % 2;
};

console.log(isEven("1"));
console.log(isEven(13));
console.log(isEven("2"));
console.log(isEven(8));
console.log(isEven("What?"));
console.log(isEven([]));
console.log(isEven(false));