JS中&&和||的奇怪用法
最近正在学 JS,找了点练习来做,然后看到如下的代码:1
2
3
4
5
6
7
8
9for (var i = 0; i < oBtn.length; i++)
{
oBtn[i].index = i;
oBtn[i].onclick = function ()
{
this.index == oBtn.length - 1 && (oDiv.style.cssText = "");
changeStyle(oDiv, oAtt[this.index], oVal[this.index]);
}
}
然后我上网搜了一下明白了 var c=a||b;或var c=a&&b;这种情况时
a && b :如果执行 a 后返回 true,则执行 b 并返回 b 的值;如果执行 a 后返回 false,则整个表达式返回 a 的值,b 不执行
a || b :如果执行 a 后返回 true,则整个表达式返回 a 的值,b 不执行;如果执行 a 后返回 false,则执行 b 并返回 b 的值
所以这句就好理解了this.index == oBtn.length - 1 && (oDiv.style.cssText = “”);
这可以算是一种炫技代码⊙﹏⊙,相当于:1
2
3if(this.index == oBtn.length - 1){
oDiv.style.cssText = "";
}