Руст Кулматов |
Точка с запятой в Яваскрипте необязательна. Во всех яваскриптовых движках реализован механизм автоматической расстановки точек с запятой (ASI). Благодаря этому механизму, точки с запятой можно безболезненно выкинуть (с одним исключением). Но многие стайлгайды советуют ставить их везде вручную. Почему так? В сети встречаются четыре аргумента в пользу ручной расстановки точки с запятой. Разберём их: Безопасная минификация кодаОдна из фич минификаторов — удаление лишних пробельных символов, в том числе переносов строк. Если минификатор склеивал бы строки вслепую, то это бы действительно ломало код.
Но минификаторы знают об ASI и склеивают строки
Если ваш минификатор ломает код, то проблема не в коде, а в минификаторе. Его следует заменить на работающий. ReturnВ качестве иллюстрации проблемы автоматической расстановки точек с запятой часто приводят пример с ретёрном:
Это странный аргумент, потому что ручная расстановка тут не поможет:
Чтобы избежать таких ситуаций, лучше настроить правило Линтер ругается | ||||||||
Все известные мне линтеры по умолчанию настроены так, чтобы сообщать об отсутствии точки с запятой в конце выражения. Но линтер нужен для того, чтобы помогать вам придерживаться выбранного стиля, а не для того, чтобы навязывать свой. Это правило легко настроить под себя. Строка с оператором в началеЕсли строка начинается с оператора, то алгоритм ASI не поставит перед ней точку с запятой. В результате эта строка будет считаться частью предыдущей, что приведёт к ошибке или неопределённому результату:
Этой проблемы можно избежать, добавив в линтер простое правило: «если строка начинается с опреатора, требовать перед ней точку с запятой». Получится так:
Уже полгода я не использую точку с запятой в личных проектах и не столкнулся с |
В популярном стайлгаде standard.js нет точек с запятой | |||||||