JavaScript中的switch case语句无效

19

我有一个switch case语句,但它不起作用。我已经检查了输入,它是有效的。如果用户是1,则跳转到默认情况。如果用户是任何数字,它都会默认。这里出了什么问题?我对javascript一点也不了解。

switch (user) {
case 1:
    // stuff
    break;
case 2:
    // more stuff
    break;
default:
    // this gets called
    break;
}

1
еҸҳйҮҸuserеҢ…еҗ«д»Җд№ҲпјҹжҳҜдёҖдёӘеҜ№иұЎиҝҳжҳҜдёҖдёӘж•ҙж•°пјҹ - user278064
2
这就是为什么我更喜欢强类型:) - Petar Minchev
Chris,请尝试使用switch(~~user) - KingRider
4个回答

38

确保您不要混合使用字符串和整数。
尝试:

switch (user) {
    case "1":
        // stuff
        break;
    case "2":
        // more stuff
        break;
    default:
        // this gets called
}

default not necessary break - KingRider

12

问题是数据类型不匹配。将用户的类型转换为整数。


怎么可能?我认为在 JavaScript 中你只需要使用 var。 - Chris

12

将用户变量的类型转换为整数

 switch (+user) {   
    case 1: .. //
 }

6

Javascript是类型感知的。所以'1'和1不相同。在你的情况下,“user”必须是数字,而不是字符串。你可以通过以下方式强制转换它:

user = Number(user)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接