Interessante JavaScript Details

Etwas gebasteltes mit JavaScript brachte mich gestern zum verzweifeln:

xy = parseInt( 'asd' );
alert( xy ); // NaN
alert( typeof( xy ) ); // number - WTF?
if( xy == NaN ) { alert('NaN') }; // nothing
if( xy == 'NaN' ) { alert('NaN') }; // nothing

Richtige Lösung:

if( isNaN( xy ) ) { alert('NaN') }; // NaN

Dann muss ich aber den Typeconvert immer noch machen. Vorher oder nachher is eigentlich wurst, aber ich kann den convert ja in den (oben optionalen) else-Zweig packen oder performancemäßig auf

if( !isNaN( xy ) ) { z = parseInt( xy ); };

umstellen. Allerdings gibts hier dann natürlich wieder andere Dinge, z.B. sollte z vorher initialisiert sein…