Struppi: JS Typprobleme

Beitrag lesen

Aber das ist schon seltsam:
alert( "\r\n"==false ); =>true

Hier wird ein String mit einem bool'schen Wert verglichen.

Ja, und der Vergleich ergibt true, d.h. "\r\n" wird zu false (nur Whitespace), und somit
false==false =>true

Nein, bei einem Vergleich wird jeder Wert, der kein Leerstring ist, zu einem true:
javascript:alert('\n'?true:false); => true

Bei einer Umwandlung sieht es anders aus.

alert( !!"\r\n"==false ); =>false, aber wieso?

Hier zwei Bool'sche werte.

"\r\n" wird zu true

Aber oben war es doch false...

Oben wurde er nicht explizit umgewandelt.

Verstehe ich nicht.

Die Frage ist wohl, wann ein Wert umgewandelt wird, also welcher Operator zuerst greift.

Struppi.