Javascript 长布尔表达式
为什么控制台在这个表达式中显示“2”和“false”Javascript 长布尔表达式,javascript,boolean,expression,Javascript,Boolean,Expression,为什么控制台在这个表达式中显示“2”和“false” var a = '' || 0 || 2 || true || false; var b = 3 && true && false && null; console.log (a,b); 您之所以得到这些结果,是因为它是逻辑比较,这里使用逻辑运算符&&和|,如果您查看一下,您将看到: 逻辑或(| |):如果expr1可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一
var a = '' || 0 || 2 || true || false;
var b = 3 && true && false && null;
console.log (a,b);
您之所以得到这些结果,是因为它是逻辑比较,这里使用逻辑运算符
&&
和|
,如果您查看一下,您将看到:
逻辑或(| |):如果expr1可以转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,| |如果任一操作数都可以转换为true,则返回true;如果两者都可以转换为false,则返回false
逻辑AND(&&):如果expr1可以转换为false,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,&&如果两个操作数都可以转换为true,则返回true;否则,返回false
因此,在你的情况下:
对于第一个表达式:
var a = '' || 0 || 2 || true || false;
它将返回2
,因为它是计算为true
的第一个oprand
对于第二个问题:
var b = 3 && true && false && null;
它将返回
false
,因为它的一个操作数是false
这就是逻辑运算符的工作方式。是重复的,但我不理解下一票,问题是公平和明确的,可能是因为OP似乎没有做足够的研究!不客气,只要再深入一点,你就会看到一切。