逻辑与&& 和逻辑或

&&的优先级比||的优先级高

逻辑与

tip1:逻辑与操作可以应用于任何类型的操作数,在有一个操作数不是布尔值时,不一定返回Boolean值,大概的规则如下:

1、第一个操作数是对象,则返回第二个操作数;

2、第二个操作数为对象时,则只有在第一个操作数的求值结果为true时才返回该对象

3、如果两个操作数都是对象,则返回第二个操作数;

4、第一个操作数为null时,则返回null;

5、第一个操作数为NaN时,则返回NaN;

6、第一个操作数为undefined时,则返回undefined;

tip:如果第一个操作数求值结果为false,后面的操作数都不会去判断执行,不管第二个操作数为什么值,最终结果都不会是true

tip:返回第二个操作数(大多数情况下)

见代码,大概举一个例子验证下:

 var obj={
            "name":"zhan",
            "age":25
        }
        var obj1={
            "name":"hui",
            "age":25
        }
        var boolean_0=false;
        var boolean_1=true;
        var null_=null;
        var isNan=NaN;
        var str='zhan'
        var undefined_=undefined;
        var num_0=0;
        var num_1=1;
        console.log(obj&&boolean_1)//true
        console.log(obj&&boolean_0)//false
        console.log(obj&&null_)//null
        console.log(obj&&isNan)//NaN
        console.log(obj&&str)//'zhan'
        console.log(obj&&undefined_)//undefined
        console.log(obj&&obj1)//obj1
        console.log(obj&&num_0)//0
        console.log(obj&&num_1)//1

        console.log(null_&&num_1)//null
        console.log(isNan&&num_1)//NaN
        console.log(undefined_&&num_1)//undefined

逻辑或

tip:返回第一个操作数(大多数情况下) 1、第一个操作数为对象,则返回第一个操作数;

2、第一个操作数的求值结果为false,则返回第二个操作数;

3、两个都是对象,则返回第一个操作数;

4、两个操作数都是null,则返回null;

5、两个操作数都是NaN,则返回NaN;

6、两个操作数都是undefined,则返回undefined;

见例子:

        console.log(obj||boolean_1)//obj
        console.log(obj||boolean_0)//obj
        console.log(obj||null_)//obj
        console.log(obj||isNan)//obj
        console.log(obj||str)//obj
        console.log(obj||undefined_)//obj
        console.log(obj||obj1)//obj
        console.log(obj||num_0)//obj
        console.log(obj||num_1)//obj

        console.log(null_||null_)//null
        console.log(isNan||isNan)//NaN
        console.log(undefined_||undefined_)//undefined

转载于:https://my.oschina.net/u/3407699/blog/1647481

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值