Javascript JS中的附加0参数做什么?

Javascript JS中的附加0参数做什么?,javascript,ecmascript-6,Javascript,Ecmascript 6,考虑以下代码: let reduced = inventors.reduce((a, b) => { return (b.passed - b.year) + a; }, 0); 我不明白这个额外的0意味着什么。起初,我认为这类似于设置默认值,如下所示: let reduced = inventors.reduce((a = 0, b) => { return (b.passed - b.year) + a; }); 但它不起作用

考虑以下代码:

let reduced = inventors.reduce((a, b) => {      
      return (b.passed - b.year) + a;
}, 0);
我不明白这个额外的0意味着什么。起初,我认为这类似于设置默认值,如下所示:

let reduced = inventors.reduce((a = 0, b) => {      
      return (b.passed - b.year) + a;
}); 
但它不起作用。不同的是,第一个代码数组被成功缩减。秒返回了一些奇怪的连接字符串

PS这是我正在减少的数组(得到列表中所有发明人的寿命总和):

有人能给我解释一下这个0是做什么的吗

arr.reduce(callback[, initialValue])
这被视为初始值

若不使用数组的第一个元素,则将其视为初始值

初始值可选

值用作回调的第一个调用的第一个参数。如果没有提供初始值,将使用数组中的第一个元素。在没有初始值的空数组上调用reduce()是一个错误


本例中的0表示所谓的累加器。 你可以在谷歌上找到MDN的详细描述

reduce的基本功能是将一个函数作为第一个参数,将累加器作为第二个参数,并将这两个值组合起来生成一个新值

如果不传递累加器,数组中的第一个元素将设置为默认元素。

这不是我)0)
arr.reduce(callback[, initialValue])
arr.reduce(callback[, initialValue])