Ono je to trochu složitější, jak člověk ostatně zjistí, když si zmíněnou ukázku vyzkouší ve větším množství prohlížečů; například v Opeře to dopadne „dobře“.
Ve skutečnosti je to tak, že soucasna specifikace ECMA-262 (http://www.ecma-international.org/publications/standards/Ecma-262.htm) ve sve pate edici jasne hovori o tom, ze pokud funkci parseInt neni druhy parametr (ciselna soustava) predan a pokud retezec nezacina (az na bile znaky) „0X“ (nebo „0ד), bere se jako ciselna soustava ta desitkova. Predchozi, treti edice, hovorila o tom, ze pripady zminene ve zpravicce prohlizec muze (ale nemusi!) interpretovat jako oktalova cisla. Podobne o tom mluvi popis JavaScriptu 1.5 (https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/parseInt): „If the input string begins with "0“, radix is eight (octal). Although widespread, this feature is specified as implementation dependent; always use a base for consistent results."
Jinymi slovy kazdopadne je rozumne vzdy druhy parametr uvest, nicmene neni pravda to, ze kdyz to clovek neudela, tak budou ta cisla vsude vnimana oktalove, ani na to se nelze spolehat.
Vlákno názorů ke zprávičce Když osm není osm: Pozor na vyhodnocování čísel v JavaScriptu
kkl2401 (neregistrovaný)
80.95.105.---
7. 6. 2010 10:02