“&&”的“短路”行为

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 1.0-基础部分 pragma mark:输出常量和变量 你可以用print(_:separator:termin...
    037e3257fa3b阅读 934评论 2 7
  • 七夕,又一年雨季 放眼望去 雨中夹杂着雾,雾中散落着雨 伸开双手,握不住风也抓不住雨 默默的回忆,十年的光阴 无处...
    四口之家快快乐乐阅读 501评论 1 0
  • 汁液 在舌尖流转 味觉 用一个冬天的期盼 瞬间 如此释然 纷纷慰籍的思念 追逐蝴蝶 穿梭在花间 那不时传来的低吟 ...
    一杯老酒阅读 511评论 23 15
  • 在将近一个月的日子里,断断续续翻译了30篇泰戈尔的《飞鸟集》。说是翻译,其实根本达不到翻译的标准。因为用的是古诗的...
    沂河生阅读 1,021评论 7 9