Don P: auto reload auswählen

Beitrag lesen

Aber aber, Felix!

if (wert) {...}

Hier wird [...] ein String mit "0" (auch mehrere Nullen), eine "echte" Zahl null (oder negativ), [...] ein leeres Objekt [...] als _nicht_ zutreffend erkannt.

Das stimmt nicht.

Dagegen wird eine Zahl größer null, ein nicht leerer String (der nicht ausschließlich aus 0-Ziffern besteht!), irgendein Objekt mit mindestens einer Eigenschaft oder Methode [...] als zutreffend erkannt.

Das stimmt so auch nicht.

Wer hat dir nur diese falschen Aussagen auch noch als "fachlich hilfreich" markiert?
Beim Auswerten einer Zeichenkette als wahr/falsch mit if (wert) {...} gilt vielmehr folgendes:

• jeder nicht leere String ergibt true – auch wenn er nur Nullen enthält
• jedes existierende Objekt ergibt true – auch wenn es leer ist, d.h. keine Eigenschaften hat
• jede "echte" Zahl ungleich 0 ergibt true – auch wenn sie negativ ist

Beweis:

if ( "0" ) alert( !!"0" ); /* true */  
if ( {} )  alert( !!{} );  /* true */  
if ( -1 )  alert( !!-1 );  /* true */

Gruß, Don P