599 Stimmen

Wie lauten die Regeln für die automatische Semikoloneinfügung (ASI) von JavaScript?

Nun, zunächst einmal sollte ich fragen, ob dies browserabhängig ist.

Ich habe gelesen, dass, wenn ein ungültiges Token gefunden wird, aber der Codeabschnitt bis zu diesem ungültigen Token gültig ist, ein Semikolon vor dem Token eingefügt wird, wenn diesem ein Zeilenumbruch vorausgeht.

Das häufigste Beispiel für Fehler, die durch das Einfügen von Semikolons verursacht werden, ist jedoch das folgende:

return
  _a+b;

was nicht dieser Regel zu entsprechen scheint, da _a ein gültiges Token wäre.

Andererseits funktioniert das Aufbrechen von Anrufketten wie erwartet:

$('#myButton')
  .click(function(){alert("Hello!")});

Hat jemand eine detailliertere Beschreibung der Regeln?

3voto

laxman Punkte 1312

Ich möchte nur hinzufügen,

const foo = function(){ return "foo" } //this doesn't add a semicolon here.
(function (){
    console.log("aa");
})()

siehe dies, unter Verwendung eines unmittelbar aufgerufenen Funktionsausdrucks (IIFE)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X