1、逻辑与
逻辑与操作可以应用与任何类型操作数。
在有一个操作数不是布尔类型时,逻辑与操作返回的值不一定是布尔类型此时遵循以下规则
1.如果第一个操作数是对象,则返回第二个操作数
var a = {'a':'12'} && true
a
输出
true
2.如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象
第一组测试数据:
var b = false && {a:2}
输出
false
第二组测试数据:
var b = true && {a:2}
输出
{'a':2}
3.如果两个操作数都是对象时,则返回第二个操作数
var a = {'a' : 'b'} && {'b' : '12'}
输出
{'b': '12'}
4.如果有一个操作数是null,则返回null
var b = null && {a:2}
var b = {a:2} && null
var b = true && null
var b = false && null
var b = null&& true
var b = null&& false
输出都是
null
5.如果有一个操作数是NaN,则返回NaN
6.如果有一个操作数是undefined,则返回undefined