javascript中逻辑运算符总结

Posted 94-lucky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中逻辑运算符总结相关的知识,希望对你有一定的参考价值。

逻辑运算符在编程中的作用很大,有时可以使复杂的判断语句被一句话来代替,可以使代码看起来瞬间高大上。

1.逻辑与   &&

 true=true && true;
 false=false && true;
 false=true && false;
 false=false && false;
        var a=1;
        var c=2;
        
        var b=a++ && a--;
        var d=a-- && a++;
        var e=a-- && a--;

        var f=a++ && (c-=2);
        var g=(c-=2) && a++;
        var h=(a--) && (c-=2);
        var i=(c-2) && a--;

        console.log(b,d,e,f,g,h,i)       结果:2 0 0 0 0 -4 0
        
        var m=2;
        var n=3;
        var j=m++ &&  m--;    
        var k=m++ &&  n--;
        console.log(m,n)       结果: 3 2       

总结:

1).逻辑与中,同为正时,若对象相同,则会将第一个运算结果返回到前面变量。

           若对象不相同,则会将第二个运算结果返回到前面变量。

2)逻辑与中,一正一负时,本人还有不懂得地方,有研究透彻的可以分享下。

2.逻辑或    ||

   true= true || false
   true=false || true;
   true=true || true;
   false =false || false;
            var a=5;
            var b=a-- || a++;
            console.log(b,a);     结果:   5   4      
总结;
     1)逻辑或的关系就是如果两边有结果转换为布尔值时是true,就把这个值返回,都为ture,返回前面的运算结果。
       如果两个都是false时,返回第二个false.
  2)  先赋值,后运算。
 
应用:在实际的项目中,我们经常用逻辑或来给变量赋值。例如:
            var obj;
            obj= obj || {};


            if(!obj){
                obj={};    
            }

这两种方法的功能是一样的,但是第一种是不是看起来要简单,并且高大上一些呢。在来个例子:

        bn.onclick=function(e){
            e=e || window.event;

         }
         bn.onclick=function(e){
            if(!e){
                e=window.event;
            }
         }

可以很明显的感觉到第一种方法要比较好。

3.逻辑非    !

 !  取逻辑反,先隐式转换布尔值,然后取反
 console.log(![]==false);
 console.log(![]===false);         结果:true   true  

解释:对象不能转换为字符串,console.log(String(obj(a:1,b:2)))--->[object,Object],数组可以转换为字符串,console.log(String([1,2,3]))--->1,2,3,

空数组[]--->"",  ""==false==0   所以[]==false;   如果是这样的话,那么上面的运行的结果就是错的。到底是怎么回事呢?

“ !  取逻辑反,先隐式转换布尔值,然后取反”,这句话很重要,在前面我总结的,只有空字符(""),0,false,undefined,null,NAN是false,其余的都是true,所以[]先隐式转换为true,然后![]===false

 

 

以上是关于javascript中逻辑运算符总结的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript学习总结——转

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

JavaScript 基础笔记总结(全部)

JavaScript的Boolean逻辑运算探究

查看发票组代码后的总结和有感