Para simplificar las reglas de punto y coma
Cada línea que comienza con una (
, [
, `, o cualquier operador (/, +, - son los únicos válidos), debe comenzar con un punto y coma.
func()
;[0].concat(myarr).forEach(func)
;(myarr).forEach(func)
;`hello`.forEach(func)
;/hello/.exec(str)
;+0
;-0
Esto evita un
func()[0].concat(myarr).forEach(func)(myarr).forEach(func)`hello`.forEach(func)/hello/.forEach(func)+0-0
monstruosidad
Nota adicional
Para mencionar lo que sucederá: los paréntesis se indexarán, los paréntesis se tratarán como parámetros de función. El backtick se transformaría en una plantilla etiquetada , y las expresiones regulares o enteros con signo explícito se convertirán en operadores. Por supuesto, puede agregar un punto y coma al final de cada línea. Sin embargo, es bueno tener en cuenta cuando realiza prototipos rápidamente y deja caer los puntos y comas.
Además, agregar puntos y comas al final de cada línea no lo ayudará con lo siguiente, así que tenga en cuenta declaraciones como
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.
El caso anterior sucederá para devolver / continuar / romper / ++ / -. Cualquier linter captará esto con código muerto o error de sintaxis ++ / - (++ / - nunca ocurrirá de manera realista).
Finalmente, si desea que funcione la concatenación de archivos, asegúrese de que cada archivo termine con un punto y coma. Si está utilizando un programa de paquete (recomendado), debería hacerlo automáticamente.