关于在javascript中检测数字是奇数还是偶数

关于在javascript中检测数字是奇数还是偶数,javascript,Javascript,我正在编写关于CodeAcademy的JS教程,我被要求创建一个函数来检查输入是否可以被2整除 这是我的密码: var isEven = function(number) { if (number % 2 ===0) { return true; } else if (!isNaN(number)) { return "Give a number"; } else { return false; } }; 为什么codeacademy告诉我代码

我正在编写关于CodeAcademy的JS教程,我被要求创建一个函数来检查输入是否可以被2整除

这是我的密码:

var isEven = function(number) {

  if (number % 2 ===0) {
    return true;
  }
  else if (!isNaN(number)) {
    return "Give a number";
  }
  else {
    return false;
  }
};

为什么codeacademy告诉我代码是错误的,因为函数将导致3为true?

在JavaScript中,任何不正确的都是true。因此,字符串“给出一个数字”被认为是真的

在JavaScript中,任何不正确的东西都是正确的。因此,字符串“给出一个数字”被认为是真的

反向登录!isNaN,即删除感叹号-在构造中需要为负数


但实际上,您也不应该返回文本。

反向登录!isNaN,即删除感叹号-在构造中需要为负数

但实际上,您也不应该返回文本。

尝试以下方法:

var isEven = function(number) {

 if (!isNaN(number)) {
  return "Give a number";
 }

 else if (number % 2 ===0) {
  return true;
 }

 else {
  return false;


    }
};
试试这个:

var isEven = function(number) {

 if (!isNaN(number)) {
  return "Give a number";
 }

 else if (number % 2 ===0) {
  return true;
 }

 else {
  return false;


    }
};
!!isNaN(3)->计算结果为true

if (typeof(number) === "number"){
  return (number%2 === 0)
} else {
  //do something else 
  return false
}
!!isNaN(3)->计算结果为true

if (typeof(number) === "number"){
  return (number%2 === 0)
} else {
  //do something else 
  return false
}


3不是NaN,因此函数将返回“Give a number”
3
不是偶数,因此说函数不正确似乎是正确的。或者您的问题是,为什么函数返回
3
true
?在这种情况下,在代码中设置一个断点并逐步执行。3不是NaN,因此函数将返回“Give a number”,而
3
不是偶数,因此说函数不正确似乎是正确的。或者您的问题是,为什么函数返回
3
true
?那么,,在代码中设置一个断点并单步执行。摆脱检查isNan并只返回true或false的情况。教程要求我检查输入是否为数字,如果不是返回要求数字的字符串…@AggelosSfakianos:因此,您的函数错误地将
3
视为非数字。其他海报是关于你在isNaN的情况是对的(你是说如果它不是一个数字),我很快就跳到了一个更复杂的答案:)谢谢你将我的帖子标记为答案,但你可能应该标记一个真正有正确答案的人:)摆脱检查isNan并只返回true或false的情况。教程要求我检查输入是否为数字,以及是否不返回字符串询问号码…@AggelosSfakianos:所以你的函数错误地将
3
视为非号码。其他海报上关于你在isNaN的情况是正确的(你说的不是号码),我太快跳到了一个更复杂的答案:)谢谢你把我的帖子标记为答案,但你可能应该标记一个真正有正确答案的人:)还要注意,如果输入是以字符串形式给出的,如“2”,这也会返回FalseNote,如果输入是以字符串形式给出的,如“2”,这将返回相同的问题…哦,请重试。您的函数在3秒内返回true!出现的是…同样的问题…哎呀,再试一次。您的函数在3秒内返回true!是什么发生了。。。