Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Odpověď na názor

Odpovídáte na názor ke zprávičce Když osm není osm: Pozor na vyhodnocování čísel v JavaScriptu.

kkl2401
kkl2401 (neregistrovaný) 80.95.105.---
7. 6. 2010 10:02

Upřesnění

celé vlákno

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.

   
Chcete přispět jako registrovaný uživatel? Přihlaste se ke svému účtu.
Ochrana proti spamovacím robotům. Odpovězte prosím na následující otázku: Jaký je letos rok?
 

Pravidla pro diskutující: Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s pravidly.

Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.

Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul