JS中的“&&”和“||”以及“!!”的区别

最近在读JQuery源码的时候,常看见如此多的逻辑判断符,就总结一下,这篇文章主要讲的是JS中的“&&”和“||”以及“!!”的区别,以及一些应用。

 前言

我们都知道

0,'',undefined,null,NaN  为false
{},[]  为true

可以使用 Boolean(NaN) 和 !! (两次取非获得布尔值)

&& 的用法实例

var a = [true]
var obj = {name:'Msx'}
//  && 
console.log(a && obj) //左侧为真 返回右侧 值  {name:'Msx'}
console.log(null && obj)  //左侧为假 返回左侧 值 null
console.log(a && {age:"22"} && ['大男子']); //全为真时,返回最右侧 ['大男子']
console.log(null && '' && 0 ) //全为假时返回最左侧  null

|| 的用法实例

//  || 
console.log(a || obj) //左侧为真 返回左侧 值   [true]
console.log(null || obj)  //左侧为假 返回右侧 值 {name:'Msx'}
console.log(a || {age:"22"} || ['大男子']); //全为真时,返回最左侧   true
console.log(null || '' || 0 ) //全为假时返回最右侧  0	

!! 的用法实例

		// !! 进行强制转化为bool值的运算,运算结果为true或者false。
		// ! 是将其取反  true -->  false
		console.log(!![])  // true
		// !! 应用
		// a是有实际含义的变量才执行方法,否则变量null,undefined和''空串都不会执行以下代码。
		var o = null;
		if(o != null && typeof(o)!='undefined' && o!=''){
		    //a有内容才执行的代码  
		    alert('任重而道远。。。。')
		}
		//实际上我们只需要写一个判断表达:
		if(!!o){
		    //a有内容才执行的代码...  
		     alert('任重而道远。。。。')
		}

希望对大家有所帮助!!

参考博文 https://www.jb51.net/article/131145.htm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值