探究一下js中&&和||的特殊用法
js中的&&和||的左右两边都是变量的情况
------------------案例1--------------------
代码
var a=null;
var b=1;
alert(a||b);
alert(a&&b);
输出结果
alert(1);
alert(null);
------------------案例2--------------------
代码
var a=null;
var b=undefined;
alert(b||a); //这里改变了a,b的位置
alert(a&&b);
输出结果
alert(null);
alert(null);
总结
(1)、a||b,
如果a为true的话,返回a,否则返回b(不管b是否为true),
那变量怎么判定true和false呢?
“” , false , 0 , null , undefined , NaN处理为false,
其他的为true。
(2)、a&&b
如果a是true的话,直接返回b(不管b是true还是false)
如果a是false的话,直接返回a。
其实也就是说,
||优先返回的是true,如果第一个是true,直接返回第一个,如果第一个不是true,那就选第二个。
&&优先返回的是false,如果第一个是false,直接返回第一个,如果第一个不是false,那就直接返回第二个。