我可以在JavaScript switch语句中检查不相等吗?

时间:2013-10-28 13:25:20

标签: javascript

var t = "TEST";
switch(t){
    case !"TEST": /* <- does not work. Can you check if t does NOT contain a string? */
        alert("t != TEST");
    break;
}

你能用switch语句吗?

5 个答案:

答案 0 :(得分:5)

你可以使用if。如果您更喜欢切换,请使用“默认”大小写和if条件

default:
    if(n == -1){
        //Your code
    }
    break;

答案 1 :(得分:3)

你可以使用typeof:

<script>
        var t =((typeof "Test")=='string')?true:false;
        switch(t){
            case false:
                alert("t != TEST");
                break;
        }
</script>

答案 2 :(得分:3)

case语句总是寻找真实。既然你真的想检查变量是否是一个字符串(正如我在你的代码中的注释中所读到的那样),也许这种方法可能适合你:

var t = "TEST";
switch(typeof t){
    case "string":
    break;
    default:
        alert("t is not a string");
    break;
}

修改
如果您的实际代码中有更多案例,可能下面的代码可以完成这项工作吗?

var t = "TEST";
switch(t){
    case t:
        if ("string" != typeof t) {
            alert("t is not a string");
            break;
        }
    case "TEST":
        alert("case 2");
        break;
    case "something_else":
        alert("case 3");
        break;
}

这是一个小例子:http://jsfiddle.net/Rz7Sf/。将t变量值替换为整数,您应该看到正确的警报。

答案 3 :(得分:2)

你也可以这样做:

var str = "TEST";

switch (true) {
    case (str !== "TEST") :
        alert("str !== TEST");
        break;
    case (str === null) :
        alert("str is null");
        break;
    default:
        alert("default trigger");
}

答案 4 :(得分:1)

让我们说:

var t = "TEST";
switch(t){
    case "TEST": 
        break;
    default:
        alert("This is the case you want");
        break;
}