布尔操作符一共有3个:非(NOT)、与(AND)和或(OR)
- 逻辑非
!
!!
可用于将一个值转换为与其对应的布尔值。
- 逻辑与
&&
- 如果第一个操作数是对象,则返回第二个操作数;
如果第二个操作数是对象,则只有在第一个操作数的求值结果为
true
的情况下才返回该对象;如果两个操作数都是对象,则返回第二个操作数;
如果第一个操作数是
null
,则返回null
;如果第一个操作数是
NaN
,则返回NaN
;如果第一个操作数是
undefined
,则返回undefined
逻辑或
||
- 如果第一个操作数是对象,则返回第一个操作数;
- 如果第一个操作数的结果是
false
,则返回第二个操作数; - 如果两个操作数都是对象,则返回第一个操作数;
- 如果两个操作都是
null
,则返回null
; - 如果两个操作都是
NaN
,则返回NaN
; - 如果两个操作都是
undefined
,则返回undefined
var myObject = preferredObject || backupObject;
在这个例子中,变量myObject
将被赋予等号后面两个值中的一个。变量perferredObject
中包含优先赋给变量myObject
的值,变量backupObject
负责在preferredObject
中不包含有效值的情况下提供后备值。如果preferredObject
的值不是null
,那么它的值将被赋给myObject
,如果是null
,将backupObject
的值赋给myObject
。