0

所以我刚开始使用 Codecademy 学习 JS,当时我遇到了一项任务,该任务要求我编写一个函数,该函数接受输入并评估它是否是偶数。我还被要求用来isNaN确定输入是否是数字。

无论如何,我有两个我认为应该有效的代码,但只有一个有效。唯一的区别是语句的顺序。我只是想知道是否有人能告诉我为什么只有一个代码有效?

代码一(有效):

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 语句的顺序如何影响代码?

4

4 回答 4

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 - 它成功完成了!

于 2015-04-11T04:17:41.840 回答
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;
 }
}

你错过了最后两个'}'。

于 2013-11-10T05:57:55.253 回答
0

这可能与它有时具有的 isNaN 时髦行为有关。例如 isNaN('') 会返回 false,即使空字符串不是数字...

isNaN(null) 也返回 false,即使 null 不是数字...

于 2013-11-10T06:03:04.870 回答
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. 你错过了 ';' in end of return('请输入一个数字')
  2. 最后结束函数。

我已经纠正了它对我的工作。

于 2013-11-10T06:04:53.917 回答