18

我有一个不起作用的 switch case 语句。我检查了输入,它是有效的。如果用户为 1,则默认。如果 user 是任意数字,则默认。这里有什么问题?我根本不了解javascript。

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

4 回答 4

37

确保您没有混合字符串和整数。
尝试:

switch (user) {
    case "1":
        // stuff
        break;
    case "2":
        // more stuff
        break;
    default:
        // this gets called
}
于 2012-06-22T08:38:26.463 回答
12

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

于 2012-06-22T08:37:55.267 回答
11

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

 switch (+user) {   
    case 1: .. //
 }
于 2012-06-22T08:41:39.520 回答
5

Javascript 是类型感知的。所以'1'与1不同。在你的情况下,“用户”必须是数字,而不是字符串。您可以通过以下方式进行投射:

user = Number(user)
于 2012-06-22T08:42:03.967 回答