速记IF声明

时间:2011-04-19 02:10:57

标签: javascript

我很好奇,有没有更简单的说法

if(myVar == myVal || myVar == myOtherVal){ /*...*/ }

如:

if(myVar == myVal || myOtherVal){ /* */ }

我知道我的建议代码只检查myVar等于myValmyOtherVal是否null(未定义)和false。< / p>

所以,正如我之前所说,有一种更简单的方式来编写

if(myVar == myVal || myVar == myOtherVal){ /*...*/ }

只是想知道是否有某种类型的jS速记if声明是我错过的。

提前致谢。

5 个答案:

答案 0 :(得分:1)

您可以使用数组:

if([myVal, myOtherVal].indexOf(myVar) + 1) { /* or > -1 or !== -1 */ }

switch声明:

switch(myVar) {
     case myVal:
     case myOtherVal:
          /* */
          break;
}

这些仅在将变量与两个以上可能的值进行比较时才真正适用。

答案 1 :(得分:1)

答案 2 :(得分:0)

不是我知道的。

如果您真的想要,可以将Array的{​​{1}}与数组一起使用。

答案 3 :(得分:0)

Ternary Operator

result = ((myVar==myval)||(myVar==myOtherVal)) ? x : y;

可以:

if((myVar==myVal) || (myVar==myOtherVal))
   result = x;
else
   result = y;

此外:

((myVar==myval)||(myVar==myOtherVal)) ? someFunction() : otherFunction();

与:

相同
if((myVar==myVal) || (myVar==myOtherVal))
    someFunction();
else
    otherFunction();

答案 4 :(得分:0)

另一种方法是使用&amp;&amp;作为“守卫”:

(myVar == myVal || myVar == myOtherVal) && /* expression */

但我不推荐它。您的代码应易于阅读和维护,因此:

if (myVar == myVal || myVar == myOtherVal) {
  /* do stuff */
}

对我来说要好得多。