我可以在JavaScript开关语句中检查不相等吗? var t=“测试”; 开关(t){ case!“TEST”:/*

我可以在JavaScript开关语句中检查不相等吗? var t=“测试”; 开关(t){ case!“TEST”:/*,javascript,Javascript,您可以使用if。如果您更喜欢switch,请使用“default”case和if条件,如 var t = "TEST"; switch(t){ case !"TEST": /* <- does not work. Can you check if t does NOT contain a string? */ alert("t != TEST"); break; } 您可以使用typeof: default: if(n == -1){

您可以使用if。如果您更喜欢switch,请使用“default”case和if条件,如

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

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

var t=((typeof“Test”)=“string”)?true:false;
开关(t){
案例错误:
警报(“t!=测试”);
打破
}

case
语句总是查找true。因为您实际上想检查变量是否为字符串(正如我在代码中的注释中所读到的),所以这种方法可能适合您:

<script>
        var t =((typeof "Test")=='string')?true:false;
        switch(t){
            case false:
                alert("t != TEST");
                break;
        }
</script>
编辑
如果你的真实代码中有更多的案例,也许下面的代码可以完成这项工作

var t = "TEST";
switch(typeof t){
    case "string":
    break;
    default:
        alert("t is not a string");
    break;
}
这里有一个例子:。将
t
变量值替换为整数,您应该会看到正确的警报。

假设:

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;
}
您也可以这样做:

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

switch(true)
,然后在JavaScript中使用逻辑表达式计算为true/false的case…这不是switch的“含义”待使用。对于您的简单示例,一个简单的
if
语句会更好。该示例与一个更复杂的案例隔离开来。感谢您的注释CBroe!为什么不使用一个
if
?@subZero呢?那么它不应该包含在switch语句中,它将始终查找true。@subZero,我不知道您是否选中了d我的答案已经有了,但如果你有,我只是编辑了一下。请看一下它是否适合你的需要。如果你走这条路,你最好放弃switch语句,改为if-else
var str = "TEST";

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