您的位置:首页 > Web前端 > JavaScript

JS中的逻辑或||逻辑与&&

2013-11-25 22:52 260 查看

&& (逻辑与)

这里主要是一个“&&”运算,首先要搞懂这个,看一个简单的例子:

1var

a = 1 && 2 && 3;
//3
2var

b = 0 && 1 && 2;
//0
3var

c = 1 && 0 && 2;
//0
4alert(a),alert(b),alert(c);
嘿嘿,写法很奇怪,运行的结果是3,0,0。一般我们在if语句中经常用到。“&&” (逻辑与) 运算和“||”运算真好相反,“&&” 运算遇到false就返回。
例如: a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。如果 a 为false 那么直接返回a,上面例子中第一个var a = 1 && 2 && 3;因为1 && 2,1为真,返回2;2&&3, 2为真,返回3 。
搞懂了“&&” 运算,再来看最上的面的YUI compressor压缩的js代码,翻译一下:

01if
(userNum){
02ind += index;
03if

(ind >= userNum) {
04ind -= userNum
05}
06if
(ind < 0){
07if
(ind === -2){
08ind = -1;
09}
10ind += userNum;
11}
12selLi.removeClass(
"on"
);
13$(selLi[ind]).addClass(
"on"
);
14}
||(逻辑或)

再来看看“||”(逻辑或)运算,看例子:

1var

a = 0 || 1 || 2;
//1
2var

b = 1 || 0 || 3;
//1
3alert(a),alert(b);
“||”运算遇到true就返回。例如:a || b ,如果 a 为false,直接返回b,而不管b为true或者false 。如果 a 为true,直接返回a,而不会继续往下执行。

&& (逻辑与) 和||(逻辑或)混合使用的时候要注意他们的优先级:

&& (逻辑与) 优先级高于||(逻辑或)
return a && b || c ,
根据a来判断返回值,a 是 false 则肯定返回 c;如果 b , c 都是 true ,那么我们就可以根据 a 来决定b 还是 c ,如果 a 是 false 则返回 c,如果a是true 则返回 b。
return a || b && c
根据优先级相当于先算 b && c ,然后和a 相 或;如果a是true,则返回a,不论是b或c,如果a是false,则如果b是false,返回b,如果b是true,返回c;

1var

a = 3 && 0 || 2;
//2
2
3var

b = 3 || 0 && 2;
// 3
4
5var

c= 0 || 2 && 3;
// 3
6alert(a),alert(b),alert(c);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: