Pull to refresh

Comments 39

Мда...

Если ставить точку с запятой, то проблемы могут быть исключительно по Вашей вине, из-за несоблюдения именно Вами требований синтаксиса.

А если не ставить - то ещё и по вине интерпретатора, неверно понявшего Ваши намерения.

Как по мне, так вывод не просто очевиден - он безальтернативен.

Синтаксически некорректный код интерпретатор даже не запустит. Так что если он его запустил, то вина в любом случае Ваша. В обоих случаях связанная с незнанием правил работы ASI.

«Что-то маловато неопределённостей в js. А давайте ; сделаем не всегда обязательной!»

Хохма в том, что ASI неотключаем. Поэтому теперь всегда нужно писать код так, как если бы псих не смог вставить точку с запятой в ваш код. :)

Ну, наверное, не минификаторы, а бандлеры.
Если у вас js-файл начинается с самовызывающейся функции и, соответственно, с открывающей круглой скобки, то при склейке файлов эта скобка окажется где-то в середине кода, и если перед нею нет точки с запятой -- возможны проблемы.

Странно, что не затронута тема минификации кода. Особенно параноидальной, когда true заменяется на !0 потому, что так "экономится 50%". *Кстати, посоветуйте такой, а то мой просто в одну строку все сливает, а хочется экстрима в виде замены переменных на a,b,c и пр. "как у взрослых".

Сюда же можно было бы добавить "нужно ли заключать блоки кода в {}, если они состоят из одной строки"

Вспоминается бессмертное DO1I=1.5 против DO1I=1,5

Используйте Prettier и пишите, как вам нравится.

У меня сейчас на работе договорились писать без точки с запятой, в результате я пишу их, преттиер убирает, а мне глаз режет.

У Prettier есть много возможностей для настройки и вариантов использования. Например, вы можете использовать одни настройки, которые применяются только перед коммитом, а другие когда работаете непосредственно с кодом. Но на практике я сам такое не пробовал.

Как же меня бесило, когда в одном проекте ESLint запрещал ставить ;. Есть куча вариантов, когда пропущенная ; что-то испортит. И ровно 0 ситуаций, когда наоборот. Какой можно сделать вывод? Правильно, давайте придумаем кучу правил, когда не нужно ставить ; , ведь нам больше нечем заняться!

Заранее, про prettier-ы: даже если они автоматизируют процесс, то это всё равно лишнее переусложнение в попытке решить несуществующую проблему.

Какой можно сделать вывод? Правильно, давайте придумаем кучу правил,

Чтобы удовлетворить комплекс вахтёра некоторых несознательных личностей.

Ваша проблема не в семиколонах, а в куче бессмысленных правил в линтере.

Кто-то придумал, что ; ему чем-то мешают и переубедить таких нереально. Поэтому проблема существует, к сожалению. Но на счет переусложнения согласен.

Давать сущностям имена больше чем из одной-двух букв тоже необязательно...

UFO just landed and posted this here

Визуальные ориентиры помогают глазам "цепляться" за ключевые участки кода. По этой же причине в Python когда-то решили не убирать двоеточие в `def myfunc():`.

UFO just landed and posted this here

А я, как перешёл на vue, понял, что без точки с запятой приятнее. Написал fnName(, вторую скобку редактор сам подставил, пиши сразу параметры функции, а потом хоткеем на новую строку. В случае с точкой с запятой не у всех есть хоткей, чтобы ставить её в конце строки, кто-то вынужден сперва нажать end или хотя бы стрелку. Но даже если есть, то несколько выбешивает писать в каждой строке то, что не очень-то нужно. Это как если каждый отступ руками проставлять, а не один раз таб нажать.

Чего мне не хватает, так это когда в methods пишу новый метод, чтобы запятая после } сама ставилась

UFO just landed and posted this here

Ну да, это как руль в машине на заднем сиденье. Очень "удобно"!

Ну я если что не предлагаю так делать, мне по большей части пофигу где ставятся ;, предпочитаю больше думать о содержании кода, а оформлением пусть занимается какой-нибудь prettier или что там принято в проекте. Просто скинул ссылку тем кому очень хочется без ;, так что я как-то хз за что тут можно было минусануть мой коммент выше, там просто ссылка и никакого личного мнения.

Глубокомысленно, сокращу для ленивых: точки с запятой не нужны. Но их надо ставить. Но только там, где это стоит делать, а где нет - там их ставить не надо. Делать так или нет - ваше дело, но иначе код не будет работать. Но это не точно.

Зачем в typescript пишут точку с запятой, если на выходе одинаковый JS?

Странная попытка сделать точку с запятой "неоднозначной". Её главная задача - разделение элементов, определённое структурирование кода и избежание каши в нём.

Если вы не используете точки с запятой, то тем самым сэкономите символы в каждой написанной строке кода.

Плюсы: Экономия 1 байт в строку.

Минусы: Шанс забыть символ там, где он обязателен и усложнение чтения кода "непросвещёнными", то есть всеми, кто привык видеть более явное окончание строки. Предпочту экономить нервы, а не байты.

Плюсы: Экономия 1 байт в строку.

Ещё бы найти, кому эти сэкономленные байты продать...

Если думать в этом направлении, то делается какой-нибудь Google Closure Compiler и байты экономятся везде где только можно в стадии постпроцесса, и можно писать семиколоны в концах строк за 0 байтов.
Хотя даже гугл кажется его ни кому не продавал...

Странная попытка сделать точку с запятой "неоднозначной". Её главная задача - разделение элементов, определённое структурирование кода и избежание каши в нём.

Может дело в привычке тех, кто работает сразу как минимум с двумя ЯП? Например, в Python точку с запятой ставить нельзя, так же как фигурные скобки. Дело привычки.

Мне кажется тот факт, что для выполнения JS в адресной строке браузера, нужно обязательно разделять точкой с запятой - это уже ответ о желательности использования точки с запятой

Есть еще и такой вариант использования точки с запятой для альтернативно одаренных

Hidden text

даже не сразу понял как это плюсы, и где семиколоны... надеюсь этот одаренный делает это линтером...

Мораль: если ваш KPI не включает в себя премирование за экономию точек с запятой -- ставьте их там, где принято всеми.

Брендан Айк где-нибудь объяснял, зачем в js эта дурацкая анархия с точкозапятой?

Емнип, он хотел сделать без них, но начальство настояло "шоб было похоже на яву", поэтому получился такой компромисс.

Изначально она требовалась в конце операторов (как и в C/Java). А потом это сделали необязательным.

По моему проблема существует лишь для тех, кто не писал на java/c/c++/c#

Sign up to leave a comment.