Erst vor}, nachdem ein oder mehrere Zeilenumbrüche und das Ende der Programmeingabe eingefügt werden
Das heißt, Sie können nur Semikolonen weglassen, bei denen eine Linie, ein Codeblock und ein Programm endet.
Das heißt, Sie können den folgenden Code schreiben
Die Codekopie lautet wie folgt:
Funktion Square (x) {
var n = +x
return n * n
}
Es kann jedoch nicht wie der folgende Code geschrieben werden, sodass es einen Fehler meldet
Die Codekopie lautet wie folgt:
Funktionsbereich (r) {r = +r return Math.pi*r*r} // Fehler
Fügen Sie nur dann ein, wenn nachfolgende Eingangsmarken nicht analysiert werden können
Mit anderen Worten, die Semikoloninsertion ist ein Fehlerkorrekturmechanismus. Lesen Sie den Code und sprechen Sie
Die Codekopie lautet wie folgt:
a = b
(F())
// Es kann korrekt in eine separate Erklärung mit dem Einheitspreis der folgenden Erklärung analysieren.
a = b (f ())
a = b
F()
// in zwei unabhängige Aussagen analysiert
a = bf (); // Das Parsen ist falsch
Sie müssen also auf den Beginn der nächsten Erklärung achten, um festzustellen, ob Sie das Semikolon legal weglassen können.
(, [, +, -und /, dann ist es am besten, das Semikolon davor nicht wegzulassen.
Geben Sie ein Beispiel zur Veranschaulichung an
Die Codekopie lautet wie folgt:
a = b
['r', 'g', 'b']. foreach (function (key) {
console.log (Schlüssel);
});
Sie haben ursprünglich gedacht, es gäbe keinen Fehler, aber der Parser wurde in die folgende Aussage analysiert
Die Codekopie lautet wie folgt:
a = b ['r', 'g', 'b']. foreach (function (key) {
console.log (Schlüssel);
});
Da der zweite Satz mit [mit [den Parser) nach der ersten Anweisung nicht automatisch ein Semikolon einfügt, wird er wie oben gezeigt analysiert. Ist B ['B'] nicht falsch, wenn die obige Gleichung analysiert wird?
Daher, wenn die Aussagen mit den fünf Zeichen (, [, +, -und / am besten das Semikolon vor ihm am besten weglassen.
Wenn Sie das Semikolon weglassen möchten, folgt ein erfahrener Programmierer der Erklärung, um sicherzustellen, dass der Parser richtig analysiert wird. Wie unten gezeigt
Die Codekopie lautet wie folgt:
a = b
var x // Eine Deklarationsanweisung wird hier speziell hinzugefügt, um sicherzustellen, dass a = b nicht mit (f () analysiert wird)
(F())
Wenn Sie also ein Semikolon weglassen müssen, müssen Sie prüfen, ob die Startmarke der nächsten Zeile die oben genannten fünf Zeichen ist, was dazu führt
Das Ablassen von Semikolonen verursacht Probleme mit der Skriptverbindung zu Problemen
Die Codekopie lautet wie folgt:
//file1.js
(function () {
// ...
}) ())
//File2.js
(function () {
// ...
}) ())
Wenn die beiden oben genannten Dateien verbunden sind, werden sie wie folgt analysiert
Die Codekopie lautet wie folgt:
(function () {
// ...
}) () (function () {
// ...
}) ())
Wenn Sie daher Semikolons auslassen, müssen Sie nicht nur vorsichtig mit dem nächsten Tag der aktuellen Datei, sondern auch über ein Tag auftreten, das möglicherweise nach der Anweisung nach dem Anschluss des Skripts angezeigt wird.
Um Parser -Parsing -Fehler zu vermeiden, können Sie in jeder Datei ein zusätzliches Semikolon für das Skript vor nachlässigen Verbindungen schützen. Wenn die erste Anweisung der Datei mit dem obigen 5 zerbrechlichen Zeichen umgeschaltet ist, sollten Sie ein zusätzliches Semikolon -Präfix hinzufügen.
JavaScript -Syntax -Restriktionsgenerierung
JavaScript -Syntax -Restriktionsproduktion: Zwischen zwei Zeichen sind keine Zeilenpausen zulässig.
Geben Sie ein Beispiel:
Die Codekopie lautet wie folgt:
Zurückkehren
{};
Der obige Code ist analysiert in
Die Codekopie lautet wie folgt:
zurückkehren;
{}
;
Die Semikolon-Einfügungsregeln für Selbstverlagerung und Selbstverstärkungsoperationen
Die Codekopie lautet wie folgt:
A
++
B
Denken Sie darüber nach, in welchen Code der obige Code analysiert wird? Lassen Sie uns die Antwort mitteilen, da der Autoinkrementbetreiber sowohl als voreingestellter Operator als auch als Postset -Operator verwendet werden kann. Der Post -Varianten -Operator kann jedoch nicht vor dem Leitungsunterbrechung angezeigt werden. Daher wird der obige Code analysiert
Die Codekopie lautet wie folgt:
A;
++ B;
Das Semikolon wird nicht automatisch als Trennzeichen am Kopf der für die Loop -Anweisung für Schleifen eingefügt.
Die Codekopie lautet wie folgt:
für (var i = 0, total = 1
Ich <Länge
i ++) {
insgesamt*= i;
}
Codes wie die oben genannten haben Parsenfehler.
Das während des leeren Schleifenkörpers muss auch Semikolonen angezeigt werden, ansonsten führt er auch zu Parsenfehlern.
Die Codekopie lautet wie folgt:
Funktion myTest () {
Während (wahr)
}
Muss wie folgt geschrieben werden, um Fehler zu vermeiden
Die Codekopie lautet wie folgt:
Funktion myTest () {
während (wahr);
}
Lassen Sie uns zusammenfassen
1. Semikolone erst vor dem} -Tag, am Ende einer Linie und am Ende des Programms ableiten
2. Semikolone nur dann abgeben, wenn die folgende Marke nicht analysiert werden kann
3. Sie dürfen keine Semikolons vor Aussagen weglassen, beginnend mit (, [, +, -und / Zeichen.
4. Wenn das Skript verbunden ist, fügen Sie explizit Semikolonen zwischen den Skripten ein
5. Sie dürfen die Linie nicht vor den Parametern von Rückkehr, Wurf, Brechen, Fortsetzung, ++ oder -einwickeln
6. Ein Semikolon kann nicht als Trennzeichen für den Header A for Loop oder eine leere Aussage abgeleitet werden.