Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Einführung in Kurzschlussausdrücke in Javascript-Optimierungstechniken_Javascript-Techniken

Detaillierte Einführung in Kurzschlussausdrücke in Javascript-Optimierungstechniken_Javascript-Techniken

WBOY
WBOYOriginal
2016-05-16 16:07:231099Durchsuche

Was ist ein Kurzschlussausdruck?

Kurzschlussausdruck: Als Operandenausdruck der Operatoren „&&“ und „||“ erfolgt die Auswertung, solange das Endergebnis als wahr oder falsch bestimmt werden kann Abbruch, dies nennt man Kurzschlussauswertung. Dies ist eine wichtige Eigenschaft dieser beiden Operatoren.

Das einfachste Beispiel:

Code kopieren Der Code lautet wie folgt:

foo = foo||bar;

Was bedeutet diese Codezeile? Antwort:

Code kopieren Der Code lautet wie folgt:

//Wenn foo vorhanden ist, bleibt der Wert unverändert, andernfalls weisen Sie foo
den Wert von bar zu if(!foo)
foo = bar;

In der logischen Operation von JavaScript werden 0, „“, null, false, undefiniert und NaN alle als falsch beurteilt, während alles andere als wahr beurteilt wird. In der obigen Formel berechnet foo = foo||bar;, || zunächst den ersten Operanden. Wenn er in true konvertiert werden kann, was bedeutet, dass foo bereits einen Wert hat, wird der Wert des Ausdrucks auf der linken Seite zurückgegeben. andernfalls Berechnen Sie den zweiten Operandenbalken.

Auch wenn der Operand des ||-Operators kein boolescher Wert ist, kann er dennoch als boolesche ODER-Operation betrachtet werden, da er unabhängig von der Art des zurückgegebenen Werts in einen booleschen Wert konvertiert werden kann .

Natürlich wäre es strenger, den folgenden Ansatz zu verwenden:

Code kopieren Der Code lautet wie folgt:

if(foo) //Nicht streng genug

if(!!foo) //Strenger, !! kann andere Wertetypen in boolesche Typen konvertieren

Sie können es testen:

Code kopieren Der Code lautet wie folgt:

var foo;
Var-Nummer = 1;
var string = "string";
var obj = {};
var arr = [];


console.log(typeof(foo)); // undefiniert
console.log(typeof(number)); //number
console.log(typeof(string)); //string
console.log(typeof(obj)); //object 
console.log(typeof(arr)); //object

console.log(typeof(!!foo)); // boolean
console.log(typeof(!!number)); //boolean
console.log(typeof(!!string)); //boolean
console.log(typeof(!!obj)); //boolean
console.log(typeof(!!arr)); //boolean

Dies kann sehr konsistent mit dem sein, was im Artikel „JavaScript-Projekte optimieren“ erwähnt wird, sodass das Skript weniger oder gar nicht ausgeführt wird, um den Zweck der JavaScript-Optimierung zu erreichen. Es ist jedoch zu beachten, dass das Schreiben auf diese Weise uns zwar hilft, den Code zu optimieren, aber auch den Nachteil mit sich bringt, dass die Lesbarkeit des Codes beeinträchtigt wird. Daher ist es besser, angemessene Kommentare hinzuzufügen.

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