切换测试if isNan

时间:2013-12-05 05:43:59

标签: javascript switch-statement

在switch语句中,我想确保用户没有输入数字。我得到一个错误: “case!isNaN(用户):”

var user = prompt("Hey! What do you like?","").toLowerCase();
switch(user){
    case "": 
    console.log("Can\'t be blank!");
    break;
    case !isNaN(user):
    console.log("Can\'t be a number");
    break;
    case "food":
    console.log("Food does a body good...sometimes");
    break;
    default:
    console.log("Mmm....Can\'t Make heads or tales of this one.");
}

我也试过了,但没有工作:

switch(!isNaN(user)){
    case true:
    console.log("Hey! Can\'t be a number!");
    break; 

我可以得到!isNaN可以在其他地方工作,但不能在交换机中工作。

var user = prompt("Hey! What do you like?","").toLowerCase();
    if(!isNaN(user)){
        console.log("Can\'t be a Number!");
    }

1 个答案:

答案 0 :(得分:2)

switch语句将您的user变量与每个案例进行比较。所以必须像

一样阅读
  • 用户==“”。是?做的事
  • 用户==“食物”。是?做的事
  • 否则,做点什么

当你阅读这样的案例陈述时,你会发现为什么你的NaN案例不起作用

  • 是用户== isNaN(用户)< - 永远不会是真的

您的最终代码是您需要的方式

var user = prompt("Hey! What do you like?","").toLowerCase();
if(!isNaN(user)){
    console.log("Can\'t be a Number!");
}