| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Trailing_commas | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
* Einige Teile dieser Funktion werden mglicherweise unterschiedlich gut untersttzt.
Nachgestellte Kommas (manchmal auch "Schlusskommas" genannt) knnen ntzlich sein, wenn Sie neue Elemente, Parameter oder Eigenschaften zu JavaScript-Code hinzufgen. Wenn Sie eine neue Eigenschaft hinzufgen mchten, knnen Sie eine neue Zeile einfgen, ohne die bisher letzte Zeile zu ndern, sofern diese bereits ein nachgestelltes Komma verwendet. Dies macht Versionskontroll-Diffs sauberer, und das Bearbeiten von Code kann weniger problematisch sein.
JavaScript erlaubt seit jeher nachgestellte Kommas in Array-Literalen. Nachgestellte Kommas sind jetzt auch in Objekt-Literalen, Funktionsparametern, benannten Importen, benannten Exporten und mehr erlaubt.
JSON hingegen verbietet alle nachgestellten Kommas.
JavaScript erlaubt nachgestellte Kommas berall dort, wo eine durch Kommas getrennte Liste von Werten akzeptiert wird und nach dem letzten Element weitere Werte erwartet werden knnen. Dies schliet ein:
In all diesen Fllen ist das nachgestellte Komma vllig optional und ndert die Semantik des Programms in keiner Weise.
Es ist besonders ntzlich beim Hinzufgen, Entfernen oder Umordnen von Elementen in einer Liste, die sich ber mehrere Zeilen erstreckt, da es die Anzahl der zu ndernden Zeilen reduziert, was sowohl beim Bearbeiten als auch beim berprfen des Diffs hilft.
[
"foo",
+ "baz",
"bar",
- "baz",
]
JavaScript ignoriert nachgestellte Kommas in Array-Literalen:
const arr = [
1,
2,
3,
];
arr; // [1, 2, 3]
arr.length; // 3
Wenn mehr als ein nachgestelltes Komma verwendet wird, entsteht eine Auslassung (oder Lcke). Ein Array mit Lcken wird als sparsame (ein dichtes Array hat keine Lcken) bezeichnet. Beim Durchlaufen von Arrays, zum Beispiel mit Array.prototype.forEach() oder Array.prototype.map(), werden Array-Lcken bersprungen. Sparse Arrays sind im Allgemeinen ungnstig, daher sollten Sie mehrere nachgestellte Kommas vermeiden.
const arr = [1, 2, 3, , ,];
arr.length; // 5
Nachgestellte Kommas in Objekt-Literalen sind ebenfalls legal:
const object = {
foo: "bar",
baz: "qwerty",
age: 42,
};
Nachgestellte Kommas sind auch in Funktionsparameterlisten erlaubt.
Die folgenden Funktionsdefinitionen sind legal und gleichwertig zueinander. Nachgestellte Kommas beeinflussen weder die length-Eigenschaft von Funktionsdeklarationen noch deren arguments-Objekt.
function f(p) {}
function f(p,) {}
(p) => {};
(p,) => {};
Das nachgestellte Komma funktioniert auch bei Methodendefinitionen fr Klassen oder Objekte:
class C {
one(a,) {}
two(a, b,) {}
}
const obj = {
one(a,) {},
two(a, b,) {},
};
Die folgenden Funktionsaufrufe sind legal und gleichwertig zueinander.
f(p);
f(p,);
Math.max(10, 20);
Math.max(10, 20,);
Funktionsparameterdefinitionen oder Funktionsaufrufe, die nur ein Komma enthalten, werfen einen SyntaxError. Darber hinaus sind beim Verwenden von Rest-Parametern nachgestellte Kommas nicht erlaubt:
function f(,) {} // SyntaxError: missing formal parameter
(,) => {}; // SyntaxError: expected expression, got ','
f(,) // SyntaxError: expected expression, got ','
function f(...p,) {} // SyntaxError: parameter after rest parameter
(...p,) => {} // SyntaxError: expected closing parenthesis, got ','
Ein nachgestelltes Komma ist auch innerhalb eines Destrukturierungs-Musters erlaubt:
// array destructuring with trailing comma
[a, b,] = [1, 2];
// object destructuring with trailing comma
const o = {
p: 42,
q: true,
};
const { p, q, } = o;
Jedoch ist ein nachgestelltes Komma nach dem Rest-Element, falls vorhanden, nicht erlaubt:
const [a, ...b,] = [1, 2, 3];
// SyntaxError: rest element may not have a trailing comma
Da JSON auf einem sehr eingeschrnkten Subset der JavaScript-Syntax basiert, sind nachgestellte Kommas in JSON nicht erlaubt.
Beide Zeilen werfen einen SyntaxError:
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');
// SyntaxError JSON.parse: unexpected character
// at line 1 column 14 of the JSON data
Lassen Sie die nachgestellten Kommas weg, um das JSON korrekt zu parsen:
JSON.parse("[1, 2, 3, 4 ]");
JSON.parse('{"foo" : 1 }');
Nachgestellte Kommas sind in benannten Importen und benannten Exporten gltig.
import {
A,
B,
C,
} from "D";
import { X, Y, Z, } from "W";
import { A as B, C as D, E as F, } from "Z";
export {
A,
B,
C,
};
export { A, B, C, };
export { A as B, C as D, E as F, };
Nachgestellte Kommas sind nur in dynamischen Importen erlaubt, wenn der Laufzeit auch der zweite options-Parameter implementiert ist.
import("D",);
import(
"D",
{ with: { type: "json" } },
);
Hinweis:
Das nachgestellte Komma in einem Quantifier ndert tatschlich seine Semantik von "genau n" zu "mindestens n".
/x{2}/; // Exactly 2 occurrences of "x"; equivalent to /xx/
/x{2,}/; // At least 2 occurrences of "x"; equivalent to /xx+/
/x{2,4}/; // 2 to 4 occurrences of "x"; equivalent to /xxx?x?/
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |