“&&”的“短路”行为
今天开始新手练习JS项目,第一题“DIV的属性控制”就碰到看不懂的代码。
this.index == oBtn.length - 1 && (oDiv.style.cssText = "");
网上搜索了一下说这段代码等同于:
if(this.index == oBtn.length - 1){
oDiv.style.cssText = "";
}
这是为什么呢?
查了犀牛书第80页,“&&”是逻辑与运算符,它在运行的时候先计算左值,如果左值为ture,再计算右值。如果左值为false,则不计算右值。这种行为被称为“短路”。
“短路”行为的效果与if语句相同,所以经常被用来代替if语句。
一般,当“&&”的右侧语句具有副作用时(赋值、递增、递减和函数调用表达式)要格外小心。
【“&&”的“短路”行为】同理,“||”也具有相同“短路”,效果类似于else。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 艾略特的交易法则“遵循自然规律”
- 闲杂“细雨”
- “成长”读书社群招募
- 上班后阅读开始变成一件奢侈的事
- “精神病患者”的角度问题
- 说的真好
- 宋仲基&宋慧乔(我们不公布恋情,我们直接结婚。)
- 2021-02-10(找不回的“年味”……)