Pixylophone - komentáře
Komentáře (od nejstarších po nejnovější)
Komentáře k příspěvku Srpnová chyba Javascriptu
[5] Vložil(a): Milan, 2005-08-02, 14:42 • Solo | Mute • Čtenáři: ---
Tahle věc je docele známá, nejvíc se to plete, když píšete ve více jazycích. V Javě je parseint taky a tam je parseint(x) úplně totéž jako parseint(x, 10), na nic si hrát nezkouší. V PHP je intval, tam je desítková soustava taky default. Jenom javascript se snaží být chytřejší než programátor a často to špatně dopadá. Je to jednoznačně chyba návrhářů jazyka.
[8] Vložil(a): Pavel Šrubař [web], 2005-08-02, 15:51 • Solo | Mute • Čtenáři: 
Bodo, interpretovat dekadické číslo začínající nulou jako oktalové bych nenazýval chybou, ale spíše nedostatkem představivosti a klasického vzdělání návrhářů jazyka. Stejní dementi zřejmě navrhovali i shell Windows a škaredě tím zkomplikovali datumovou aritmetiku v dávkových souborech. Pro ilustraci si zkuste v konzole zadat příkaz
SET /A 010 + 4.
[10] Vložil(a): Zerryk, 2005-08-02, 16:21 • Solo | Mute • Čtenáři:

Nemám rád textovou reprezentaci datumu, protože si jej každý reprezentuje po svém. Hádejte jak daný program požaduje, či jiný zdroj vstupních dat obsahuje, to své Y, M, D, jestli to náhodou není PM atd... Nějaké potíže s parseInt() jsou vedle toho marginální záležitost. Vrchol umělé inteligence představuje MS OleDB textový ovladač, který je schopen udělat datum i z desetinného čísla :-)
[12] Vložil(a): Michal Kubeček, 2005-08-02, 17:12 • Solo | Mute • Čtenáři: ---
Ad [10]: asi je to profesionální deformace, ale konverze reálného čísla na datum a čas mi připadá daleko přirozenější a jednoznačnější než konverze obecného řetězce. Stačí definovat jednotku (sekunda bude nejvhodnější) a počátek (nejlépe osvědčený 1. leden 1970 0:00:00 UTC) a není co řešit.
[15] Vložil(a): Kit [web], 2005-08-02, 18:01 • Solo | Mute • Čtenáři: ---
[9],[14]: V Linuxu příkazy ping 192.168.0.10 a ping 192.168.0.010 také dávají různé výsledky. Je to standardní chování odvozené z jazyka C.
Podobně příkazy
let a=010; echo "$a"
výsledek -> 8
let a=0x10; echo "$a"
výsledek -> 16
let a=08
bash: let: a=08: value too great for base (error token is "08")
[16] Vložil(a): Tomáš Tintěra [web], 2005-08-03, 10:01 • Solo | Mute • Čtenáři: ---
Odborník je člověk, který již uděla všeechny v oboru obvyklé chyby. Toto je jedna z těch klasických vzniklých záludností JScriptu. Vsadím se s Vámi o flašku, že takhle přesně je to normě. Čili to není na libovůli implementátora.
[17] Vložil(a): mol, 2005-08-03, 11:09 • Solo | Mute • Čtenáři: ---
[16] No právě tohle norma nechává na libovůli implementátora. Byť ta původní Netscapácká 1.5 to má jako deprecated a ECMA to také doporučuje nedělat.
Podle mne to vzniklo tím, že první implementace používala sscanf("%i") v C nebo decode() v Javě a nebo se aspoň nechala zápisem čísel v C/Javě inspirovat.
[19] Vložil(a): Michal Kubeček, 2005-08-05, 00:30 • Solo | Mute • Čtenáři: ---
Ad [18]: ale nedělá, to reálné číslo prostě vyjadřuje počet sekund, které uplynuly od zvoleného počátečního časového okamžiku. Že určitý lokální čas může nastat dvakrát (nebo vůbec), je sice nepříjemné, ale konverzi z čísla na časový údaj to nijak nekomplikuje (jedině opačnou).
[21] Vložil(a): Klony, 2005-08-09, 00:04 • Solo | Mute • Čtenáři:

Ahoj kluci, jsem prekvapena, jak tomu rozumite. Nestavil by se nektery z vas u me na kafe a neupravil mi to, co popisujete ? A taky - aby mi zprovoznil pretahovani fotek z mobilu do PC. Nejde mi natahnout SW z IN pro mobil do PC. Diky predem.
[1] Vložil(a): Petr, 2005-08-02, 11:09 • Solo | Mute • Čtenáři:

Hm, takže ta chyba by měla být i zářiová :-)