JS逻辑运算符

逻辑NOT运算符(!)

与逻辑OR和逻辑AND运算符不同的是,逻辑NOT运算符返回的一定是Boolean值。它会先将运算数转换成一个Boolean值,然后再对其进行求反。

逻辑NOT运算符在运算时遵循以下规则:

  • 如果运算数是对象,返回false。
  • 如果运算数是数字0,返回 true。
  • 如果运算数是0以外的任何数字,返回false。
  • 如果运算数是空字符串,返回true。
  • 如果运算数是非空字符串,返回false。
  • 如果运算数是null,返回true。
  • 如果运算数是NaN,返回true。
  • 如果运算数是undefined,返回true。

逻辑AND运算符(&&)

逻辑AND运算是简便运算,即如果第一个运算符决定了结果,则不会再计算第二个运算符。

当逻辑AND运算符的两个运算数都是Boolean值时,遵循以下规则:

运算数1运算数2结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

逻辑AND运算符的运算数可以是任何类型的,不止是Boolean值。如果某个运算数不是原始的Boolean型值,逻辑AND运算并不一定返回Boolean值:

  • 如果第一个运算数是对象,则返回第二个运算数。
  • 如果两个运算数都是对象,则返回第二个运算数。
  • 如果第二个运算数是对象,则只有在第一个运算数的Boolean值是true的情况下才会返回第二个运算数,否则返回false。
  • 如果第一个运算数是null,则返回null。如果第二个运算数是null,则只有在第一个运算数是true的情况下才会返回null,否则返回false。
  • 如果第一个运算数是NaN,则返回NaN。如果第二个运算数是NaN,则只有在第一个运算数是true的情况下才会返回NaN,否则返回false。
  • 如果第一个运算数是undefined,则返回undefined。如果第二个运算数是undefined,则只有在第一个运算数是true的情况下才会返回undefined,否则返回false。

逻辑OR运算符(||)

逻辑OR运算是简便运算,即如果第一个运算符决定了结果,则不会再计算第二个运算符。

当逻辑OR运算符的两个运算数都是Boolean值时,遵循以下规则:

运算数1运算数2结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

逻辑OR运算符的运算数可以是任何类型的,不止是Boolean值。如果某个运算数不是原始的Boolean型值,逻辑OR运算并不一定返回Boolean值:

  • 如果第一个运算数是对象,则返回第一个运算数。
  • 如果两个运算数都是对象,则返回第一个运算数。
  • 如果第二个运算数是对象,则只有在第一个运算数的Boolean值是false的情况下才会返回第二个运算数,否则返回true。
  • 如果第一个运算数是null,则返回第二个运算数。如果第二个运算数是null,则只有在第一个运算数是false的情况下才会返回null,否则返回true。如果两个运算数都是null,则返回null。
  • 如果第一个运算数是NaN,则返回第二个运算数。如果第二个运算数是NaN,则只有在第一个运算数是false的情况下才会返回NaN,否则返回true。如果两个运算数都是NaN,则返回NaN。
  • 如果第一个运算数是undefined,则返回第二个运算数。如果第二个运算数是undefined,则只有在第一个运算数是false的情况下才会返回undefined,否则返回true。如果两个运算数都是undefined,则返回undefined。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值