Что такое замыкающая запятая и почему она полезна?
Предположим, что у вас есть список домашних дел и вы скорее всего разделяете эти самые дела запятыми:
dishes, vacuum, tidy
Замыкающая запятая это просто запятая, которая идёт после последнего элемента в списке. Она необязательна, но в некоторых случаях использования в JS, мы можем её использовать:
dishes, vacuum, tidy,
И знаете, есть несколько случаев, когда вам всё таки понадобится её использовать. Предположим, что вам надо программно добавлять элементы в массив:
Без замыкающей запятой большинство значений может быть добавлено в массив, как value + ','. Но тут надо немного доработать логику в коде и убедиться в том, что последний элемент будет добавлен в массив без запятой в конце.
С замыкающей запятой, все элементы могут быть добавлены в массив, как value + ','.
Массивы
С самого зарождения JavaScript, замыкающие запятые можно было использовать при создании массивов:
// Оба варианта одинаковы: let arr = [ 1, 2 ]; let arr = [ 1, 2 , ]; arr.length; // 2
Объекты
Замыкающие запятые также вполне можно использовать и в объектах:
// Оба варианта одинаковы: let obj = { a: 95, b: 23 }; let obj = { a: 95, b: 23, };
Указание параметров и вызовы функции
Начиная с ES 2017, замыкающие запятые можно использовать в указании параметров и вызовах функции:
// Оба варианта одинаковы: function f(a,b) {} function f(a,b,) {} // Оба варианта одинаковы: f(1,2); f(1,2,);
Однако, если в аргументе для функции будет только замыкающая запятая, то вы получите синтаксическую ошибку:
function f(,) {}; // SyntaxError: missing formal parameter f(,); // SyntaxError: expected expression, got ','
Rest параметры
При использовании rest параметров нельзя применять замыкающие запятые, так как получите в ответ SyntaxError:
function f(...a,) {}; // SyntaxError: parameter after rest parameter let [a, ...b,] = [1, 2, 3, 4, 5]; // SyntaxError: rest element may not have a trailing comma
JSON
В JSON нельзя использовать замыкающие запятые. Попытаясь спарсить JSON с такой запятой, вы получите синтаксическую ошибку:
JSON.parse('["a", "b",]'); // SyntaxError JSON.parse: unexpected character