2012-06-22 130 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)