Es ist ein beliebtes Muster einen Standardwert zuzuweisen:Wird in Chrome Javascript Boolesche Ausdrücke korrekt ausgewertet?
var aBool = '' || false;
var aString = false || '';
Die obige aBool
boolean den Wert von false
und aString den Wert eines leeren String, zumindest in Chrome und FF-Konsole geben würde. Das ist im Gegensatz zu:
Gibt Ausdruck1 zurück, wenn es in True konvertiert werden kann; Andernfalls wird expr2 zurückgegeben. Wenn Sie also mit Booleschen Werten arbeiten, || gibt true zurück, wenn entweder Operand in true umgewandelt werden kann; Wenn beide in false konvertiert werden können, gibt false zurück. Quelle: mozilla
, die tatsächlich praktisch ist, aber ist es richtig?
Nein, es ist nicht und macht eigentlich keinen Sinn. Fühlen Sie sich frei, diese Seite zu bearbeiten ("So ..." Teil sollte entfernt werden). – georg
"Gibt' expr1' zurück, wenn es in 'true' konvertiert werden kann; andernfalls gibt' expr2' "den wichtigen Teil des Satzes zurück –
Was ist falsch, scheint mir richtig zu sein? * Wenn es mit booleans * verwendet wird, gibt es true zurück, wenn einer der Operanden wahr ist, oder false, wenn beide falsch sind? – adeneo