Que signifie cette syntaxe de documentation à MDN pour une fonction JavaScript?

J'apprends JavaScript via le manuel "Eloquent JavaScript" et maintenant je fais des exercices du chapitre 5 "Fonctions de commande haute" . L'une des fonctions que ce chapitre vous présente est " réduire ". Je comprends comment cela fonctionne, mon problème survient lorsque j'essaie de comprendre sa définition chez MDN . Je ne comprends pas la définition de syntaxe qu'il donne:

arr.reduce(callback[, initialValue]) 

Cette section de syntaxe est suivie de la section intitulée Paramètres. Ceux-ci sont:

  • rappeler
    • PreviousValue
    • valeur actuelle
    • indice
    • Tableau
  • InitialValue (optionnel)

Ce que je ne comprends pas, c'est ce que signifient ces crochets et la virgule? Parce que quand je vois des crochets immédiatement, je pense dans les tableaux. Et pourquoi est-ce que juste initialValue dans la définition et non les autres paramètres? Pourquoi il n'y a pas d'espace entre les crochets et le callback ?

Parce qu'il y a deux exemples ci-dessous:

Exemple 1

 [0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue; }); 

Exemple 2

 var total = [0, 1, 2, 3].reduce(function(a, b) { return a + b; }); // total == 6 

Et je ne sais pas comment correspondent à la définition.

Merci

Il est généralement une convention pour les documentations API d'utiliser [] pour désigner des paramètres facultatifs. Cependant, [] ne fait pas partie de la syntaxe de l'utilisation. C'est juste une convention de documentation.

Comme déjà expliqué dans d'autres réponses, les paramètres à l'intérieur de "[]" sont facultatifs. En ce qui concerne la question de savoir pourquoi les "autres paramètres" (c.-à-d. PreviousValue, etc.) ne sont pas là, ce sont des paramètres de callback et de ne pas reduce . Ainsi, le callback recevra ces arguments sur chaque cycle de reduce .