Meine Herren,
"abc" < "def" => true, weil »a« eine kleinere Unicode-Nummer hat als »b«.
Und damit sind String-Vergleiche ziemlich unbrauchbar, weil "ä" < "b" => false, was für die deutsche Sprache nicht stimmt. In anderen Sprachen sind Umlaute aber tatsächlich hinter z eingeordnet.
Dem hat sich das TC39 auch inzwischen angenommen: http://www.2ality.com/2013/09/ecmascript-i18n-api.html
Implementationen sind aber mau.