Во время одного из наших первых лекций JavaScript в школе Flatiron Exportor упомянул, что запястья являются необязательными в JavaScript … за исключением случаев, когда они не 🤔
Я решил посмотреть больше в использование запятой в JavaScript, чтобы по-настоящему понять, почему мы бы не хотели использовать их, и использовать эти знания, чтобы избежать создания вредных привычек в начале.
Питер Скоркле, https://opinionator.blogs.nytimes.com/2012/07/02/semicolons-a-love-story/
Причина, по которой запястья иногда являются необязательными в JavaScript из-за автоматической вставки с запятой или ASI. ASI не означает, что фактические точка запятой вставляются в ваш код, это скорее набор правил, используемых JavaScript, который определит, будет ли съемка интерпретации в определенных местах. Я нашел полезную лекцию из Академии Fullstack по теме, который вы можете проверить здесь Отказ Я также нашел Блог пост От Брэдли Брайтваита на тему. Ниже я выделяю основные вынос от этих ресурсов.
Вот 3 основных пункта, которые нужно знать, когда дело доходит до ASI.
1- Точка запятой будет вставлена, когда он столкнутся с линейным терминатором или «}», который не является грамматически правильным. Итак, если анализ новой линии кода сразу после предыдущей строки кода до сих пор приводит к действительному JavaScript, ASI не будет запущен.
Пример 1:
var beef var cheese
станет:
var beef; var cheese;
Пример 2:
var a b= 3;
Здесь грамматика не ожидает увидеть B после A, так что ASI срабатывает
var a; b = 3;
Пример 3:
a = b + c (d + e).print()
равен:
a = b + c(d + e).print();
2- Если программа доходит до конца ввода, и не было никаких ошибок, но это не полная программа, к концу запятой будет добавлен запястье. Что в основном означает, что съемка будет добавлена в конце файла, если он отсутствует один.
3- Существуют определенные места в грамматике, где появляется линейный разрыв, он заканчивает оператор безоговорочно, и он добавит точку запятой. Одним из примеров этого является возвратные заявления.
function getCheese() { return { cheeseType: "Gouda" } }
Это будет вызывать ASI и приведет к:
function getCheese() { return; { cheeseType: "Gouda" } }
Выражения в операторе возврата должны начать на этой же линии, как это:
function getCheese() { return { cheeseType: "Gouda" } }
Вот несколько случаев, когда вам не нужны полуколоны:
Если (…) {…} else {…} для (…) {…} пока (…) {…}
Примечание: вам нужно один после: Do {…} пока (…);
Если вы собираетесь написать свой JavaScript без дополнительных точек с запятой, это, вероятно, хорошо, по крайней мере, знать, что делает ASI. Например, сжатие или зачисление могут привести к ошибке вашего действительного кода, потому что эти программы могут полагаться на запятее.
Кроме того, его можно сложнее отлаживать без запятых, поскольку ваш код может быть объединен вместе, не осознавая его. Если вы положите перерыв линии, где не должно быть ни одного, ASI может прыгать и предположить, что с запятой, даже если не должно быть ни одного.
Scared of semicolons? Everything you need to know but were too afraid to ask!
Компании и проекты с открытым исходным кодом, вероятно, будут иметь предпочтение так или иначе, поэтому обязательно отметим, что это такое.
Наконец, если вы думаете, что вы можете работать в ошибках из-за ASI, проверьте babeljs.io для отладки – это позволяет вводить в свой код и показывает, где вставляются запятыми запятыми.
Что вы нашли правдой, когда дело доходит до запятых в JavaScript?
Оригинал: “https://dev.to/adriennemiller/semicolons-in-javascript-to-use-or-not-to-use-2nli”