Страницы

Поиск по вопросам

вторник, 2 октября 2018 г.

Javascript: безопасны ли висячие запятые?

Один мой коллега очень любит при определении константных Javascript-объектов оставлять висячие запятые:
var myObj = { prop1: 'smth', prop2: 'smthElse', // <--- Висячая запятая! }
Мотивирует он это тем, что при исправлении такого объекта программист получит более релевантный вывод в диффе (1 строчку вместо двух).
Мне такой стиль очень не нравится, но по причинам также чисто эстетическим: 1. JSLint на такое ругается 2. Неподдержка в старых IE (8-). Но под них мы все равно не пишем.
Стандарт вообще говоря такое разрешает.
Внимание, вопрос: известны ли вам еще причины по которым висячие запятые стоит/не стоит использовать? Например положительное/отрицательное влияние на сборщики-оптимизаторы или что-нибудь в этом духе


Ответ

Строго говоря: стандарт не запрещает использование висячих запятых в инициализаторе объекта
ObjectLiteral[Yield] : { } { PropertyDefinitionList[?Yield] } { PropertyDefinitionList[?Yield] }
Таким образом ставить или не ставить запятую целиком на совести разработчика.
В итоге, все решается договоренностью внутри группы разработчиков, чтобы код был однообразным.
Так как это допустимый вариант инициализации - никаких влияний на оптимизацию(минимизацию) оказываться не должно, но зависит от реализации оптимизатора/минификатора.
Что касается проверяльщиков: все зависит от правил, которые довольно гибко могут настраиваться.

UPD: июль 2017
Добавлю, что, на июль 2017 года, один из самых популярных стайлгайдов - стайлгайд от airbnb не просто не запрещает висячие запятые, а требует их

Комментариев нет:

Отправить комментарий