黑铁时代
Programing is not only one kind of technology, but also one kind of art.

一共3个布尔操作符:非,与,或

 

1. 逻辑非 !

  用叹号!来表示逻辑非,需要一个操作数,它会先将操作数转化成布尔类型,然后求逻辑非。

  规则如下:
    对象,非0数字,非空字符串,返回false;

    0,空字符串,null,NaN,undefined,返回ture;

 

2. 逻辑与  &&

  逻辑与需要两个操作数,如果其中一个操作数不是布尔,那么返回结果不一定是布尔值。

  规则如下:

    如果第一个操作数是对象,那么返回第二个操作数;

    如果两个操作数都是对象,那么返回第二个操作数;

    如果第一个操作数是ture,第二个操作数是对象,返回第二个操作数;

    如果其中一个操作数是null,undefined,NaN,那么返回null,undefined,NaN;

  逻辑与操作符判断出第一个操作数是false,就不会再去判断第二个操作数的结果,因为结果不可能再为true了。

 

3. 逻辑或 ||

  逻辑或与逻辑与操作类似,规则如下:

    如果第一个操作数是对象,那么返回第一个操作数;

    如果两个操作数都是对象,返回第一个操作数;

    如果两个操作数都是null,undefined,NaN,那么返回null,undefined,NaN;

    如果第一个操作数是false,那么返回第二个操作数;

 

总结

  !操作符的过程是:先将操作数转换成布尔类型,然后求非。编程中可以用!!两个非得出操作数的布尔类型。

 

  && 操作符输入短路操作。

    当第一个操作数的布尔类型已经是false了(空字符串,0,false等),就不会再去判断第二个操作数了,直接返回第一个操作数。

    当第一个操作数不为false的时候,此操作会去判断第二个操作数并返回第二个操作数,不论第二个操作数是什么。】

 

  || 操作符也是短路操作,但是和&&相反。

    当第一个操作数的布尔类型是true了,就不会去判段第二个操作数了,直接返回第一个操作数。

    当第一个操作数的布尔类型是false的时候(空字符串,0,false等),就返回第二个操作数。

 

 

    

posted on 2012-06-11 22:32  黑铁时代  阅读(223)  评论(0编辑  收藏  举报