0

考虑下面的代码两个部分:JavaScript:'if/else`语句比条件语句快吗?

var adj=0>grip.y?0<grip.x?0:-180:0<grip.x?-360:-180; 

var adj;  
if (grip.y < 0) { 
    if (grip.x > 0) 
     adj = 0; 
    else 
     adj = -180; 
} 
else {  
    if (grip.x > 0) 
     adj = -360; 
    else 
     adj = -180; 
} 

他们都产生相同的结果,但是这是更快?

+4

微观最优化,不要打扰。如果你在意,在http://jsperf.com/ –

+0

上创建一个基准,那么将会有一点点差异,使用更可读的基准。 – richardtz

+0

您的第一个条件称为“三元”操作符。 – mydogisbox

回答

2

速度差异可以忽略不计 - 使用无论你发现哪一个更方便和可读。不会有任何问题与错误的条件构造。

+0

我知道这两者之间几乎没有什么区别,但我对优化'mousemove'事件处理程序感兴趣,所以操作越少越好(显然)。 –

+0

@AndreiOniga我真的认为会有这样的区别。这一切都取决于你的方便。 Plz通过这个链接http://www.quirksmode.org/js/events_mouse.html。根据您的便利,我会推荐其他人或三元运营商。有些例子(最后)也可以在链接中回答你。 :) –

+0

我会承认,在许多情况下,为了清晰起见,我倾向于使用if ... else。 –

0

使用开关条件,即比if和其他条件语句更快。