javascript中的&&

&&在JavaScript中有三种理解:

1.当两个操作数都是布尔值的时候,&&对两个执行布尔与(AND)操作,只有在两个都是true时,才返回true。如果其中一个是false,它返回false。

                 x==0&&y==0             //只有在x和y都为0的时候,才返回true

2.&&可以对真值和假值进行布尔与(AND)操作。如果两个操作数都是真值,那么返回一个真值,否则,至少一个操作数是假值的话,则返回一个假值。(假值有:false、null、undefined、0、-0、NaN和"",所有其他的值包括所有对象都是真值)。

 

3.&&首先计算左侧的操作数。如果结果是假值,整个就是假值,这时返回左操作数的值。

  左为真:计算右侧的操作数的值并将其返回作为整个表达式的计算结果:

                var  m={x:1};

                      var p=null;

                o&&o.x                //1:o是真值,因此返回值为o.x

                p&&p.x                //null:p是假值,因此将其返回,而不去计算p.x

&&的这种行为有时称做“短路”。

原文地址:https://www.cnblogs.com/gongchengniu/p/5499036.html