逻辑与&& 和逻辑或

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

逻辑与

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

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

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

三、若是两个操做数都是对象,则返回第二个操做数;console

四、第一个操做数为null时,则返回null;co

五、第一个操做数为NaN时,则返回NaN;undefined

六、第一个操做数为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:返回第一个操做数(大多数状况下) 一、第一个操做数为对象,则返回第一个操做数;

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

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

四、两个操做数都是null,则返回null;

五、两个操做数都是NaN,则返回NaN;

六、两个操做数都是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
相关文章
相关标签/搜索