Uživatelské nástroje

Nástroje pro tento web


js

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

Související: frontend, I/O, Linux, Bash

js.txt · Poslední úprava: autor: admin