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语句做到这一点吗?我可以在JavaScript switch语句中检查不等于吗?
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语句做到这一点吗?我可以在JavaScript switch语句中检查不等于吗?
您可以使用if。如果你喜欢开关,使用“默认”情况和条件,如果没有像
default:
if(n == -1){
//Your code
}
break;
如果你走这条路线,你可能会抛弃switch语句而转向if else – jamiethepiper
你可以使用typeof运算:
<script>
var t =((typeof "Test")=='string')?true:false;
switch(t){
case false:
alert("t != TEST");
break;
}
</script>
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
变量值,你应该看到正确的警报。
比方说:
var t = "TEST";
switch(t){
case "TEST":
break;
default:
alert("This is the case you want");
break;
}
,你也可以这样做:
var str = "TEST";
switch (true) {
case (str !== "TEST") :
alert("str !== TEST");
break;
case (str === null) :
alert("str is null");
break;
default:
alert("default trigger");
}
虽然'开关(真)'和与评估在JavaScript中真/假_works_逻辑表达式,然后有情况......这不是如何使用开关的“含义”。举个简单的例子,一个简单的if语句会更好。 – CBroe
这个例子是从一个更复杂的案例中分离出来的。感谢评论CBroe! – subZero
你为什么不使用'if'? – ComFreek