来个 js 大佬解释下 reduce 显示传递 undefined 为什么结果不同?

  • 代码 1
const res = [1,2,3].reduce(function(prev, next) {
    return prev + next;
}, undefined);
console.log('res: ', res);// NaN
  • 代码 2
const res = [1,2,3].reduce(function(prev, next) {
    return prev + next;
});
console.log('res: ', res);// 6

为什么两段代码执行的结果不一样呢?难道有判断 没有传递参数传递 undefined 的方法吗?

  • 我的猜想

reduce 内部应该不是显示的接收参数 而是类似于
reduce(...args) 的方式来判断 args.length 来设置对应的 initial的,不知道有没有大佬官方解释一波~

阅读 2.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题