我可以在JavaScript开关语句中检查不相等吗? var t=“测试”; 开关(t){ case!“TEST”:/*
您可以使用if。如果您更喜欢switch,请使用“default”case和if条件,如我可以在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){
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");
}