逻辑运算的一点小技巧

&& 与 ||

 

这两个运算符算是和传统语言(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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值