This question already has answers here:
what does && return in javascript expression
                            
                                (4个答案)
                            
                    
                7个月前关闭。
        

    

    > "s" && true;
    true
    > true && "s";
    's'


我以为这两个表达式将返回相同的值。
为什么不?它是如何工作的?

最佳答案

参见MDN


  expr1 && expr2:如果将expr1转换为true,则返回expr2;否则,返回expr1。


&&的值等于最后一个真实表达式的值,因此,如果两个操作数都是真实的,则整个对象将求值为第一个操作数。

如果第一个操作数是falsey,它将求和第一个操作数的(falsey)值。

||相似,您可以将其视为对确定最终值的表达式的值求值。 (如果评估左操作数提供了||的真实结果,则无需评估右-类似地,如果右操作数产生了&&的伪结果,则无需评估左。)

10-08 16:34