Это самая важная причина, по которой использование точки с запятой опасно. Вы думаете, что удаляете шум, но на самом деле вы просто перемещаете его из одного места в другое, делая свой код более хрупким и уязвимым для ошибок, которые трудно отследить.
Я взял образцы кода из этой статьи, которая хорошо объясняет проблему.
// perfectly understandable foo(); [1,2,3].forEach(bar); // moving the noise foo() ;[1,2,3].forEach(bar)
Вместо того, чтобы помнить простое правило:
Просто: завершайте каждое выражение точкой с запятой
Теперь вам нужно запомнить гораздо более сложное правило:
Сложно: поставьте точку с запятой перед любой строкой, которая начинается с открывающей квадратной скобки, открывающей круглой скобки или обратной кавычки.
;[1,2,3].forEach(bar)
;(function () {
window.alert()
)())
;`hello`.indexOf('o')
И это вообще все случаи? Я не знаю.