Can someone explain how I read this syntaxes like the one below. In which I'm picking the MDN reduce method reference. I want to know what the brackets mean, why there's a comma before the words and etc.
arr.reduce(callback( accumulator, currentValue[, index[, array]] )[, initialValue])