2016-07-14 27 views
0

Hier ist die Funktion, mit der ich arbeite. Ich fand es eigentlich in React Native documentation:Rückgabe && Ausdruck von JS-Funktion

var testFunction = function(word) { 
    return word && ''; 
} 

Hier ist, wie ich diese Funktion bin mit:

var testWord = testFunction("Alex"); 

Der Endwert von testWord kehrte von testFunction ist "".

Ich hätte erwartet, dass der zurückgegebene Wert entweder true oder false ist, als das Ergebnis der && Ausdruck. Der Wert ist jedoch eine Zeichenfolge mit dem Wert "".

Könnte jemand die Logik dahinter erklären?

+1

bitte verwandten Thema finden Sie unter [http://stackoverflow.com/questions/17200315/logical-operator-and-two-strings-in-javascript](http://stackoverflow.com/questions/17200315/ logical-operator-und-zwei-strings-in-javascript). Sie können auch eine klare Erklärung [hier] sehen (https://en.wikipedia.org/wiki/Short-circuit_evaluation) – morels

+0

@morels Kurzschließen und Zurückgeben eines Operanden anstelle eines Booleschen sind ziemlich unabhängig. – deceze

+0

'Return-Wort && '';' ist eine sc Auswertung und in verlinkten Wiki-Seite können Sie genau lesen, dass der erwartete Wert ist die, die von OP 'JavaScript' erhalten wird, Operanden:' &, | ', erwartet vaue:' &&, || Letzter Wert' – morels

Antwort

4

Die && wertet als die rechte Seite, wenn die LHS wahr ist, andernfalls wird es als die LHS ausgewertet. Es wird nicht als Boolean ausgewertet.

0 && 1 // 0 because 0 is not true 
1 && 0 // 0 because 1 is true 
1 && 2 // 2 because 1 is true 
+2

Ist das kein Duplikat von http://stackoverflow.com/questions/5417969/why-do-logical-operators-and-return-object-and-not-oolean-result? – evolutionxbox

+0

Vielen Dank, das wusste ich nicht –