为什么这段代码只有在 isNaN 放在最后时才有效
Why does this code only work when the isNaN is put last?
所以我刚刚开始学习 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 语句的顺序如何影响代码?
因为它不完整
试试这个:
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;
}
}
您缺少最后两个"}"。
更正第二个函数,如下所示:
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;
}
}
在第二个代码中,
- 您在返回末尾错过了";"("请输入一个数字")
- 功能结束时结束。
我已经纠正了,它为我工作。
这可能与它有时具有的isNaN时髦行为有关。 例如,isNaN('') 返回 false,即使空字符串不是数字...
isNaN(null) 也返回 false,即使 null 不是一个数字...
isEven = function(number){
if (number % 2 === 0){
return "string1";
}else if(NaN(number)){
return("Not a number");
}else {
return "string3";
}
};
isEven(12);
我用 NaN 代替了 isNaN - 它成功完成了!
相关文章:
- 表追加而不附加最后一个元素
- Amd,希望确保某个东西总是最后执行
- 键入最后一位数字后自动提交
- 无法在Ionic select中预先选择最后一个选项
- 动态插入的表:JQuery未检测到最后一行
- 为什么画布形状只在3个画布中的最后一个画布上渲染
- Jquery append oly获取循环Rails中的最后一个elemen
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- dataTables-如何自定义分页类型以显示最后一个页码后面的省略号,
- 多维关联数组的最后一个索引
- 无法获取vis.js最后一个或第一个选定的网络节点
- 循环以检查数组中的最后一个图像
- 从输入值中删除最后一个单词
- 正在尝试删除子元素的最后一个子元素
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 为什么这段代码只有在 isNaN 放在最后时才有效