首页 > 解决方案 > If 语句性能

问题描述

给定以下代码片段:

if (condition1 && condition2) {
  // ACTION 1
} else if (!condition1) {
  // ACTION 2
} else {
  // ACTION 3
}

如果我以这种方式重组它是否会对性能产生影响:

if (condition1) {
  if (condtion2) {
    // ACTION 1
  } else {
    // ACTION 3
  }
} else {
  // ACTION 2
}

标签: javascript

解决方案


不,除非condition1包含某种繁重的方法调用,否则不会重复。如果是这样,最好先调用它并比较结果以使其更易于阅读。

let condition1Result = condition1();
if (condition1Result && condition2) {
  // ACTION 1
} else if (!condition1Result) {
  // ACTION 2
} else {
  // ACTION 3
}

仅比较两个值在几乎所有场景中对性能的影响都可以忽略不计,因此关注微优化代码的可读性始终是一个好主意。


推荐阅读