2012-06-22 132 views
6

我有一个开关盒语句不起作用。我检查了输入,它是有效的。如果用户是1,则它将进入默认状态。如果用户是任何号码,它默认。这里有什么问题?我根本不知道JavaScript。JS开关盒不工作

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

变量'user'包含什么?一个'对象'或'int'? – user278064

+0

这就是为什么我比较喜欢强打字:) –

+0

克里斯,试试'switch(~~ user)' – KingRider

回答

16

确保你没有混合字符串和整数。
尝试:用户变量的

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

'default'不需要'break' – KingRider

10

问题是数据类型不匹配。投影类型为用户为整数。

+0

怎么样?我以为你在js所做的一切都是var – Chris

4

演员类型为整数

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

JavaScript是感知类型。所以'1'与1不同。在你的情况下,“用户”必须是数字的,而不是字符串。你可以投它:

user = Number(user)