Найти в Дзене

Точка с запятой в JavaScript;

Использование точек с запятой в JavaScript – одна из самых обсуждаемых тем за кружкой кофе в starbucks после пробелов и табов.
В этой статье я попытаюсь объяснить почему можно не использовать точку с запятой и как это повлияет на код. Во-первых, точка с запятой не обязательна только в том случае, если есть разрыв строки, закрывающая фигурная скобка или конец программы. Точки с запятой не являются обязательными между операторами, появляющимися в одной строке. Кроме того, точка с запятой не подразумевается в конце строки, если первый токен последующей строки может быть проанализирован как часть того же оператора. Примеры: 42; "hello!" является допустимой программой, как есть 42\n"hello!"(с символом "\ n", представляющим фактический разрыв строки) Перенос строки вызывает вставку точки с запятой, а линейный пробел - нет. ASI ASI (Automatic Semicolon Insertion) — механизм в JavaScript, занимающийся автоматической расстановкой точек с запятой в конце строки. Ограниченные производства Огран
Оглавление

Использование точек с запятой в JavaScript – одна из самых обсуждаемых тем за кружкой кофе в starbucks после пробелов и табов.

В этой статье я попытаюсь объяснить почему можно не использовать точку с запятой и как это повлияет на код.

Во-первых, точка с запятой не обязательна только в том случае, если есть разрыв строки, закрывающая фигурная скобка или конец программы. Точки с запятой не являются обязательными между операторами, появляющимися в одной строке. Кроме того, точка с запятой не подразумевается в конце строки, если первый токен последующей строки может быть проанализирован как часть того же оператора.

Примеры:

42; "hello!" является допустимой программой, как есть 42\n"hello!"(с символом "\ n", представляющим фактический разрыв строки)

Перенос строки вызывает вставку точки с запятой, а линейный пробел - нет.

ASI

ASI (Automatic Semicolon Insertion) — механизм в JavaScript, занимающийся автоматической расстановкой точек с запятой в конце строки.

Ограниченные производства

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

В грамматике есть пять ограниченных производств: постфиксные операторы ++и операторы --продолжения, операторы прерывания, операторы возврата и операторы выброса. Операторы break и continue имеют необязательный идентификатор, который может использоваться для прерывания или продолжения определенного помеченного цикла, в котором появляется оператор. Если эта функция используется, идентификатор должен использоваться в той же строке, что break и continue.

Заблуждения

Многим начинающим программистам на JavaScript рекомендуется просто использовать везде точки с запятой и ожидать, что, если они намеренно не используют правила вставки точек с запятой, они могут спокойно игнорировать существование всей этой функции языка. Это не так из-за ограниченного производства, описанного выше, особенно из-за оператора return. Узнав о проблеме ограниченного производства, программисты могут чрезмерно опасаться разрывов строк и избегать их, даже если они увеличивают ясность. Лучше всего быть знакомым со всеми правилами для ASI, чтобы иметь возможность читать любой код независимо от того, как он написан, и писать код, который настолько ясен, насколько это возможно.

Другое заблуждение состоит в том, что ошибки в движках JavaScript в браузерах означают, что использование точек с запятой везде безопаснее и защитит разработчика от проблем совместимости между браузерами. Это просто не тот случай. Все существующие браузеры правильно реализуют спецификацию в отношении ASI, и любые ошибки, которые могли существовать, давно потеряны в тумане ранней истории Интернета. Нет причин беспокоиться о совместимости браузеров с точки зрения вставки точки с запятой: все браузеры реализуют одни и те же правила, и это правила.

Вывод

Следует опускать необязательные точки с запятой или нет? Ответ - вопрос личных предпочтений, но он должен быть сделан на основе осознанного выбора, а не туманных опасений неизвестных синтаксических ловушек или несуществующих ошибок браузера. Если вы помните приведенные здесь правила, вы сможете делать свой собственный выбор и легко читать любой JavaScript.

Если вы решите по возможности опускать точки с запятой, я советую вставлять их непосредственно перед открывающей круглой или квадратной скобкой в ​​любом операторе, который начинается с одного из этих токенов, или в любом операторе, который начинается с одного из токенов арифметических операторов " /", " +" , или " -", если вам случится написать такое заявление.

Независимо от того, опускаете ли вы точки с запятой или нет, вы должны помнить об ограниченных продуктах (return, break, continue, throw, а также постфиксные операторы увеличения и уменьшения), и вы можете свободно использовать разрывы строк везде, чтобы улучшить читаемость вашего кода.