JavaScript verwendet das Konzept der „Kurzschlussauswertung“, ähnlich dem &&-Operator in C#. Diese Bewertungsmethode priorisiert die Leistung der Bedingung auf der linken Seite des Operators, bevor mit der Bewertung der Bedingung auf der rechten Seite fortgefahren wird.
Kurzschlussbewertung von JavaScript
Um die Kurzschlussauswertung in JavaScript zu demonstrieren, betrachten wir das folgende Beispiel:
if (true || foo.foo){ // Passes, no errors because foo isn't defined. }
In diesem Szenario wertet JavaScript den ersten aus Bedingung, was wahr ist. Da der || Wenn der Operator ein logisches ODER darstellt, wird der Gesamtausdruck als wahr ausgewertet, ohne dass die zweite Bedingung ausgewertet werden muss, die auf die nicht vorhandene Eigenschaft foo.foo verweist. Dieses Verhalten sorgt für eine effiziente Ressourcenzuweisung, indem unnötige Berechnungen vermieden werden.
Workaround für C#
C# unterstützt nativ keine Kurzschlussauswertung, aber ein vergleichbares Verhalten kann mit erreicht werden der bedingte Operator:
if ((bool1) ? true : bool2)
Wenn in diesem Fall bool1 „true“ ergibt, wird der Ausdruck ohne Ausführung als „true“ ausgewertet bool2. Es ist jedoch anzumerken, dass dieser Ansatz nicht mit der Kurzschlussauswertung von JavaScript identisch ist, da der Bedingungsoperator beide Ausdrücke auswertet, wenn auch später.
Das obige ist der detaillierte Inhalt vonWie schneidet die Kurzschlussbewertung von JavaScript im Vergleich zum C#-Ansatz ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!