Javascript递归函数和||

时间:2016-03-06 19:39:34

标签: javascript recursion logical-operators

我很难从Elequentjavascript中绕过一个例子。

在else语句中你会找到||运营商。其中一个表达式将被执行但是哪一个?我知道它是设置为true的那个,但我似乎无法弄清楚它是如何被评估的。

function findSolution(target) {
  function find(start, history) {
    if (start == target)
      return history;
    else if (start > target)
      return null;
    else
      return find(start + 5, "(" + history + " + 5)") ||
             find(start * 3, "(" + history + " * 3)");
  }
  return find(1, "1");
}

console.log(findSolution(24));

据我了解短路||操作员双方都将被评估。但它如何选择正确的呢?

0 个答案:

没有答案