2010-12-26 4 views

Antwort

6

Alle Werte in Javascript sind entweder "truthy" oder "falsy".

  • a && b wertet zum ersten falsy Operanden
  • a || b wertet zum ersten truthy Operanden

Beiden Betreiber werden keine Operanden nach dem einem der Rückkehr bewerten.
Wenn alle Operanden nicht übereinstimmen, wird der letzte ausgewertet.

  • !a ausgewertet true wenn a falsy ist und false wenn a ist truthy.

Alle Werte sind wahrheitsgetreu mit folgenden Ausnahmen:

  • false
  • 0
  • NaN
  • ""
  • null
  • undefined
+1

Es sollte "Alle * Werte * sind wahrheitsgemäß ...", da d. H. 'Undefined' ist ein Wert, aber es gibt auch die Variable' undefined', die diesen Wert standardmäßig enthält. Auch 'NaN' ist nichts, nicht einmal sich selbst. –

+0

@Ivo: 1: Fest. 2: Das ist irrelevant; '! NaN' ist' wahr', also 'NaN' ist falsch. – SLaks

+0

Noch NaN == NaN ist falsch. Es ist also immer noch ein Sonderfall von der obigen Liste, man könnte denken, dass NaN wie jeder andere falsche Wert funktioniert. –

1

Wenn Sie diese beide von zwei Bedingungen testen wollen truthy werden dann & & verwenden:

if (isX && isY) 
{ 
    // Do something. 
} 

Wenn Sie diese eine oder beide von zwei Bedingungen testen wollen truthy dann benutzen ||:

if (isX || isY) 
{ 
    // Do something. 
} 

Die ! invertiert einen booleschen Wert (ein truthiger Wert wird falsch und umgekehrt).

+2

Was ist mit 'document.write (" Katze "||" Hund ")'? – DarkLightA

+0

@DarkLightA: Ich würde vorschlagen, dass Sie nicht so Code schreiben! Es verursacht implizite Konvertierungen und es wird jeden verwirren. –

+1

Okay, es war in MDC: D – DarkLightA

Verwandte Themen