Heim >Web-Frontend >js-Tutorial >Wie man schnellere JavaScript -Zustandsausdrücke schreibt
var x = 10; var y = true; if (x*x > 1000 || y) alert("true!");Wie zu erwarten, wird „True“ ausgegeben, weil y wahr ist - obwohl die erste Bedingung fehlschlägt. JavaScript -Dolmetscher analysieren jede Bedingung nacheinander. Wenn wir X auf 100 ändern, wäre x*x größer als 1000 und bewertet auf True. Da wir jedoch eine logische oder (||) verwenden, muss der Interpreter niemals analysieren - der Ausdruck muss wahr sein, sodass der Alarm angezeigt wird. Daher können wir Ausdrücke optimieren, um sicherzustellen, dass diejenigen, die die geringste Verarbeitung benötigen, zuerst analysiert werden, d. H.
if (y || x*x > 1000) alert("true!");Wenn y wahr ist, muss der Dolmetscher niemals den zweiten Zustand bewerten. Dies könnte eine beträchtliche Zeit sparen, insbesondere wenn wir eine Funktion aufrufen, intensive Berechnungen durchführen oder das DOM analysieren. Die gleiche Optimierung gilt für logisch und (&&). In diesem Fall macht der erste Ausdruck, der auf False bewertet wird, die gesamte Bedingung falsch - keine weitere Verarbeitung ist erforderlich.
if (summary = document.getElementById("post-summary")) { alert(summary.innerHTML); }Die Zusammenfassung Variable wird auf das HTML-Element mit einer ID von „post-ommers“ eingestellt. Wenn das Element existiert, bewertet die Bedingung auf True und der Alarm erscheint. Wenn ein Element nicht gefunden werden kann, bewertet die Bedingung auf False und keiner der bedingten Code wird ausgeführt. Es ist eine nützliche Technik, obwohl nach den Kommentaren nur wenige Entwickler die Praxis mochten, weil JavaScript schwieriger zu lesen und zu debuggen wird. Es gibt jedoch ein weiteres Problem - unter 2 oder mehr Bedingungen kann Ihre Aufgabe niemals ausgeführt werden. Zum Beispiel:
if (x || y = functionY()) { alert(y); }Wenn X an True bewertet wird, weist der Interpreter y niemals einen Wert zu und der Alarm wird immer einen Fehler werfen. Wir könnten es beheben, indem wir die Bedingungen umkehren, damit y immer bewertet wird, z.
if (y = functionY() || x) …Selbst dann könnte es immer noch Verwirrung verursachen, da es nicht offensichtlich ist, dass die Reihenfolge dieser Bedingungen unerlässlich ist. Ein Entwickler, der die obere Hälfte dieses Artikels gelesen hat, könnte sogar versuchen, den Code zu optimieren, indem er X zuerst bewertet! Zusammenfassend lässt sich sagen, dass, wenn Sie Aufträge innerhalb von Bedingungen verwenden möchten, aber seien Sie absolut sicher, dass dies der einzige Zustand ist, den Sie jemals brauchen werden!
Wie kann ich JavaScript -Bedingungen verwenden, um Werte zu vergleichen? als), = (größer als oder gleich) und if (Bedingung) {
Kann ich ternäre Operatoren für mehrere Bedingungen in JavaScript verwenden? Es ist jedoch wichtig zu beachten, dass verschachtelte ternäre Operatoren Ihren Code schwieriger zu lesen und zu verstehen können. Sie sollten daher sparsam verwendet werden. Dies ist eine effizientere Möglichkeit, mehrere sonstige, wenn Bedingungen zu schreiben. Die Syntax lautet wie folgt:
Switch (Ausdruck) {break; Wenn es eine Übereinstimmung gibt, wird der entsprechende Codeblock ausgeführt.
Das obige ist der detaillierte Inhalt vonWie man schnellere JavaScript -Zustandsausdrücke schreibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!