supongo que por el estándar ECMA 334 dice:
array-initializer:
{ variable-initializer-list(opt) }
{ variable-initializer-list , }
variable-initializer-list:
variable-initializer
variable-initializer-list , variable-initializer
variable-initializer:
expression
array-initializer
Como se puede ver, se permite que la coma final:
{ variable-initializer-list , }
↑
P. S. para una buena respuesta (incluso si este hecho ya fue señalado por muchos usuarios). :)
La coma al final podría utilizarse para facilitar la implementación de generadores de códigos automáticos (los generadores pueden evitar probar el último elemento en el inicializador, ya que debe escribirse sin la coma final) y la inicialización de matriz condicional con preprocesadores.
http://stackoverflow.com/questions/2311864/history-of-trailing-comma-in-programming-language-grammars –
Estoy sorprendido de que nadie sería satisfecho con la respuesta "Porque eso es lo que dice la especificación". Las respuestas de Steck y Jimmy explican * por qué es beneficioso *. –
Lo voté porque me impresionó la flecha .... – Jimmy