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 语句完成这个任务吗?
var t = "TEST";
switch(t){
case !"TEST": /* <- does not work. Can you check if t does NOT contain a string? */
alert("t != TEST");
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");
}
default:
if(n == -1){
//Your code
}
break;
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
变量值替换为整数,你应该可以看到正确的警报。
<script>
var t =((typeof "Test")=='string')?true:false;
switch(t){
case false:
alert("t != TEST");
break;
}
</script>
var t = "TEST";
switch(t){
case "TEST":
break;
default:
alert("This is the case you want");
break;
}
switch(true)
并在其中使用逻辑表达式作为case语句当其求值为true/false时是可行的...但这不是switch语句的“本意”。对于您的简单示例来说,一个简单的if
语句会更好。 - CBroeif
呢? - ComFreek