“&&”的“短路”行为

作者: 小波sun | 来源:发表于2017-02-16 20:36 被阅读80次

今天开始新手练习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。

相关文章

网友评论

    本文标题:“&&”的“短路”行为

    本文链接:https://www.haomeiwen.com/subject/nebhwttx.html