逻辑与 &&
逻辑与的情况分两种
一、两个数都是布尔值,只要有一个是false,那么值就为false。
二、其中有一个不是布尔值,那么返回的就不是布尔值了,它遵循以下规则:
1. 有一个操作值是null
NaN
undefined
,则返回同类型的值。如果两个操作值都是这种类型,就返回第一个。
2. 如果第一个值转换成布尔值后为true,则返回第二个值。
3. 如果第一个值转换成布尔值后为false,则返回第一个值。
逻辑或 ||
逻辑或的情况也分两种
一、两个数都是布尔值,只要有一个是ture,那么值就为true。
二、其中有一个不是布尔值,那么返回的就不是布尔值了,它遵循以下规则:
1. 有两个操作值同样的,是null
NaN
undefined
,则返回null
NaN
undefined
。如果两个操作值都是这种类型,但是不同,就返回第二个。
2. 如果第一个值转换成布尔值后为false,则返回第二个值。
3. 如果第一个值转换成布尔值后为true,则返回第一个值。
总结,逻辑与&& 和逻辑或||的区别在JavaScript高级程序设计第三版中3.5.3有详细的说明,在这里我只是按照自己的理解去总结了一下,如果有什么不对的地方希望大家能指出来,感谢!