逻辑运算的1点小技巧

逻辑运算的一点小技巧

&& 与 ||

 

这两个运算符算是和传统语言(java,c++)区别蛮大了,首先看两段代码:

 

var  x = '1';
alert(true|| x);
alert(false && x)
 

这个结果可能都知道,即使传统语言程序员也能猜到结果是 true false ,那么下面的结果呢

 

var  x = '1';
alert(false || x);
alert(true && x)

 

传统语言程序员可能会说那就是 true true,可惜结果是  是  1 1

 

 

这就是脚本语言的一个特性,perl,js包含,逻辑运算符会像传统语言一样根据短路原理计算逻辑表达式,根据该元素转换成的boolean值判断,返回最后一个短路计算的值。

 

如 false || x


根据短路原理,计算false不短路,下一步看 x 转换的 boolean 为 true,则最终返回 x,而  true || x,看到true 一下就短路了,立刻返回 true 了,^_^,这就是 我们常见的

 

a.onclick = function(e) {
var event =e || window.event;
}
 

思考题:下列代码返回什么

 

alert(''||false);
alert(false || '');
 

ps:数据转换 boolean 值 js规则


undefined , null -> false

0 NaN -> false

'' -> false


其他都为 true