逻辑运算符
Mar 2, 2017常常习惯性觉得某个东西应该这样,但很多时候实际情况和我们想象的有很大的出入,所以才需要实践。
实践出真知,学会用事实说话。JS逻辑&&和逻辑||很特殊,会让你大吃一惊的。
实践出真知,学会用事实说话。JS逻辑&&和逻辑||很特殊,会让你大吃一惊的。
逻辑与(&&)
逻辑与可以应用于任何数据类型的操作数,而不仅仅是布尔值。在有一个操作不是布尔值的情况下,逻辑与操作不一定返回布尔值。哦,是不一定哦!!!
逻辑与遵循规则有:
(1)如果第一个操作数是对象,则返回第二个操作数;

(2)如果第二个操作数是对象,只有在第一个操作数求值结果为true的情况下才会返回该对象;
对于操作数的求值,是JS中的求值。

(3)如果两个操作数都是对象,则返回第二个操作数;

(4)如果有一个操作数是null则返回null;

(5)如果有一个操作数是NaN,则返回NaN;

(6)如果有一个操作数是undefined,则返回undefined;

总结:逻辑与是短路操作,第一个操作数能决定结果就不会对第二个操作数进行求值。
逻辑或(||)
只要有一个不是布尔值,或运算也不一定返回布尔值。
遵循规则:
(1)如果第一个操作数是对象,就返回第一个;

(2)如果第一个求值为false,则返回第二个;
