Inhaltsverzeichnis
Bitte unterstützen Sie dieses Buch: kaufen Sie es (PDF, EPUB, MOBI) oder spenden Sie
(Werbung, bitte nicht blockieren.)

10. Nachgestellte Kommas in Funktionsparameterlisten und -aufrufen

Das Feature „Trailing commas in function parameter lists and calls“ für ECMAScript 2017 wurde von Jeff Morrison vorgeschlagen.

10.1 Übersicht

Nachgestellte Kommas in Parameterdefinitionen sind nun legal

function foo(
    param1,
    param2,
) {}

Ebenso sind nachgestellte Kommas in Funktionsaufrufen nun ebenfalls legal

foo(
    'abc',
    'def',
);

10.2 Nachgestellte Kommas in Objekt- und Array-Literalen

Nachgestellte Kommas werden in Objekt-Literalen ignoriert

let obj = {
    first: 'Jane',
    last: 'Doe',
};

Und sie werden auch in Array-Literalen ignoriert

let arr = [
    'red',
    'green',
    'blue',
];
console.log(arr.length); // 3

Warum ist das nützlich? Es gibt zwei Vorteile.

Erstens ist das Umsortieren von Elementen einfacher, da Sie keine Kommas hinzufügen und entfernen müssen, wenn sich die Position des letzten Elements ändert.

Zweitens hilft es Versionskontrollsystemen dabei, zu verfolgen, was sich tatsächlich geändert hat. Zum Beispiel, wenn man von

[
    'foo'
]

zu

[
    'foo',
    'bar'
]

wechselt, werden sowohl die Zeile mit 'foo' als auch die Zeile mit 'bar' als geändert markiert, obwohl die einzige wirkliche Änderung die Hinzufügung der letzteren Zeile ist.

10.3 Feature: Nachgestellte Kommas in Parameterdefinitionen und Funktionsaufrufen zulassen

Angesichts der Vorteile von optionalen und ignorierten nachgestellten Kommas bringt dieses Feature sie in Parameterdefinitionen und Funktionsaufrufe.

Zum Beispiel führt die folgende Funktionsdeklaration in ECMAScript 6 zu einem SyntaxError, ist aber jetzt legal

function foo(
    param1,
    param2,
) {}

Ebenso ist dieser Aufruf von foo() nun syntaktisch legal

foo(
    'abc',
    'def',
);