js中&&和||的返回值

&&

&&会从左到右执行表达式,直到某个表达式的运行结果返回false,或者可以转化为false,则返回该表达式的运行结果作为整个&&表达式的运行结果;如果所有表达式的直接结果均为true,则返回最后一个表达式的执行结果作为整个&&表达式的结果

console.log('a' && 'b') // b
console.log(1 && 2 && 3) // 3
console.log('aa' && (a = false) && 'bb') // false
console.log('aa' && (a = 0) && 'bb') // 0

总结下,下面7种值转化为布尔值时为false,其他转化都为true

  1. undefined(未定义、找不到值、函数无return时的返回值)
  2. null(代表空值)
  3. false(布尔值的false,字符串"false"布尔值为true)
  4. 0(数字0,字符串"0"布尔值为true)
  5. NaN(无法计算结果时出现,表示"非数值";但是typeof NaN===“number”,例:Number(‘aa’))
  6. “”(双引号)或’’(单引号) (空字符串,中间有空格时也是true)
  7. 右边的值返回false的赋值表达式(例:var a= false 或者 var a = 0)

||

||会从左到右执行表达式,直到某个表达式的运行结果返回true,或者可以转化为true,则返回该表达式的运行结果作为整个||表达式的运行结果;如果所有表达式的直接结果均为false,则返回最后一个表达式的执行结果作为整个||表达式的结果

console.log(2 || 0 || 3) // 2
console.log(0 || 0 || 2 || 0 || 3) // 2
console.log(0 || (a=false) || undefined) // undefined
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值