刚刚开始使用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作为一个函数。我尝试了很多东西,我知道它很简单,但它并没有跳出来。有人能帮我吗?谢谢!
答案 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));