【发布时间】:2012-10-17 16:25:52
【问题描述】:
考虑以下两段代码:
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;
}
它们都产生相同的结果,但哪个更快?
【问题讨论】:
-
微优化,别费心了。如果您关心,请在 jsperf.com 上创建基准
-
几乎没有区别,使用更易读的。
-
您的第一个条件称为“三元”运算符。
-
如果条件为真,它们都被实现为一个分支。性能上没有区别。但只有一个更容易阅读。猜猜是哪一个?
-
第二个更易维护,应该优先。还可以考虑使用常量而不是硬编码数值,例如
-360。例如,var CIRCLE_DEGREES = 360。
标签: javascript performance if-statement conditional-statements micro-optimization