逻辑与&&:
-
当操作数都为布尔值时,存在false,那么结果就为false。(有false即false)
-
当操作数有一个不是布尔值时:
1.无论是第一个操作数为对象,还是两个操作数都为对象(或非0数),结果都是返回第二个操作数 当第一个操作数为true,第二个操作数为对象时,结果为返回该对象。 2.当存在null,则结果为null 3.当存在NaN,则结果为NaN 4.当存在undefined,则结果为undefined 5.当存在0,则结果为0
注意: 逻辑与操作是属于如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值(即第二个表达式就不会运行)
逻辑或||:
-
当操作数都为布尔值时,存在true,那么结果就为ture。(有true即true)
-
当操作数有一个不是布尔值时:
1.无论是第一个操作数是对象,还是两个操作数都是对象(非0数),结果都返回第一个操作数 2.如果第一个操作数为false,则返回第二个操作数 3.如果两个都是null,结果为null 4.如果两个都是NaN,结果为NaN 5.如果两个都是undefined,结果为undefined
注意: 逻辑或操作符是属于如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值(即第二个表达式就不会运行)
逻辑非!:最后的结果为布尔值
| 变量的值的类型(操作数) | 逻辑非后的结果 |
|---|---|
| 非空(null)对象 | false |
| 空字符串 | true |
| 非空字符串 | false |
| 0 | true |
| 非0数值 | false |
| null | true |
| NaN | true |
| undefined | true |
逻辑非,常用于开关思想:在一个变量中保存一个布尔值,在业务执行时,修改这个变量的值:为取反,然后通过变量的值执行分支业务