我很难从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));
据我了解短路||操作员双方都将被评估。但它如何选择正确的呢?