hallo,
als ich heute auf der konsole (firebug) rumgespielt habe, ist mir folgendes, für mich nicht durchdringbares, phänomen untergekommen:
ich vergleiche null, false und "" und komme zu folgenden, wie ich finde seltsamen ergebnissen:
null < false //--> false
null > false //--> false
null == false //--> false
null != false //--> true
//bis hierhin hätte ich die ausgabe noch richtig vorher gesagt. aber jetzt:
null <= false //--> true
null >= false //--> true
//das selbe mit ""
null < "" //--> false
null > "" //--> false
null == "" //--> false
null != "" //--> true
//und auch hier:
null <= "" //--> true
null >= "" //--> true
vergleiche mit undefined bringen für den durchschnittsverstand (halbwegs) erwartbare ergebnisse.
ich habe dann mal ein wenig in der dokumentation gelesen und versucht zu verstehen warum das so ist. die scheint aber für nichtinformatiker im anfängerstatus bei solchen fragen ein pdf mit einigen siegeln zu sein.
meine vermutung nach der doc-lektüre: es hat etwas damit zu tun, dass null ein objekt, false ein boolean und "" ein string ist. im vorgang des vergleichs werden die typen unterschiedlich "aufgelöst" (nennt man das so?) und eigentlich hat alles sein richtigkeit.
könnten mir das versiertere hier vielleicht erklären/einen hinweis geben?
danke und gruß,
pD