首页 相关文章 JS的&&和&||和|运算符两个不同点

JS的&&和&||和|运算符两个不同点

1.性能上的比较

如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。&和|运算符却不是这样的,它们总是要比较两个运算数才得出结果,因而性能上&&和||会比&和|好。

由于&&和||可能不考虑第二个运算数,所以我们应尽量避免在它们右边使用具有副作用(赋值、递增、递减和函数调用)的表达式,除非非常清楚自己再做什么。

if((a == null) && (b++ 10)) stop(); //b++递增运算可能不被执行
if((b++ 10) && (a == null)) stop(); //保证b++递增运算都被执行
2.逐位运算

&和|除了可以进行"逻辑运算"[1]外,还可以进行逐位运算,而&&和||只能进行逻辑运算。

3.JS的&和|与C#的&和|

在JS中,&和|只是逐位运算符,而在C#中,&和|既是逻辑运算符...[ 查看全文 ]

2016-02-20 标签:

JS的&&和&||和|运算符两个不同点的相关文章

手机页面
收藏网站 回到头部