In js logischen Operationen werden 0, „“, null, falsch, undefiniert und NaN alle als falsch beurteilt, und alles andere wird als wahr beurteilt.
||Berechnen Sie zuerst den ersten Operanden. Wenn er in „true“ konvertiert werden kann, geben Sie den Wert des Ausdrucks auf der linken Seite zurück. Berechnen Sie andernfalls den zweiten Operanden. Auch wenn der Operand des ||.-Operators kein boolescher Wert ist, kann er dennoch als boolesche ODER-Operation betrachtet werden, da er unabhängig vom Typ des zurückgegebenen Werts in einen booleschen Wert konvertiert werden kann.
Nutzen Sie die Funktion, nicht-boolesche Werte zurückzugeben: Verwenden Sie || für nicht-boolesche Operanden, um den ersten definierten Nicht-Null-Wert in einer Reihe alternativer Werte auszuwählen (der erste ist ein nicht falscher Wert).
Beispiel:
var max = max_width ||. obj.max_width ||.
var attr = attr ||. ""; Diese Operation wird häufig verwendet, um festzustellen, ob eine Variable definiert wurde. Sie ist nützlicher, wenn Sie einen Standardwert für einen Funktionsparameter definieren.
&& wertet zuerst den ersten Ausdruck aus, und wenn er falsch ist, wird der zweite Ausdruck nicht verarbeitet, andernfalls werden nachfolgende Ausdrücke weiter verarbeitet. Wählt den Wert des ersten nicht-wahren Ausdrucks von links nach rechts aus und gibt den Wert des letzten Ausdrucks zurück, wenn dieser nicht gefunden wird.
Beispiel: (Der Geschmack muss sorgfältig abgewogen werden)
2 && 's1' && '123' && 'sss' Der Wert des Ausdrucks ist gleich 'sss'
2 && 's1' && '' && 'sss' Der Wert des Ausdrucks ist gleich ''
2 && 's1' && NaN && 'sss' Der Wert des Ausdrucks ist gleich NaN
if(a >=5){
alarm("Hallo");
}
Kann vereinfacht werden zu:
a >= 5 && alarm("Hallo");
Der Unterschied zwischen typeof 5 und typeof !!5 besteht in einer strengeren Schreibweise. Die Funktion von !! besteht darin, eine Variable eines anderen Typs in den Bool-Typ umzuwandeln. Zum Beispiel if(!!attr) => if(attr)
Die Funktionen von ||. und && in js helfen uns nicht nur, den Code zu optimieren, sondern verringern auch die Lesbarkeit des Codes. Dies erfordert, dass wir es selbst abwägen.
Clevere Implementierung der startWith-Funktion in JS, warning(!'asdf'.indexOf('s')) => !0 = true