js &&操作符

&&操作符可以应用于任何类型的操作数,而不仅仅是布尔值。在有一个操作数不是布尔值的情况下,&&操作数不一定返回布尔值,此时它遵循下列规则:

1.如果第一个操作数是对象,则返回第二个操作数;
2.如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象;
3.如果两个操作数都是对象,则返回第二个操作数;
4.如果有一个操作数是null,则返回null;
5.如果有一个操作数是NaN,则返回NaN;
6.如果有一个操作数是undefined,则返回undefined。
(JavaScript高级程序设计3.5.3节)

(typeof a) === 'string'的结果为true
所以 b = true && a; 按照规则2,b = a

posted @ 2017-04-11 09:13  wss_Ben  阅读(174)  评论(0编辑  收藏  举报