Comments 39
Мда...
Если ставить точку с запятой, то проблемы могут быть исключительно по Вашей вине, из-за несоблюдения именно Вами требований синтаксиса.
А если не ставить - то ещё и по вине интерпретатора, неверно понявшего Ваши намерения.
Как по мне, так вывод не просто очевиден - он безальтернативен.
«Что-то маловато неопределённостей в js. А давайте ; сделаем не всегда обязательной!»
Хохма в том, что ASI неотключаем. Поэтому теперь всегда нужно писать код так, как если бы псих не смог вставить точку с запятой в ваш код. :)
Наверно еще минификаторы могут сломать код без ;
Странно, что не затронута тема минификации кода. Особенно параноидальной, когда true заменяется на !0 потому, что так "экономится 50%". *Кстати, посоветуйте такой, а то мой просто в одну строку все сливает, а хочется экстрима в виде замены переменных на a,b,c и пр. "как у взрослых".
Сюда же можно было бы добавить "нужно ли заключать блоки кода в {}, если они состоят из одной строки"
Вспоминается бессмертное DO1I=1.5 против DO1I=1,5
Используйте Prettier и пишите, как вам нравится.
У меня сейчас на работе договорились писать без точки с запятой, в результате я пишу их, преттиер убирает, а мне глаз режет.
Как же меня бесило, когда в одном проекте ESLint запрещал ставить ;
. Есть куча вариантов, когда пропущенная ;
что-то испортит. И ровно 0 ситуаций, когда наоборот. Какой можно сделать вывод? Правильно, давайте придумаем кучу правил, когда не нужно ставить ;
, ведь нам больше нечем заняться!
Заранее, про prettier-ы: даже если они автоматизируют процесс, то это всё равно лишнее переусложнение в попытке решить несуществующую проблему.
Какой можно сделать вывод? Правильно, давайте придумаем кучу правил,
Чтобы удовлетворить комплекс вахтёра некоторых несознательных личностей.
Ваша проблема не в семиколонах, а в куче бессмысленных правил в линтере.
Кто-то придумал, что ;
ему чем-то мешают и переубедить таких нереально. Поэтому проблема существует, к сожалению. Но на счет переусложнения согласен.
Давать сущностям имена больше чем из одной-двух букв тоже необязательно...
Визуальные ориентиры помогают глазам "цепляться" за ключевые участки кода. По этой же причине в Python когда-то решили не убирать двоеточие в `def myfunc():`.
А я, как перешёл на vue, понял, что без точки с запятой приятнее. Написал fnName(, вторую скобку редактор сам подставил, пиши сразу параметры функции, а потом хоткеем на новую строку. В случае с точкой с запятой не у всех есть хоткей, чтобы ставить её в конце строки, кто-то вынужден сперва нажать end или хотя бы стрелку. Но даже если есть, то несколько выбешивает писать в каждой строке то, что не очень-то нужно. Это как если каждый отступ руками проставлять, а не один раз таб нажать.
Чего мне не хватает, так это когда в methods пишу новый метод, чтобы запятая после } сама ставилась
Если не хочется ставить в конце, то можно заметно реже ставить в начале, при определённых правилах всё будет 100% без проблем, вот здесь можно почитать: https://standardjs.com/rules.html#semicolons
Ну да, это как руль в машине на заднем сиденье. Очень "удобно"!
Ну я если что не предлагаю так делать, мне по большей части пофигу где ставятся ;
, предпочитаю больше думать о содержании кода, а оформлением пусть занимается какой-нибудь prettier или что там принято в проекте. Просто скинул ссылку тем кому очень хочется без ;
, так что я как-то хз за что тут можно было минусануть мой коммент выше, там просто ссылка и никакого личного мнения.
Глубокомысленно, сокращу для ленивых: точки с запятой не нужны. Но их надо ставить. Но только там, где это стоит делать, а где нет - там их ставить не надо. Делать так или нет - ваше дело, но иначе код не будет работать. Но это не точно.
Зачем в typescript пишут точку с запятой, если на выходе одинаковый JS?
Странная попытка сделать точку с запятой "неоднозначной". Её главная задача - разделение элементов, определённое структурирование кода и избежание каши в нём.
Если вы не используете точки с запятой, то тем самым сэкономите символы в каждой написанной строке кода.
Плюсы: Экономия 1 байт в строку.
Минусы: Шанс забыть символ там, где он обязателен и усложнение чтения кода "непросвещёнными", то есть всеми, кто привык видеть более явное окончание строки. Предпочту экономить нервы, а не байты.
Плюсы: Экономия 1 байт в строку.
Ещё бы найти, кому эти сэкономленные байты продать...
Странная попытка сделать точку с запятой "неоднозначной". Её главная задача - разделение элементов, определённое структурирование кода и избежание каши в нём.
Может дело в привычке тех, кто работает сразу как минимум с двумя ЯП? Например, в Python точку с запятой ставить нельзя, так же как фигурные скобки. Дело привычки.
Мне кажется тот факт, что для выполнения JS в адресной строке браузера, нужно обязательно разделять точкой с запятой - это уже ответ о желательности использования точки с запятой
Есть еще и такой вариант использования точки с запятой для альтернативно одаренных
Hidden text
Мораль: если ваш KPI не включает в себя премирование за экономию точек с запятой -- ставьте их там, где принято всеми.
Брендан Айк где-нибудь объяснял, зачем в js эта дурацкая анархия с точкозапятой?
Короче - ничего с 2021 года не изменилось.
По моему проблема существует лишь для тех, кто не писал на java/c/c++/c#
Точка с запятой в JavaScript: Действительно ли она вам нужна? [Руководство 2022]