加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

JavaScript逻辑运算符及优先级

发布时间:2018-10-07 17:13:44 所属栏目:创业 来源:站长网
导读:本日看了一段YUI compressor压缩的js代码: userNum (ind += index,ind = userNum (ind -= userNum),ind 0 (ind === -2 (ind = -1),ind += userNum),selLi.removeClass(on),$(selLi[ind]).addClass(on)); 直接疯掉了,预计一下子没几小我私人能看懂。那么就把

本日看了一段YUI compressor压缩的js代码:

userNum && (ind += index,ind >= userNum && (ind -= userNum),ind < 0 && (ind === -2 && (ind = -1),ind += userNum),selLi.removeClass("on"),$(selLi[ind]).addClass("on"));

直接疯掉了,预计一下子没几小我私人能看懂。那么就把他“翻译”一下。

&& (逻辑与)

 

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

var a = 1 && 2 && 3;//3
var b = 0 && 1 && 2;//0
var c = 1 && 0  && 2;//0
alert(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代码,翻译一下:

if(userNum){
ind += index;
if (ind >= userNum) {
ind -= userNum
}
if(ind < 0){
if(ind === -2){
ind = -1;
}
ind += userNum;
}
selLi.removeClass("on");
$(selLi[ind]).addClass("on");
}

说来忸怩,岁数大了,足足“翻译”了半个小时,照旧在同事的辅佐下才“翻译”正确。

||(逻辑或)

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

var a = 0 || 1 || 2;//1
var b = 1 || 0 || 3;//1
alert(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;

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

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

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

来历:http://www.css88.com/archives/3770

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读