JS操作符——逻辑操作符&&、||、!

81 阅读2分钟

逻辑与&&:

  • 当操作数都为布尔值时,存在false,那么结果就为false。(有false即false)

  • 当操作数有一个不是布尔值时:

    1.无论是第一个操作数为对象,还是两个操作数都为对象(或非0数),结果都是返回第二个操作数
      当第一个操作数为true,第二个操作数为对象时,结果为返回该对象。
    2.当存在null,则结果为null
    3.当存在NaN,则结果为NaN
    4.当存在undefined,则结果为undefined
    5.当存在0,则结果为0
    

注意: 逻辑与操作是属于如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值(即第二个表达式就不会运行)

image.png

image.png

image.png

image.png

逻辑或||:

  • 当操作数都为布尔值时,存在true,那么结果就为ture。(有true即true)

  • 当操作数有一个不是布尔值时:

    1.无论是第一个操作数是对象,还是两个操作数都是对象(非0数),结果都返回第一个操作数
    2.如果第一个操作数为false,则返回第二个操作数
    3.如果两个都是null,结果为null
    4.如果两个都是NaN,结果为NaN
    5.如果两个都是undefined,结果为undefined
    

注意: 逻辑或操作符是属于如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值(即第二个表达式就不会运行)

逻辑非!:最后的结果为布尔值

变量的值的类型(操作数)逻辑非后的结果
非空(null)对象false
空字符串true
非空字符串false
0true
非0数值false
nulltrue
NaNtrue
undefinedtrue

逻辑非,常用于开关思想:在一个变量中保存一个布尔值,在业务执行时,修改这个变量的值:为取反,然后通过变量的值执行分支业务

image.png

image.png