如何在javascript中的if语句中指定多个条件

adi*_*med 71 javascript

这是我如何提及两个条件,如果这个或这个

if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Run Code Online (Sandbox Code Playgroud)

Ala*_*ter 124

只需将它们添加到if语句的主括号中即可

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
            PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,这也可以用更好的方式重写!这具有完全相同的含义

if (Type == 2 && (PageCount == 0 || PageCount == '')) {
Run Code Online (Sandbox Code Playgroud)

  • 同意。也没有用于条件的大括号。那无济于事。 (2认同)

小智 17

我目前正在检查大量条件,使用超出4条件的if语句方法变得难以处理.只是为未来的观众分享一个干净的替代品...它可以很好地扩展,我使用:

var a = 0;
var b = 0;

a += ("condition 1")? 1 : 0; b += 1;
a += ("condition 2")? 1 : 0; b += 1;
a += ("condition 3")? 1 : 0; b += 1;
a += ("condition 4")? 1 : 0; b += 1;
a += ("condition 5")? 1 : 0; b += 1;
a += ("condition 6")? 1 : 0; b += 1;
// etc etc

if(a == b) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 这需要(可能不必要地)评估所有条件 - 这样一来,它就像 AND 的一个非常低效的替代方案。 (7认同)
  • 值得注意的是,只有当所有条件都必须评估为 true 时,这才有效。换句话说,这是“AND”的另一种写法,而不是“OR”的写法。 (2认同)

Gle*_*son 11

这是一种替代方法。

let conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

if (conditionsArray.indexOf(false) === -1) {
    "do somthing"
}
Run Code Online (Sandbox Code Playgroud)

  • 我真的喜欢这个主意。我遇到需要添加很多条件的情况,这大大减少了我的代码。更具可读性。谢谢! (3认同)
  • 至于我——太复杂了。如果没有具体原因这样做,我建议使用“&amp;&amp;”运算符,如果您不想在“if”内写入长/多行条件,请将其放在变量下。 (2认同)

fca*_*ran 6

整个if应该用括号括起来,or操作员||不是!!,所以

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...
Run Code Online (Sandbox Code Playgroud)


use*_*521 6

有时您可以找到进一步组合声明的技巧.

例如:

0 + 0 = 0
Run Code Online (Sandbox Code Playgroud)

"" + 0 = 0
Run Code Online (Sandbox Code Playgroud)

所以

PageCount == 0
PageCount == ''
Run Code Online (Sandbox Code Playgroud)

可写成:

PageCount+0 == 0
Run Code Online (Sandbox Code Playgroud)

在javascript 0false反转!它会0变成true

!PageCount+0
Run Code Online (Sandbox Code Playgroud)

总计:

if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;
Run Code Online (Sandbox Code Playgroud)

  • 如果您想让代码尽可能短,则可以这样做,但这违背了许多良好实践。保持代码的可读性。这个答案很神秘,会导致下一个查看你的代码的人犯一些错误。 (5认同)