首页 > 代码库 > Javascript 布尔操作符总结

Javascript 布尔操作符总结

    在一门编程语言中,布尔操作符的重要性堪比相等操作符。如果没有测试两个值关系的能力,那么诸如if...else和循环之类的语句就不会有用武之地了。在像javascript这样弱类型语言更有其妙用,让我们的代码,简捷可靠。布尔操作符一共有3个: 与、或、非。

特性:

 

 先来讨论一下,最简单的‘非!’ 

 相对与和或来说,非更简单一点,先把操作数转换为布尔值,再取反,值不是true,就是false.

结论:逻辑非的返回值最后只有两个:true or false.      

与和或:

而与和或并不总是返回布尔值,&&和||操作主要遵循几大原则: 

1.短路操作原则:如果第一个操作数能决定操作结果,就不会再对第二个操作数求值,直接返回第一个操作值。 

        2.求值过程中会被转型生成副本,但是返回值是原来值;

  javascript中的逻辑操作中的&&||操作并不是总是返回TrueFalse,它返回的值是最后确定结果的值,例:

Null&&true         // null就确定结果了返回 nulltrue&&undefined     // undefined确定结果返回undefinedObject&&{}&&[]&&2     //返回2Object&&{}&&2&&[]     //空数组 Null||9                        //   值为9null||9||undefined      // =9null||undefined      // undefined

概括的说:

           &&操作:值为真时,返回最后一个值,到最一个才能确定结果;

                       值为假时,返回第一个假值,一旦有假值结果确定为假.

           ||操作 :值为真时,返回第一个真值,一旦有真结果为真;

                       值为假时,返回最一个值,到最一个才能确定结果.

                      所以说,与和或操作,返回的是最后确定结果的值

 

结论:与和或操作,返回的是最后确定结果的值

 

用法:

              可写出简练的代码。

与:

    1.通过判断某个对象是否存在来赋值;

var object=object1&&object2; //当object1存在时才赋object2的值给object.

     2.可以防止访问属性错误(原理同1);

          查询一个不存生的属性并不会报错,但如果对象不存在,试着查询这个不存在属性就会报错。

var box;var len=box.length;//抛出一个类型错误异常,程序不向下解析var len=box&&box.length;//不会报错

 或:

       可优先选取值

        Var object=object1||object2; //优先object1

 

Javascript 布尔操作符总结