Pour simplifier les règles de point-virgule
Chaque ligne qui commence par un (
, [
, `, ou tout opérateur (/, +, - sont les seuls valides), doit commencer par un point - virgule.
func()
;[0].concat(myarr).forEach(func)
;(myarr).forEach(func)
;`hello`.forEach(func)
;/hello/.exec(str)
;+0
;-0
Cela empêche un
func()[0].concat(myarr).forEach(func)(myarr).forEach(func)`hello`.forEach(func)/hello/.forEach(func)+0-0
monstruosité.
Remarque additionnelle
Pour mentionner ce qui va se passer: les parenthèses seront indexées, les parenthèses seront traitées comme des paramètres de fonction. Le backtick se transformerait en un modèle étiqueté , et l'expression régulière ou les entiers explicitement signés se transformeraient en opérateurs. Bien sûr, vous pouvez simplement ajouter un point-virgule à la fin de chaque ligne. Il est bon de garder à l'esprit que lorsque vous effectuez rapidement un prototypage et que vous supprimez vos points-virgules.
De plus, l'ajout de points-virgules à la fin de chaque ligne ne vous aidera pas avec ce qui suit, alors gardez à l'esprit des déclarations telles que
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.
Le cas ci-dessus arrivera à retourner / continuer / break / ++ / -. Tout linter l'attrapera avec une erreur de code mort ou de syntaxe ++ / - (++ / - ne se produira jamais de manière réaliste).
Enfin, si vous souhaitez que la concaténation de fichiers fonctionne, assurez-vous que chaque fichier se termine par un point-virgule. Si vous utilisez un programme bundler (recommandé), il devrait le faire automatiquement.