JavaScript 结果

标签 javascript

我是 JavaScript 新手。最近有人问我以下代码的结果是什么。我不太确定如何回答这个问题。谁能提供他们认为的答案?

(function f(x, y, m) {
    if (m > 0) { return f( y, x + y, m - 1 ); }
    return y;
}(1, 2, 7) );

最佳答案

结果

55

为什么,首先是因为我是在控制台中启动的。这是一个递归,停止条件是m,即如果看起来总是减1。这个想法他调用了8次,最后一次直接返回第二个参数。

请注意,这里唯一重要的是第二个参数,即由 x + y 调用,Y 移动到第一个参数。

(((((((1 + 2 ) + 2 ) + 3 ) + 5) + 8  ) + 13 ) + 21)

这是一个从 1 和 2 开始的斐波那契数列:) 该函数提供从 x 和 y 开始的斐波那契数列中的位置 m + 2(您提供前 2 个数字)

1, 2, 3, 5, 8, 13, 21, 34, 55

http://en.wikipedia.org/wiki/Fibonacci_number

关于JavaScript 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719396/

相关文章:

JavaScript 运行时错误 : Unable to set property

javascript - Internet Explorer 中未设置 Cookie,出现错误

javascript - 如何在加载时切换图像

javascript - 如何在winjs上制作一个splitview菜单

JavaScript while 循环解释

javascript - 对于多个添加的元素,自动滚动溢出元素不会继续

javascript - 复选框:使用 Array.prototype.forEach.call 推送检查订单,

javascript - 选择字段中的空白选项

javascript - 将 Iframe 数据拆分为不同的变量

javascript - 使用moment的isoWeekday创建日期网格