所以我刚开始使用Codecademy学习JS,当我完成一项任务,要求我编写一个接受输入的函数并评估它是否是偶数。我还需要使用isNaN
来确定输入是否为数字。
无论如何,我有两个代码,我认为应该有效但只有一个代码。唯一的区别是语句的顺序。我只是想知道是否有人能告诉我为什么只有一个代码有效?
Code one(works):
isEven = function(number){
if(number%2 === 0){
return true;
}
else if(number%2 === 1){
return false;
}
else if(isNaN(number)){
return('Please enter a number');
}
但是,这个没有:
isEven = function(number){
if(isNaN(number)){
return('Please enter a number')
}
else if(number%2 === 1){
return false;
}
else if(number%2 === 0){
return true;
}
有谁能告诉我if / else if语句的顺序如何影响代码?
答案 0 :(得分:0)
因为它不完整
试试这个:
isEven = function(number){
if(isNaN(number)){
return('Please enter a number')
}else if(number%2 === 1){
return false;
}else if(number%2 === 0){
return true;
}
}
你错过了最后两个'}'。
答案 1 :(得分:0)
这可能与它有时的isNaN时髦行为有关。例如isNaN('')返回false,即使空字符串不是数字...
isNaN(null)也返回false,即使null不是数字...
答案 2 :(得分:0)
纠正第二个功能如下:
isEven = function(number){
if(isNaN(number)){
return('Please enter a number');
}
else if(number%2 === 1){
return false;
}
else if(number%2 === 0){
return true;
}
}
在第二段代码中,
我已经纠正并为我工作了。
答案 3 :(得分:0)
isEven = function(number){
if (number % 2 === 0){
return "string1";
}else if(NaN(number)){
return("Not a number");
}else {
return "string3";
}
};
isEven(12);
我使用NaN而不是isNaN - 它已成功完成!