Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Einführung in den Semikolon-Einfügungsmechanismus in JavaScript_Grundkenntnisse

Detaillierte Einführung in den Semikolon-Einfügungsmechanismus in JavaScript_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:14:351189Durchsuche

wird

nur vor }, nach einem oder mehreren Zeilenumbrüchen und am Ende der Programmeingabe eingefügt

Das bedeutet, dass Sie das Semikolon nur am Ende einer Zeile, eines Codeblocks und eines Programms weglassen können.

Das heißt, Sie können den folgenden Code schreiben

Code kopieren Der Code lautet wie folgt:

Funktion quadrat(x) {
var n = x
Rückgabe n * n
}

Sie können den Code jedoch nicht wie folgt schreiben, da sonst ein Fehler gemeldet wird
Code kopieren Der Code lautet wie folgt:

function area(r) { r = r return Math.PI*r*r }//error

Fügen Sie

nur ein, wenn nachfolgende Eingabe-Tags nicht analysiert werden können

Mit anderen Worten, das Einfügen von Semikolons ist ein Fehlerkorrekturmechanismus. Schauen Sie sich den Code an und sprechen Sie

Code kopieren Der Code lautet wie folgt:

a = b
(f())
//Kann korrekt in eine einzelne Anweisung analysiert werden. Der Stückpreis ist die folgende Anweisung
a = b(f())

a = b
f()
//In zwei unabhängige Anweisungen analysiert
a = bf();//Fehler in der Analyse

Sie müssen also auf den Anfang der nächsten Anweisung achten, um festzustellen, ob Sie das Semikolon legal weglassen können.

(, [, , - und / Diese fünf Zeichen beginnen die Anweisung, dann ist es am besten, das Semikolon davor nicht wegzulassen.

Geben Sie mir ein Beispiel

Code kopieren Der Code lautet wie folgt:

a = b
['r', 'g', 'b'].forEach(function (key) {
console.log(key);
});

Ursprünglich dachten Sie, es gäbe keinen Fehler, aber der Parser hat ihn in die folgende Anweisung
geparst
Code kopieren Der Code lautet wie folgt:

a = b['r', 'g', 'b'].forEach(function (key) {
console.log(key);
});

Da die zweite Anweisung mit [ beginnt, fügt der Parser nach der ersten Anweisung nicht automatisch ein Semikolon ein, daher wird sie wie oben gezeigt analysiert. Die obige Formel wird als b['b'].forEach analysiert. Ist das nicht falsch?

Für Sätze, die mit diesen fünf Zeichen (, [, , - und /) beginnen, ist es am besten, das Semikolon davor nicht wegzulassen.

Wenn Sie das Semikolon weglassen möchten, folgen erfahrene Programmierer dieser Anweisung mit einer Deklarationsanweisung, um sicherzustellen, dass der Parser sie korrekt analysiert. Wie unten gezeigt

Code kopieren Der Code lautet wie folgt:

a = b
var x//Hier wird speziell eine Deklarationsanweisung hinzugefügt, um sicherzustellen, dass a = b nicht zusammen mit (f())
analysiert wird (f())

Wenn Sie also das Semikolon weglassen müssen, müssen Sie prüfen, ob die Startmarke der nächsten Zeile aus den oben genannten fünf Zeichen besteht, was dazu führt, dass der Parser das automatische Einfügen von Semikolons deaktiviert, oder Sie können auch die fünf Zeichen (, [, , - und / Stellen Sie ein Semikolon voran

Das Weglassen von Semikolons führt zu Problemen bei der Skriptverbindung

Code kopieren Der Code lautet wie folgt:

//file1.js
(Funktion () {
//......
})()

//file2.js
(Funktion () {
//......
})()

Wenn die beiden oben genannten Dateien verbunden sind, werden sie wie folgt analysiert

Code kopieren Der Code lautet wie folgt:

(Funktion () {
//......
})()(Funktion () {
//......
})()

Das Weglassen des Semikolons erfordert also nicht nur, auf das nächste Token in der aktuellen Datei zu achten, sondern auch auf alle Token, die nach der Anweisung erscheinen, nachdem das Skript verbunden wurde.

Um Fehler beim Parsen des Parsers zu vermeiden, können Sie jeder Datei ein zusätzliches Semikolon voranstellen, um das Skript vor unvorsichtiger Verkettung zu schützen. Wenn die erste Anweisung in der Datei mit den oben genannten fünf anfälligen Zeichen geöffnet wird, sollten Sie ein zusätzliches Semikolon-Präfix hinzufügen.

JavaScript-Syntax schränkt die Produktion ein

JavaScript-Syntax schränkt die Produktion ein: Zwischen zwei Zeichen sind keine Zeilenumbrüche zulässig.

Beispiel:

Code kopieren Der Code lautet wie folgt:

zurück
{};

Der obige Code wird in
analysiert
Code kopieren Der Code lautet wie folgt:

zurück;
{}
;

Semikolon-Einfügungsregeln für automatische Inkrementierungs- und automatische Dekrementierungsvorgänge

Code kopieren Der Code lautet wie folgt:

a

b

Denken Sie darüber nach, in was wird der obige Code analysiert? Sagen Sie mir die Antwort, denn der Inkrementoperator kann sowohl als Präfixoperator als auch als Postfixoperator verwendet werden, aber der Postfixoperator darf nicht vor einer neuen Zeile stehen, daher wird der obige Code in
analysiert
Code kopieren Der Code lautet wie folgt:

a;
b;

Das Semikolon wird nicht automatisch als Trennzeichen am Kopf einer leeren for-Schleifenanweisung eingefügt

Code kopieren Der Code lautet wie folgt:

für (var i = 0,total=1
i < Länge
i ) {
total*=i;
}

Code wie der oben genannte führt zu Analysefehlern.

Der while des leeren Schleifenkörpers muss ebenfalls ein Semikolon anzeigen, sonst kommt es ebenfalls zu Analysefehlern

Code kopieren Der Code lautet wie folgt:

Funktion mytest() {
Während (wahr)
}

Es muss wie folgt geschrieben werden, um Fehler zu vermeiden
Code kopieren Der Code lautet wie folgt:

Funktion mytest() {
While (wahr) ;
}

Zusammenfassend

1. Semikolons werden nur vor dem }-Zeichen, am Ende einer Zeile und am Ende eines Programms abgeleitet
2. Semikolon
wird nur abgeleitet, wenn das folgende Tag nicht analysiert werden kann 3. Das Semikolon
darf vor Anweisungen, die mit den Zeichen (, [, , - und /) beginnen, nicht weggelassen werden 4. Fügen Sie beim Verknüpfen von Skripten explizit Semikolons
zwischen den Skripten ein 5. Unterbrechen Sie niemals eine Zeile vor den Parametern Return, Throw, Break, Continue oder –
6. Ein Semikolon kann nicht als Kopf einer for-Schleife oder als Trennzeichen einer leeren Anweisung

abgeleitet werden
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn