Programovací jazyk JavaScript (později standardizovaný jako ECMAScript) sám o sobě toho moc neumí * – vlastně kromě objektů pro práci s řetězci, poli a matematikou toho v něm (zdánlivě) o moc víc není. Především postrádá pro ostatní jazyky tak typický (a popravdě nepostradatelný) vstup a výstup.
Na druhou stranu tato „lehkotonážnost“ ho činí takřka ideálním pro použití jako skriptovaci jazyk uvnitř složitějších softwarových řešení (tzv. embedded language). Uvnitř těchto nasazení pak získává mimo jiné i jinak chybějící vstup a výstup.
Prvním a dodnes asi nejtypičtějším takovýmto jeho nasazením jsou webové prohlížeče a obecně programování na webu.
JavaScript patří mezi Céčkem inspirované, co se syntaxe týká, ale svými vlastnostmi je z úplně jiné rodiny – vždyť kromě třebas tak exotické věci jako uzávěry podporuje dokonce i dědičnost pomocí prototypů.
Někdy snad napíšu nějaký stručný přehled jeho vlastností v češtině, do té doby vás však odkáži na skvělý přehled A re-introduction to JavaScript (JS tutorial), se kterým nemá vůbec cenu se pokoušet soupeřit.
Aby mohl JavaScript fungovat jako něco víc než jen obyčejná kalkulačka, k jeho několika málo objektům se uvnitř prohlížeče přidává kompletní reprezentace veškerých náležitostí správy okna programu a především pak objektová reprezentace zobrazeného dokumentu (typicky HTML-stránky).
Kdybych měl nahodit nějaké číslo, tak bez DOMu má JavaScript velikost n, s obecným (tedy xmlčkovým) DOMem řekněme třebas 10n a připočteme-li ještě DOMovské API specifické přímo pro HTML-elementy, nabobtná nám velikost asi tak ještě třikrát.
Je tedy zřejmé, že JavaScript webu je o řád jiný typ programování než JavaScript samotný – API webových stránek a s tím souvisejících služeb (jako třebas obsluha HTTP-protokolu) je prostě násobně větší, než API vlastního jazyka.
Při práci s JavaScriptem je třeba míti na paměti následující:
Výsledkem je jazyk, který dokáže ve stejnou chvíli vypadat velmi moderně, ale zároveň vám podrazit nohy drobným přehlédnutím nějaké zastaralé obskurnosti.* Asi není divu, že velmi často se dnes programy pro web píší v jiném jazyce, který se teprve poté automaticky přeloží do JavaScriptu (a v blízké budoucnosti možná rovnou do WebAssembly).
"0012"
…