JavaScript if语句优化

时间:2015-02-19 17:19:10

标签: javascript performance optimization

我有以下代码:

      function() {
         if (foo && foo.bar !== baz) { //needed because foo can be undefined, so foo.bar always returns value
            function1()
            return;
         }

         if (foo) {
            function2()
         } else {
            function1()
         }
      }

我想知道,从代码结构的角度来看,优化这些if语句的最佳方法是什么。

感谢所有答案!

4 个答案:

答案 0 :(得分:1)

可能会:

if ((foo && foo.bar !== baz) || !foo) {
  function1();
} else {
  function2();
}

答案 1 :(得分:1)

((foo && foo.bar !== baz) || !foo) ? funtion1() : function2());

答案 2 :(得分:1)

这可以转换为单行:

foo && foo.baz === baz ? function2() : function1();

如果foo为假,那么它将执行function1,如果foo是真实的,foo.baz !== baz则仍会执行function1。否则,它将执行function2

这种方法有效的原因是,如果foo是真实而foo.baz !== bazfalse,那么function2仅在foo.baz === baztrue时才会执行

答案 3 :(得分:1)

一个例子可能是:

if (!foo || foo.bar !== baz) {
  function1();
} else {
  function2();
}

与kamituel的相似,但更短,也许更容易阅读。