Javascript 长布尔表达式

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。因此,当与布尔值一

为什么控制台在这个表达式中显示“2”和“false”

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似乎没有做足够的研究!不客气,只要再深入一点,你就会看到一切。