TOPlist

Pixylophone - komentáře

Komentáře (od nejstarších po nejnovější)

Komentáře k příspěvku Srpnová chyba Javascriptu


[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á :-)

[2] Vložil(a): Arcao [web], 2005-08-02, 11:43 Solo | MuteČtenáři:  + + +

Diky, za upozorneni. :)

napriklad me se projevuje v:
http://www.arcao.com/apps/test.html

tu jsem jen tak neco skousel s AJAXem..

[3] Vložil(a): Boda, 2005-08-02, 12:04 Solo | MuteČtenáři:  + + +

Akorat nevim, jestli tomu rikat "Chyba Javascriptu", nebo "Chyba v mym javascript kodu" ;-))

[4] Vložil(a): Milan, 2005-08-02, 12:13 Solo | MuteČtenáři: ---

Ano taky jsem jednou na to narazil - od tech dob zasadne pisu vsude parseInt(x, 10). Docela blbe se to hleda, kdyz si clovek poradne neprecte manual.

[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.

[6] Vložil(a): paranoiq, 2005-08-02, 15:03 Solo | MuteČtenáři: ---

úžasné. děkuji. zrovinka dnes jsem tuto chybku řešil. Opera si na nic nehraje a zpracovává to v desítkové soustavě, ale IE a FF jsou chytřejší než já :/

[7] Vložil(a): dgx [web], 2005-08-02, 15:32 Solo | MuteČtenáři: ---

Jó programátor, ten tvrdej chleba má :-)

Díky za dobrý tip!

[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.

[9] Vložil(a): dgx [web], 2005-08-02, 16:05 Solo | MuteČtenáři:  + + +

Nebo ping 192.168.0.10 vs ping 192.168.0.010

[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 :-)

[11] Vložil(a): Michal Kubeček, 2005-08-02, 17:08 Solo | MuteČtenáři:  +

Ad [8]: nedostatek klasického vzdělání? Spíše naopak. Tento standard pro zápis číselných konstant (31 == 037 == 0x1F) se v C používá už přes třicet let…

[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.

[13] Vložil(a): Milan, 2005-08-02, 17:14 Solo | MuteČtenáři: ---

Ad [11] ano jako zapis konstant do zdrojoveho kodu v ruznych soustavach je to klasika. Problem je, ze to v tom Javascriptu funguje v ramci promennych - to v tom C ve funkci scanf() myslim ne.

[14] Vložil(a): Michal Kubeček, 2005-08-02, 17:15 Solo | MuteČtenáři: ---

Ad [9]: a co teprve když člověk zjistí, že '192.168.0010' je totéž jako '192.168.0.010'… :-)

[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.

[18] Vložil(a): emilk [web], 2005-08-04, 17:11 Solo | MuteČtenáři: ---

[12] cislo <-> datum
moc jednoznacne neni,
letni cas z toho dela peknou paseku

[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).

[20] Vložil(a): Leo, 2005-08-05, 13:54 Solo | MuteČtenáři: ---

To jsou v JavaScriptu mnohem vetsi zrady, Leo

[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.

[22] Vložil(a): Petroleum, 2005-08-10, 13:59 Solo | MuteČtenáři: ---

Klony mas +5 bodov.


Váš názor

Přidat nový komentář

Váš komentář

Přidávání komentářů k tomuto příspěvku již bylo ukončeno.

Chcete-li autorovi přesto sdělit nějakou podstatnou informaci, která se příspěvku týká, kontaktujte jej e-mailem.



 RSS 0.9x  Export  RDF  Export  RSS 0.9x  Komentáře  TXT  Komentáře  XHTML 1.0  Validate  W3C  CSS 2.1  Em-web  Resizable  W4D  90% dogmatic

Vygenerováno: [stránka generována dynamicky]