Obsah
JavaScript (JS)
JavaScript je multiparadigmatický jazyk (podporuje imperativní, objektově orientované i funkcionální programování). Je standardizován pod názvem ECMAScript. Na rozdíl od C++ nebo C, které se kompilují dopředu, JavaScript je obvykle kompilován metodou JIT (Just-In-Time) přímo v běhovém prostředí.
1. Historie a Evoluce
- 1995: Brendan Eich vytvořil jazyk za pouhých 10 dní pro prohlížeč Netscape. Původně se jmenoval Mocha, pak LiveScript a nakonec JavaScript (z marketingových důvodů kvůli popularitě Javy).
- 2009: Vznik Node.js umožnil spouštět JS i na serveru, což změnilo pravidla hry.
- 2015 (ES6): Zásadní aktualizace, která přinesla moderní syntaxi (třídy, šipkové funkce, sliby - promises).
2. Jak JavaScript funguje?
JavaScript běží v tzv. JavaScript Engine, což je program, který kód interpretuje a optimalizuje. Nejslavnějším příkladem je V8 (v prohlížeči Chrome a Node.js).
Event Loop (Smyčka událostí)
JavaScript je jednovláknový, což znamená, že může dělat jen jednu věc naráz. Přesto zvládá tisíce operací současně díky asynchronnímu modelu a Event Loop.
1. **Call Stack:** Zde se ukládají funkce, které se právě vykonávají. 2. **Web APIs / Node APIs:** Dlouhotrvající operace (např. načítání dat ze sítě) se předají prohlížeči/systému. 3. **Callback Queue:** Jakmile je operace hotová, výsledek čeká ve frontě. 4. **Event Loop:** Pokud je Stack prázdný, přesune úkol z fronty do Stacku.
3. Ekosystém JavaScriptu
JavaScript má největší repozitář knihoven na světě – npm (Node Package Manager).
Frontend
JS ovládá prohlížeč prostřednictvím DOM (Document Object Model), což je stromová struktura HTML stránky.
- Frameworky: React, Vue.js, Angular (viz článek frontend).
Backend (Node.js)
Umožňuje psát serverovou logiku v JS. Je extrémně rychlý pro I/O operace, jako jsou chatovací aplikace nebo streamování dat.
Mobilní a Desktopové aplikace
- React Native: Tvorba mobilních aplikací pro iOS a Android jedním kódem.
- Electron: Tvorba desktopových aplikací (např. VS Code, Discord, Slack) pomocí webových technologií.
4. TypeScript: "Nástupce" JavaScriptu
Protože je JS dynamicky typovaný (proměnná může změnit typ z čísla na text), u velkých projektů často dochází k chybám. TypeScript (od Microsoftu) přidává do JS statické typování. Kód se pak pomocí transpilátoru (např. Babel nebo TSC) přeloží zpět do čistého JavaScriptu.
5. Příklad kódu
Asynchronní načítání dat (Moderní ES6+):
const fetchUser = async (id) => {
try {
const response = await fetch(`https://api.example.com/users/${id}`);
const data = await response.json();
console.log(`Uživatel: ${data.name}`);
} catch (error) {
console.error("Chyba při stahování dat:", error);
}
};
fetchUser(1);
Srovnání: JavaScript vs. Ostatní
| Vlastnost | JavaScript | Python | C++ |
|---|---|---|---|
| Rychlost | Vysoká (JIT) | Střední (Interpretr) | Maximální (Nativní) |
| Typování | Dynamické | Dynamické | Statické |
| Vlákna | Jedno (Event Loop) | Více (ale s GIL) | Plná podpora vláken |
| Hlavní užití | Web, Fullstack | AI, Data Science | Systémy, Hry |
—
Víte, že? Navzdory podobnému názvu nemá Java a JavaScript skoro nic společného. Je to jako rozdíl mezi slovy „Auto“ a „Automat“.
