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

Если вы не знакомы с правилами, есть описание вставки точки с запятой в St Нет необходимости использовать дополнительное событие lib.

Если первый через n и жду ответа, токены программной формы JavaScript грамматически допустимы, но с первого по n 1 токенов сайта Mozilla нет, и между токенами n есть разрыв строки, затем анализатор пытается снова проанализировать программу после вставки виртуального токена точки с запятой между n и жду ответа, токены и n 1 токенов сайта Mozilla нет, и между токенами n и n 1 и жду ответа, Этот вопрос о переполнении стека токенов сайта Mozilla нет, и между токенами n жетоны.

Это описание может быть неполным, потому что оно не объясняет пример @ Dreas. У кого-нибудь есть ссылка на полные правила, или посмотрите, почему пример получает точку с запятой? (Я попробовал это в JScript.NET.) Вместо этого объявление

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

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

Неоднозначный случай, который прерывается при отсутствии точки с запятой: говорится, что Глядя на вывод

Да, вы всегда должны использовать точки с запятой. Зачем? Потому что, если вы в конечном итоге будете использовать JavaScript-компрессор, весь ваш код будет в одной строке, что нарушит ваш код.

// define a function
var fn = function () {
    //...
} // semicolon missing at this line

// then execute some code inside a closure
(function () {
    //...
})();

Это будет интерпретировано как:

var fn = function () {
    //...
}(function () {
    //...
})();

Увеличение встроенных модулей может привести к конфликтам с другими библиотеками (некоторые видят), поэтому вам может быть удобнее просто

; это повредит вашим чувствам, но покажет вам много способов лучше написать JavaScript (и один из способов — всегда использовать точки с запятой).

Попробуйте http://www.jslint.com/ терминаторы

Кажется, что всем не хватает того, что точки с запятой в JavaScript не являются оператором , но оператор разделители . Это небольшая разница, но она важна для программирования парсера. Относитесь к ним так, как они есть, и вы обнаружите, что оставляя их, вы будете чувствовать себя намного более естественно разделитель

I Я запрограммирован на других языках, где точка с запятой является оператором , а также необязательный, поскольку синтаксический анализатор выполняет «вставку точек с запятой» на новых строках, где он не нарушает грамматику. Так что я не был незнаком с ним, когда нашел его в JavaScript. Ваш код:

Мне не нравится шум в языке (это одна из причин, по которой я плохо в Perl), а точки с запятой — это шум в JavaScript. Поэтому я их опускаю.

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

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

if (a) { b() }

JavaScript автоматически вставляет точки с запятой при интерпретации кода, поэтому, если вы поместите значение оператора return ниже строки, оно не будет возвращено:

Ваш код:

return
5

Интерпретация JavaScript:

return;
5;

[Не назначено]

Я думаю, что это похоже на то, что обсуждался в последнем подкасте. «Будьте либеральны в том, что вы принимаете» означает, что в анализатор Javascript нужно было внести дополнительную работу, чтобы исправить случаи, когда точки с запятой были опущены. Теперь у нас есть множество страниц, плавающих вокруг с плохим синтаксисом, которые могут сломаться однажды в будущем, когда какой-то браузер решит быть немного более строгим в отношении того, что он принимает. Этот тип правил должен также применяться к HTML и CSS. Вы можете писать испорченный HTML и CSS, но не удивляйтесь, когда вам становится странно и сложно отлаживать поведение, когда какой-то браузер неправильно интерпретирует ваш неверный код.

функцией определенно будет вызываться для каждого