This question already has answers here:
what does && return in javascript expression
(4个答案)
7个月前关闭。
我以为这两个表达式将返回相同的值。
为什么不?它是如何工作的?
(4个答案)
7个月前关闭。
> "s" && true;
true
> true && "s";
's'
我以为这两个表达式将返回相同的值。
为什么不?它是如何工作的?
最佳答案
参见MDN:
expr1 && expr2:如果将expr1转换为true,则返回expr2;否则,返回expr1。&&
的值等于最后一个真实表达式的值,因此,如果两个操作数都是真实的,则整个对象将求值为第一个操作数。
如果第一个操作数是falsey,它将求和第一个操作数的(falsey)值。
与||
相似,您可以将其视为对确定最终值的表达式的值求值。 (如果评估左操作数提供了||
的真实结果,则无需评估右-类似地,如果右操作数产生了&&
的伪结果,则无需评估左。)
10-08 16:34