javascript中的&&与||

在 javascript 中,对于 && 不仅仅可以用于 boolean 类型,也不仅仅返回 Boolean 类型的结果。

  1. 如果第一个操作数是 Boolean 类型,而且值为 false ,那么直接返回 false。
  2. 如果第一个操作数是 Boolean 类型,而且值为 true,另外一个操作数是 object 类型,那么将返回这个对象。
  3. 如果两个操作数都是 object 类型,那么,返回第二个对象。
  4. 如果任何一个操作数是 null,那么,返回 null。
  5. 如果任何一个操作数是 NaN,那么返回 NaN。
  6. 如果任何一个操作数是 undefinded,那么返回 undefined。
alert(false && alice); // false 
alert(true && alice); // alice 

alert(alice && smith); // smith 
alert(smith && alice); // alice 

alert(null && alice); // null 
alert(NaN && alice); // NaN 
alert(undefined && alice); // undefined 
alert(alice && undefined); // undefined 

对于 || 来说,同样也不仅仅用于 Boolean 类型,也不仅仅返回 Boolean 类型的结果。
事实上,null、undefined、NaN 都将被看作 false。而对象被当作 true。

  1. 如果第一个操作数是 boolean 类型,而且值为 true, 那么,直接返回 true。
  2. 如果第一个操作数是 Boolean 类型,而且值为 false ,第二个操作数为 object,那么返回 object 对象。
  3. 如果两个操作数都是 object 类型,那么返回第一个对象。
  4. 如果两个操作数都是 null,那么,返回 null。
  5. 如果两个操作数都是 NaN,那么返回 NaN。
  6. 如果两个操作数都是 undefined,那么,返回 undefined。
alert(false || alice);         // alice
alert(true || alice);          // true
alert(alice || smith);         // alice
alert(smith || alice);         // smith
alert(null || alice);       // alice
alert(alice || null);       // alice
alert(null || null);        // null
alert(NaN || alice);        // alice
alert(alice || NaN);        // alice
alert(NaN || NaN);          // NaN
alert(undefined || alice);     // alice
alert(alice || undefined);     // alice
alert(undefined || undefined); // undefined

实际上并没有这么复杂,只要遵守以下规则就可以轻易的理解:

a && b : 将a, b转换为Boolean类型, 再执行逻辑与, true返回b, false返回false对应的值
a || b : 将a, b转换为Boolean类型, 再执行逻辑或, true返回a, false返回b
转换规则:
对象为true
非零数字为true
非空字符串为true
其他为false

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值