You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript斐波那契函数末尾输出Undefined的解决方法

问题原因

末尾出现undefined的核心原因有两个:

  1. 你定义的箭头函数f没有写显式的return返回值,JavaScript中无显式返回值的函数,默认返回值就是undefined
  2. 你在调用函数的时候,外层套了一层console.log(f()),这行代码会把函数执行后的返回值(也就是默认的undefined)打印出来,而函数内部的循环已经完成了斐波那契数值的打印,就会在序列最后多出来一行undefined。

另外你的代码里proximo变量没有做声明,非严格模式下会变成隐式全局变量,开启严格模式会直接抛错,属于隐性bug。

修复方法

根据你的需求二选一即可:

  • 如果你只需要函数在执行时直接打印序列,直接去掉外层包裹f()的console.log即可,同时补上proximo的变量声明:
const f = (numero = 6, n1 = 0, n2 = 1) => {
  for (let i = 1; i <= numero; i++) {
    console.log(n1);
    const proximo = n1 + n2;
    n1 = n2;
    n2 = proximo;
  }
}
console.log('Sequência de Fibonacci:');
f()
  • 如果你希望函数返回完整的斐波那契序列供后续逻辑使用,就把函数改成返回序列数组的形式,去掉循环内的打印逻辑,最后返回数组给外层console打印:
const f = (numero = 6, n1 = 0, n2 = 1) => {
  const fibSequence = [];
  for (let i = 1; i <= numero; i++) {
    fibSequence.push(n1);
    const proximo = n1 + n2;
    n1 = n2;
    n2 = proximo;
  }
  return fibSequence;
}
console.log('Sequência de Fibonacci:');
console.log(f())

内容的提问来源于stack exchange,提问作者Pietro Bortolli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 12:57:11