Javascript JS开关盒不工作

Javascript JS开关盒不工作,javascript,switch-statement,Javascript,Switch Statement,我有一个switch case语句不起作用。我已经检查了输入,它是有效的。如果用户为1,则它将变为默认值。如果user是任意数字,则为默认值。这里怎么了?我对javascript一点也不了解 switch (user) { case 1: // stuff break; case 2: // more stuff break; default: // this gets called break; } 问题是数据类型不匹配。将用户的类型强制转换为

我有一个switch case语句不起作用。我已经检查了输入,它是有效的。如果用户为1,则它将变为默认值。如果user是任意数字,则为默认值。这里怎么了?我对javascript一点也不了解

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

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

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


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

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

Javascript是类型感知的。所以“1”和1不一样。在您的情况下,“用户”必须是数字,而不是字符串。您可以通过以下方式进行施放:

user = Number(user)

变量
user
包含什么?一个
对象
或一个
int
?这就是为什么我更喜欢强输入:)克里斯,试试
开关(~~用户)
如何?我以为你在js中所做的只是var
default
不必
break
user = Number(user)