关于在javascript中检测数字是奇数还是偶数
我正在编写关于CodeAcademy的JS教程,我被要求创建一个函数来检查输入是否可以被2整除 这是我的密码:关于在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告诉我代码
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!是什么发生了。。。