Koření z JavaScriptové zahrádky uklidní Javascriptařovy nervy…
Nálepky:
JavaScript Garden je web, který si dal za úkol shromáždit a publikovat dokumentaci k nejpodivnějším částem JavaScriptu – tedy k těm, které nejčastěji způsobují problémy, protože jsou „jiné“ než lidé běžně očekávali (či proto, že jsou, přiznejme si to, špatné). Naleznete tam například vysvětlení toho, jak vlastně doopravdy pracuje smyčka for .. in, co přesně znamená „this“ a kde (a proč) se sekne automatický doplňovač středníků.
Více též v článku na Mashable.
Všude se píše (a opakuje to i odkázaný článek), že parsery vloží středník na místo, kde by jinak došlo k chybě. To ale nevysvětluje, proč se vloží tady:
V tomto kódu přece k žádné chybě nedojde, což je v rozporu s tvrzením, které to má vysvětlovat. Zná někdo skutečný způsob, podle kterého parsery středník vkládají?
Podle odkázaného článku by měl parser vyhodnotit {a:5} jako blok kódu; proč ne jako objekt, to je mi záhadou. V tom bloku kódu bude label a: a výraz „5“.
Druhý možný výklad je v té poznámce tam: The JavaScript parser does not „correctly“ handle return statements which are followed by a new line. To by naznačovalo, že parser krom „míst, kde by mohla být chyba“ nějak specificky pracuje i s „místy kde je konec řádku“. Ale zdrojáky JS kvůli tomu procházet nebudu ;)
Norma ECMAScriptu speciálně upravuje automatické vkládání středníků u ++, –, continue, break, return a throw.
Pro úplnost – http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf, stránka 26. Vkládání středníků se řídí o něco složitějšími pravidly, než je většinou zmiňováno, zde je důležitá zejména ta část o „restricted production“.
Bodkociarka (;) sa dava automaticky aj pred koncom riadku, ak sa nemylim…
Nikoliv.
vrátí 7.