2016-03-23 9 views
0

Warum wird das Folgende zu 'hi' ausgewertet?Warum bewertet das Folgende mit "Hallo"?

'hi' || true || 50 

Ich bin nicht super neu zu Javascript, aber ich bin rebeefing mein Wissen durch einige alte Bücher und ich für das Leben von mir, indem Sie verstehen nicht, warum dies zu 'hi' statt true ausgewertet .. Can jemand das erklären ??

+2

So wird '||' definiert: 'x || y 'bedeutet "wenn x truthy ist, trete zurück x (nicht" wahr "), sonst y". – georg

+1

Nur [RTFM] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Logical_operators) – hindmost

+0

Ich frage mich, warum in Ihrem Buch es nicht erklärt wird. –

Antwort

1

Willkommen in der Welt der truthigen und falschen Werte.

Wenn ein Wert in true konvertiert werden kann, wird der Wert als truthy bezeichnet. Wenn ein Wert in false konvertiert werden kann, lautet der Wert "falsy".

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

Dies bedeutet, dass grundsätzlich alles außer

false 
null 
undefined 
NaN 
"" 
0 

auf true in || Bedingungen auswertet, wobei der erste Wert zurückgegeben, die truthy ist. Dies wird manchmal in einer coalesce artigen Weise verwendet:

a = a || {} 

, die eine auf a, wenn ein keiner der Werte ist oben, sonst ein leeres JavaScript-Objekt.

0

Weil 'hi' ein nichtleeres Zeichenfolgenliteral ist, das wahr ist, wenn es als boolescher Wert behandelt wird. Der Ausdruck a || b || c gibt den ersten Ausdruck zurück, der zu true führt, in diesem Fall 'hi'.

0

Von MDN (Logical Operators):

Returns expr1, wenn es in true umgewandelt werden kann; Andernfalls wird expr2 zurückgegeben. Wenn Sie also mit Booleschen Werten arbeiten, || gibt true zurück, wenn einer der Operanden in true umgewandelt werden kann; Wenn beide in false konvertiert werden können, wird false zurückgegeben.

0

Hey vielen Dank für Ihre Eingabe. Ja, jetzt macht es Sinn, weil ich mich erinnere, wie der erste Wert, der wahr ist, derjenige ist, den er bewerten wird. Ich schätze, ich muss noch etwas mehr über die truthigen Sachen lernen, denn ja, es ist einfach, aber in gewisser Weise ist es manchmal etwas verwirrend. Danke noch einmal!!

Verwandte Themen