2016-04-20 18 views
0

Warum ein leeres Array als falsch bewerten:Wahrheit für ein leeres Array

[]==false//true 

und anded mit 1 gleich wahr:

[]&&1==true//true 

und umgekehrt mit 1 gleich false:

1&&[]==false//true 

Was wirklich komisch aussieht:

[]&&5==false//true 
+2

@JeremyBanks Es tut mir leid, aber ich habe nicht für Ihren Rat fragen, ich brauche einen explaination, wenn Sie erklären kann nicht, bitte nicht downvote meine question.Thank Sie – ProllyGeek

+0

nur neugierig, wie haben Sie dieses heraus? –

+2

Weil der '=='-Operator verrückt ist und eine Semantik hat, die niemand jemals lernen sollte, weil es sie ermutigen würde, sie anstelle von etwas Sinnvollem wie' === 'zu verwenden. –

Antwort

-1

&& gibt die linke Seite, wenn es falsy ist, andernfalls gibt er die rechte Seite

true ‚gleich‘ zu 1

false wird ‚gleich‘ zu 0

ist [] ist nicht 'gleich' zu true oder false

[] ist eine truthy val ue

== hat eine höhere Priorität als && (zuerst ausgeführt),

so:

[]&&1==true =>[] && true =>true

1&&[]==false =>[] && true =>true

[]&&5==false =>[] && true =>true

+0

'[] && 1 == true' ist' [] && (1 == true) ', nicht' ([] && 1) == true'. – Oriol

Verwandte Themen