JS开关盒无法正常工作

Chr*_*ris 12 javascript switch-statement

我有一个不起作用的switch case语句.我检查了输入,它是有效的.如果user为1,则为默认值.如果用户是任何号码,则默认为.这有什么不对?我根本不懂javascript.

switch (user) {
case 1:
    // stuff
    break;
case 2:
    // more stuff
    break;
default:
    // this gets called
    break;
}
Run Code Online (Sandbox Code Playgroud)

Eya*_*lAr 25

确保你没有混合字符串和整数.
尝试:

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


小智 10

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


abu*_*uba 5

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

 switch (+user) {   
    case 1: .. //
 }
Run Code Online (Sandbox Code Playgroud)


dis*_*ion 5

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

user = Number(user)
Run Code Online (Sandbox Code Playgroud)