与运算&&
2019-03-19 本文已影响0人
i_木木木木木
&&运算符可以从三个不同的层次去理解
1. 当操作数都是布尔值的时候,&&对两个值执行布尔与操作,只有在第一个操作数和第二个操作数都是true时,它才返回true。如果其中一个(或两个)操作数是false,它就返回false。
2. 但 &&运算符的操作数并不一定是布尔值,有些值可以当做“真值”和“假值”(假值有 false、null、undefined、NaN、0、-0、"")。如果两个操作数都是“真值”,那么返回一个“真值”; 否则,至少一个操作数是“假值”的话,则返回“假值”。
3. &&运算符首先计算左操作数的值,即首先计算 && 左侧的表达式。如果计算结果是假值,那么整个表达式的结果一定也是假值,因此 && 运算符这里返回左操作数的值,而并不会对右操作数进行计算。
反过来讲,如果左操作数是真值,那么整个表达式的结果依赖于右操作数的值。如果右操作数是真值,那整个表达式的值一定是真值;如果右操作数是假值,那么整个表达式的值一定是假值。因此,当左操作数是真值时,“&&”运算符将计算右操作数的值并将其返回作为整个表达式的计算结果