JavaScriptif语句优化

JavaScript if statement 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 语句的最佳方法是什么。

感谢大家的回答!

可能是:

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

这可以转换成一行:

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

如果 foo 为假那么它会执行 function1 如果 foo 为真但 foo.baz !== baz 那么它仍然会执行 function1。否则执行function2.

之所以有效,是因为如果 foo 为真且 foo.baz !== bazfalse,则仅当 foo.baz === baz 为 [=22] 时才执行 function2 =].

例如:

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

与 kamituel 的类似,但更短,可能更易于阅读。