Semikolonregeln vereinfachen
Jede Zeile , die mit einem beginnt (
, [
`, oder jeder Operator (/, +, - ist die einzige gültigen ist), muss mit einem Semikolon beginnen.
func()
;[0].concat(myarr).forEach(func)
;(myarr).forEach(func)
;`hello`.forEach(func)
;/hello/.exec(str)
;+0
;-0
Dies verhindert a
func()[0].concat(myarr).forEach(func)(myarr).forEach(func)`hello`.forEach(func)/hello/.forEach(func)+0-0
Monstrocity.
Zusätzliche Anmerkung
Um zu erwähnen, was passieren wird: Klammern werden indiziert, Klammern werden als Funktionsparameter behandelt. Der Backtick würde sich in eine mit Tags versehene Vorlage verwandeln , und Regex oder explizit signierte Ganzzahlen werden zu Operatoren. Natürlich können Sie am Ende jeder Zeile einfach ein Semikolon einfügen. Es ist jedoch gut, sich vor Augen zu halten, wenn Sie schnell Prototypen erstellen und Ihre Semikolons ablegen.
Das Hinzufügen von Semikolons am Ende jeder Zeile hilft Ihnen nicht bei den folgenden Punkten. Denken Sie also an Aussagen wie
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.
Der obige Fall wird zufällig / continue / break / ++ / - zurückgeben. Jeder Linter wird dies mit einem Dead-Code- oder ++ / - Syntaxfehler abfangen (++ / - wird niemals realistisch auftreten).
Wenn die Dateikettung funktionieren soll, stellen Sie sicher, dass jede Datei mit einem Semikolon endet. Wenn Sie ein Bundler-Programm verwenden (empfohlen), sollte dies automatisch erfolgen.