How to specify multiple conditions in an 'if' statement in JavaScript

下面是我如何尝试提到两个条件 是这样还是这样,但它不工作。

if (Type == 2 && PageCount == 0) !! (Type == 2 && PageCount == '') {
PageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
}

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

748205 次浏览

只要把它们放在 如果声明的主括号内,例如:

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

从逻辑上讲,这也可以用一种更好的方式重写! 这与 没错的含义相同:

if (Type == 2 && (PageCount == 0 || PageCount == '')) {
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {


PageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
}

这可能是一种可能的解决方案,所以‘ or’是 ||,而不是 !!

用另外一对括号把它们包起来,然后就可以开始了。

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

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

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...

我目前正在检查大量的条件,使用 if 语句方法检查4个条件之外的条件会变得很麻烦。为了给未来的观众分享一个干净的选择,我用了:

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
}

有时您可以找到进一步组合语句的技巧。

比如说:

0 + 0 = 0

还有

"" + 0 = 0

所以

PageCount == 0
PageCount == ''

可以这样写:

PageCount+0 == 0

在 JavaScript 中,0false一样好:

!PageCount + 0

总计:

if (Type == 2 && !PageCount + 0) PageCount = elm.value;

这里有一个替代方法来做到这一点。

const conditionsArray = [
condition1,
condition2,
condition3,
]


if (conditionsArray.indexOf(false) === -1) {
"Do something"
}

ES7(或更高版本) :

if (!conditionsArray.includes(false)) {
"Do something"
}

手术室接线员

if ( con1 == True || con2 == True || con3 == True){
// Statement ...
}

和操作员

if ( con1 == True && con2 == True && con3 == True){
// Statement ...
}

对我有效,D

如果你有很多条件,你想把它们添加到 只有 If判断语句中,那么你可以把这些条件添加到一个数组中,然后像下面这样构造 If判断语句:

let n = 5
let txt = 'hello'


let c = [
n === 5,
n === 4,
n === 6,
txt === 'hello',
txt === 'bye'
]


if(c[0] || c[1] || c[2] || c[3] || c[4]){
document.write('It satisfies ONE or MORE conditions.');
}else{
document.write('NO conditions have been satisfied.');
}