逻辑运算的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