Чтобы упростить правила использования точки с запятой
Каждая строка , которая начинается с (
, [
`, или любой оператор (/, +, - единственным действительными те), должен начинаться точкой с запятой.
func()
;[0].concat(myarr).forEach(func)
;(myarr).forEach(func)
;`hello`.forEach(func)
;/hello/.exec(str)
;+0
;-0
Это предотвращает
func()[0].concat(myarr).forEach(func)(myarr).forEach(func)`hello`.forEach(func)/hello/.forEach(func)+0-0
monstrocity.
Дополнительное примечание
Чтобы упомянуть, что произойдет: скобки будут индексировать, круглые скобки будут рассматриваться как параметры функции. Обратный апостроф преобразуется в шаблон с тегами , а регулярное выражение или целые числа с явным знаком - в операторы. Конечно, вы можете просто добавить точку с запятой в конце каждой строки. Это хорошо, когда вы быстро создаете прототип и опускаете точки с запятой.
Кроме того, добавление точки с запятой в конец каждой строки не поможет вам в следующих случаях, поэтому имейте в виду такие утверждения, как
return // Will automatically insert semicolon, and return undefined.
(1+2);
i // Adds a semicolon
++ // But, if you really intended i++ here, your codebase needs help.
В приведенном выше случае произойдет возврат / продолжение / перерыв / ++ / -. Любой линтер поймает это с помощью мертвого кода или синтаксической ошибки ++ / - (++ / - реально никогда не произойдет).
Наконец, если вы хотите, чтобы объединение файлов работало, убедитесь, что каждый файл заканчивается точкой с запятой. Если вы используете программу-сборщик (рекомендуется), она должна делать это автоматически.