“&&”的“短路”行为

作者: 小波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