Javascript 检查if语句中的两个条件,即使第一个条件为false
if块中有两条语句,它们都链接到一个函数,该函数将返回bool。这两个语句都必须为true才能运行代码,但我希望即使第一个语句为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 (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');
}