最近遇到短路评估,并有点困惑,因为我只在上周进入编程阶段。根据我的理解,如果在第一个双管之前发生了什么,那么它将停止,并且不会评估双管之后的情况。例如:使用三元运算符还是短路评估之间的区别?
实施例1:
所以我假设如果存在,那么分配否则到b b等于一个对象。 我不明白什么是我将使用这一点,它的不同之处,以三元运营商,是不是短路的评价一样:
例2:
var a = true;
var b = (a) ? a : {};
为什么会一个使用示例1而不是示例2,因为写出来的速度并不慢,或者相对于另一个使用速度更快?或者这只是一个愚蠢的问题,也许我错过了一些东西。如果有人能为我清楚这将是伟大的。
当第二个操作数有副作用这只影响。 – Ergwun
使用你想要的任何一个。你已经花在思考上的时间会比打字或执行上的任何累积差异更大。 – 2016-11-04 00:40:57
有点无关,但作为一个实验尝试做'b = a && {};'看看会发生什么,并试图理解为什么会发生。 –