1.1 Úvod do JavaScriptu a TypeScriptu
Výuka
Co je JavaScript?
JavaScript (JS) je programovací jazyk původně vytvořený pro webové prohlížeče. Dnes běží všude:
- 🌐 Prohlížeče - interaktivní webové stránky
- 🖥️ Servery - Node.js pro backend aplikace
- 📱 Mobilní aplikace - React Native, Ionic
- 🖥️ Desktop aplikace - Electron (VS Code, Discord)
Vlastnosti JavaScriptu:
- ✅ Dynamicky typovaný (typy se kontrolují za běhu)
- ✅ Interpretovaný (nemusíš kompilovat)
- ✅ Multi-paradigma (OOP, funkcionální)
- ✅ Single-threaded s event loop
Co je TypeScript?
TypeScript (TS) je nadstavba JavaScriptu vytvořená Microsoftem. Přidává statické typy.
TypeScript = JavaScript + Types
Vlastnosti TypeScriptu:
- ✅ Staticky typovaný (typy se kontrolují při kompilaci)
- ✅ Kompilovný (TS → JS)
- ✅ Zpětně kompatibilní (každý JS je validní TS)
- ✅ Volitelný (můžeš typy přidat postupně)
Proč TypeScript?
| Výhoda | Popis |
|---|---|
| 🛡️ Bezpečnost | Chyby vidíš před spuštěním |
| 🚀 Produktivita | Lepší autocomplete v editoru |
| 📚 Dokumentace | Typy jsou živá dokumentace |
| 🔧 Refaktoring | Bezpečnější změny kódu |
| 👥 Týmová práce | Jasné rozhraní mezi moduly |
JavaScript
// JavaScript - bez typů
function greet(name) {
return "Hello, " + name;
}
const message = greet("Jan");
console.log(message); // "Hello, Jan"
// Může nastat chyba za běhu:
greet(123); // "Hello, 123" (funguje, ale možná nechceš)
greet(); // "Hello, undefined" (chyba!)
// Objekty bez struktury
const user = {
name: "Jan",
age: 25
};
user.email = "jan@example.com"; // OK, přidá property
user.Age = 26; // OK, ale je to překlep! (mělo být 'age')
TypeScript
// TypeScript - se typy
function greet(name: string): string {
return "Hello, " + name;
}
const message = greet("Jan");
console.log(message); // "Hello, Jan"
// TypeScript odchytí chyby:
// greet(123); // ❌ Error: Argument of type 'number' is not assignable
// greet(); // ❌ Error: Expected 1 arguments, but got 0
// Objekty se strukturou (interface)
interface User {
name: string;
age: number;
email?: string; // Volitelné
}
const user: User = {
name: "Jan",
age: 25
};
user.email = "jan@example.com"; // ✅ OK
// user.Age = 26; // ❌ Error: Property 'Age' does not exist
user.age = 26; // ✅ OK
Rozdíl JS vs TS
| JavaScript | TypeScript |
|---|---|
| Typy za běhu (runtime) | Typy při kompilaci (compile-time) |
| Chyby objevíš při spuštění | Chyby vidíš v editoru |
| Rychlejší start (žádná kompilace) | Pomalejší start (musíš kompilovat) |
| Flexibilnější | Bezpečnější |
.js soubory |
.ts soubory → kompiluje se na .js |
Workflow:
JavaScript:
Napíšeš kód (.js) → Spustíš → Chyba v runtime
TypeScript:
Napíšeš kód (.ts) → Kompilace → Chyby se objeví → Opravíš → .js soubor → Spustíš
Tip
💡 Kdy použít JavaScript:
- Rychlé prototypy
- Malé skripty
- Učení se základů
💡 Kdy použít TypeScript:
- Velké projekty
- Týmová práce
- Produkční aplikace
- React/Next.js projekty (doporučeno)
💡 Můžeš začít s JS a přejít na TS postupně:
// 1. Začni s .js
function add(a, b) { return a + b; }
// 2. Přejmenuj na .ts a přidej typy
function add(a: number, b: number): number {
return a + b;
}
💡 TypeScript je JavaScript: Vše, co se naučíš v JS, použiješ i v TS. TS jen přidává bezpečnostní síť.
Kvíz
Které výroky jsou pravdivé?
❌ - TypeScript je nadstavba JS, každý validní JS je validní TS
✅ - TS kontroluje typy při kompilaci, ne za běhu
❌ - Každý JS kód je validní TS kód (zpětná kompatibilita)
✅ - TS se kompiluje (transpiluje) na čistý JavaScript
🎯 Závěrečný projekt
Po dokončení všech 8 dílů vytvoříte jednoduchou Todо aplikaci v čistém JavaScriptu. Naučíte se, jak aplikovat vše, co jste se naučili, na reálný projekt.
Zobrazit podrobnosti projektu →Informace o seriálu
Obtížnost
Délka
Cca 480 minut
Počet videí
8 videí + projekty
Certifikát
Po dokončení obdržíte certifikát
Lekce v této sekci
- 1.1 Úvod do JavaScriptu a TypeScriptu
- 1.2 Nastavení prostředí
- 1.3 První program
- 1.4 Proměnné: var, let, const
- 1.5 Datové typy - přehled
- 1.6 String (řetězce)
- 1.7 Number (čísla)
- 1.8 Boolean (pravda/nepravda)
- 1.9 Null a Undefined
- 1.10 Type Inference vs Annotations
- 1.11 Aritmetické operátory
- 1.12 Porovnávací operátory
- 1.13 Logické operátory
- 1.14 Komentáře
- 1.15 Console metody
Struktura lekcí (souborový strom)
- 1.1 Úvod do JavaScriptu a TypeScriptu
- 1.2 Nastavení prostředí
- 1.3 První program
- 1.4 Proměnné: var, let, const
- 1.5 Datové typy - přehled
- 1.6 String (řetězce)
- 1.7 Number (čísla)
- 1.8 Boolean (pravda/nepravda)
- 1.9 Null a Undefined
- 1.10 Type Inference vs Annotations
- 1.11 Aritmetické operátory
- 1.12 Porovnávací operátory
- 1.13 Logické operátory
- 1.14 Komentáře
- 1.15 Console metody
- 03.01 Deklarace funkce
- 03.02 Function Expression
- 03.03 Arrow Functions
- 03.04 Parametry a argumenty
- 03.05 Return hodnoty
- 03.06 Výchozí parametry
- 03.07 Rest parametry
- 03.08 Co je Scope
- 03.09 Lexikální Scope
- 03.10 Řetězec Scope
- 03.11 Globální Scope
- 03.12 Životní Cyklus Proměnných
- 03.13 Omezení Scope
- 03.14 Použití Closures
- 03.15 Callback funkce
- 03.16 Higher-order Functions
- 03.17 IIFE
- 03.18 Void funkce
- 03.19 Rekurze
- v přípravě
- v přípravě
- v přípravě
- v přípravě
- 01 — Co je Next.js
- 02 — Vytvoření projektu
- 03 — Struktura projektu (app/)
- 04 — Page komponenty (page.js / page.tsx)
- 05 — Layout komponenty (layout.js / layout.tsx)
- 06 — File-based routing
- 07 — Dynamické routy ([id]/page.js)
- 08 — Link komponenta (navigace)
- 09 — Image komponenta (next/image)
- 10 — Metadata (title, description, Open Graph)
- 11 — Loading UI (loading.js / loading.tsx)
- 12 — Error handling (error.js / error.tsx)
- 13 — Not Found (not-found.js / not-found.tsx)
- v přípravě
- v přípravě
- v přípravě