Javascript 检查if语句中的两个条件,即使第一个条件为false

Javascript 检查if语句中的两个条件,即使第一个条件为false,javascript,if-statement,Javascript,If Statement,if块中有两条语句,它们都链接到一个函数,该函数将返回bool。这两个语句都必须为true才能运行代码,但我希望即使第一个语句为false,也要检查它们。有关守则: if (myFunc(one) && myFunc(two)) { //execute } myFunc将在返回false之前执行一些代码,但如果其中一个返回false,则不会在两个上执行此代码 我让这个工作,但它感觉像一个黑客: if ((myFunc(one) && myFunc(two

if块中有两条语句,它们都链接到一个函数,该函数将返回bool。这两个语句都必须为true才能运行代码,但我希望即使第一个语句为false,也要检查它们。有关守则:

if (myFunc(one) && myFunc(two)) {
    //execute
}
myFunc将在返回false之前执行一些代码,但如果其中一个返回false,则不会在两个上执行此代码

我让这个工作,但它感觉像一个黑客:

if ((myFunc(one) && myFunc(two)) || (myFunc(two) && myFunc(one))) {
    //execute
}
有谁有更好的解决方案吗?谢谢

另一种方式:

var first = myFunc(one),
    second = myFunc(two);

if (first && second) {
    //execute
}
在这种情况下,将首先执行这两个操作,然后检查非假值。

使用&运算符

看看这个


+1如果要执行两个函数,则执行两个函数。就这么简单。这很有效,谢谢!有人能解释一下,如果第一个是假的,第二个是怎么执行的吗?@user-Uhm。。。因为它显式地执行了
myFunc(一)
myFunc(二)
。。。?!在我看来,如果环境有副作用,那就是糟糕的风格。逻辑运算符的短路行为通常并不重要,因为条件不应该有副作用,因此无论它们是否被执行都应该是无关的。如果希望产生副作用,则在
If
外部显式执行功能,而不是通过短路运算符链接。
function a (){
    console.log(1);
    return true;
}

function b (){
    console.log(2);
    return false;
}

if(b() & a() == true){
console.log('asas');
}