JavaScript逻辑运算符&&、|| 和 短路运算

JavaScript中的逻辑运算符多用于条件判断

一、&&:所有条件都为true时,返回true;如果其中只要有一个为false,则返回false
例如:

let a = 1, b = 3, c = 5;
console.log(a < b && b < c) // 返回结果为true

但是当有一个操作数不是布尔值的情况下,逻辑与不一定会返回一个布尔值,这时会遵循如下规则:

  • 如果前面操作数隐式类型转换后为true,则返回后面的操作数

例如:

console.log(1 && 2) // 返回结果是 2
console.log(true && 1 && 'hello') // 返回 hello
  • 如果前面操作数隐式类型转换后不是true,则返回第一个隐式转换为false的值(即短路的值),不执行后面的操作
console.log("" && true) // 返回空格 
console.log(1 && 0 && 'hello') // 返回 0
console.log(1 && false && 0) // 返回 false
console.log(0 && null && 1) // 返回 0
console.log(NaN && 1 && 2) // 返回 NaN
console.log(null && true) // 返回 null
console.log(undefined && true) // 返回 undefined

注意:返回值不一定是boolean类型的值,null则返回null;undefined则返回undefined;NaN则返回NaN

二、|| :只要有一个条件为true,则返回true;所有条件都为false,则返回false
和&&类似,返回值不一定是boolean值

  • 如果前面操作数隐式类型转换后为true,则返回true,后面就被短路;都为false,则会一直往下进行判断,打印最后一个
console.log(33<22||33>11);//返回true
console.log(undefined || null || 0);//返回0
console.log(undefined || 88 || 99 );//返回88
console.lof(undefined || 33>10 || false);//返true 
console.log(null || undefined || NaN);//返回NaN
console.log(NaN || undefined) ;//返回undefined
console.log("hello" || NaN);//返回hello
短路运算简单总结

&&表达式1 && 表达式2

表达式1 为false时,返回 表达式1,且不会执行 表达式2

表达式1 为true时,返回 表达式2

||表达式1 || 表达式2

表达式1 为true时,返回 表达式1 ,且不会执行 表达式2

表达式1 为false时,返回 表达式2

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值