&&和||在开发中是怎么使用的

&&和||的运算流程
请添加图片描述
&&和||进行布尔判定的逻辑图。

console.log(2 && 4) // 4
console.log(2 || 4) //2

根据图示,2和4都为true,但两个表达式返回的结果又不一样,这是因为
他们的返回值是确定结果的最后一个数据,&&先判断左边为真,在判断右边为真,两个都为真,返回第二次判定的数据4,|| 判断左边为真,有一个为真,则为真,所以他只进行了一次判定,返回2。
在开发中的应用
清楚了&&和||的运算流程,在来看一下他在企业开发中是如何应用的。

需求:请求一个对象,但不清楚对象里面有没有某属性,如果有则获取,没有赋一个默认的值。

var obj = {}
var a = obj.a || 'default'
console.log(a) //'default'
var obj = {a:123}
var a = obj.a || 'default'
console.log(a) //123

原理:
如果obj中有属性a,则判定为true,||符号一真为真,不需要进行其右边值的判断,直接返回最后一次判定的数据obj.a。
如果obj中没有属性a,则判定为false,||需要进行其右边值的判断,无论右边值为真假,都会返回最后一次判定的数据’default’。

需求:请求一个对象,但不清楚对象里面有没有某方法,如果有则调用。

var obj = {fn(){console.log('已被调用')}}
obj.fn && obj.func();

原理:
如果obj中有方法fn,则判定为true,但&&运算符有一个为真还不够,继续判断右边的值,就会调用右边的函数,返回他的运算结果。
如果obj中没有方法fn,则判定为false,&&运算符一假则假,就不会进行右边的运算,更不会调用这个函数。就达到了,有则调用,没有就不会调用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值