【问题标题】:JS switch case not workingJS开关盒不工作
【发布时间】:2012-06-22 08:34:02
【问题描述】:

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

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

【问题讨论】:

  • 变量user 包含什么? objectint?
  • 这就是为什么我更喜欢强类型:)
  • 克里斯,试试switch(~~user)

标签: javascript switch-statement


【解决方案1】:

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

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

【讨论】:

  • default 不需要break
【解决方案2】:

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

【讨论】:

  • 怎么样?我以为你在 js 中所做的只是 var
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    user = Number(user)
    

    【讨论】:

      猜你喜欢
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      相关资源
      最近更新 更多