1.14 Komentáře
Výuka
Komentáře jsou části kódu, které interpret/kompilátor ignoruje. Slouží pro:
- 📝 Vysvětlení kódu
- 🔍 Dokumentaci
- 🛑 Dočasné vypnutí kódu (debugging)
- 💡 Poznámky pro budoucí sebe nebo kolegy
Typy komentářů
| Typ | Syntaxe | Použití |
|---|---|---|
| Jednořádkový | // komentář |
Krátké poznámky na konci řádku |
| Víceřádkový | /* komentář */ |
Dlouhé poznámky, bloky textu |
| JSDoc | /** @param */ |
Dokumentace funkcí (TS/JS) |
JavaScript
// Jednořádkový komentář
const pi = 3.14159; // Přibližná hodnota pí
/*
Víceřádkový komentář
Může obsahovat více řádků
Užitečný pro delší vysvětlení
*/
/* Také lze použít inline */ const x = 5;
// Dočasné vypnutí kódu
// console.log('Debug info');
// debugger;
// TODO: Implementovat validaci
// FIXME: Bug při záporných číslech
// NOTE: Tato funkce je deprecated
/**
* JSDoc komentář - dokumentace funkce
* @param {string} name - Jméno uživatele
* @param {number} age - Věk uživatele
* @returns {string} Pozdrav
*/
function greet(name, age) {
return `Hello ${name}, you are ${age} years old`;
}
// Komentáře pro vysvětlení složité logiky
function complexCalculation(x) {
// Přepočet z Fahrenheita na Celsia
// Vzorec: C = (F - 32) × 5/9
return (x - 32) * (5 / 9);
}
TypeScript
// Jednořádkové komentáře jsou stejné jako v JS
const count: number = 0;
/*
Víceřádkové komentáře
fungují identicky
*/
/**
* JSDoc v TypeScriptu poskytuje dodatečnou dokumentaci
* k už existujícím typům
*
* @param name - Jméno uživatele (TS už ví, že je to string)
* @param age - Věk (TS už ví, že je to number)
* @returns Formátovaný pozdrav
* @example
* greet('Jan', 25); // "Hello Jan, you are 25 years old"
*/
function greet(name: string, age: number): string {
return `Hello ${name}, you are ${age} years old`;
}
// TS ignoruje komentáře při kompilaci
// Tyto komentáře se objeví v zkompilovaném .js
/**
* Interface s dokumentací
*/
interface User {
/** Unikátní ID uživatele */
id: number;
/** Celé jméno */
name: string;
/** Email (volitelný) */
email?: string;
}
// Type assertion s vysvětlením
const data = JSON.parse(jsonString) as User; // Safe, ověřeno validací
Rozdíl JS vs TS
JavaScript:
- Pouze pro dokumentaci a poznámky
- JSDoc může pomoci IDE s autocomplete
- Žádná kontrola typů z komentářů
TypeScript:
- JSDoc je méně potřebný (typy jsou v kódu)
- Používá se pro dodatečnou dokumentaci
- Popisuje "proč" místo "co" (to je v typech)
// JS - typy v komentářích (JSDoc)
/**
* @param {string} name
* @param {number} age
*/
function greetJS(name, age) { }
// TS - typy v kódu, komentář vysvětluje "proč"
/**
* Pozdraví uživatele a zaznamená do analytics
*/
function greetTS(name: string, age: number): void { }
Tip
💡 Best practices pro komentáře:
// ❌ Špatné - popisuje co kód dělá (zbytečné)
// Zvýší counter o 1
counter++;
// ✅ Dobré - vysvětluje proč
// Počítáme retry pokusy pro rate limiting
counter++;
💡 Komentuj "proč", ne "co":
// ❌ Zbytečný komentář
// Vytvoř nové pole
const numbers = [];
// ✅ Užitečný komentář
// Cache pro memoizaci - výrazně zrychluje opakované volání
const cache = new Map();
💡 TODO/FIXME značky:
// TODO: Přidat error handling
// FIXME: Memory leak při velkých datech
// HACK: Dočasné řešení - refaktorovat v v2.0
// NOTE: API změní formát od 1.1.2024
// OPTIMIZE: Použít binary search místo lineárního
💡 Dočasné vypnutí:
// console.log('Debug:', data);
// debugger;
// Pro větší bloky:
/*
console.log('Start');
const result = heavyOperation();
console.log('End:', result);
*/
Kvíz
Které výroky jsou pravdivé?
❌ - Komentáře jsou ignor ované při běhu, nemají vliv na výkon
✅ - /* komentář */ je správná syntaxe pro víceřádkové komentáře
❌ - Komentáře jsou stále užitečné pro vysvětlení "proč", ne jen "co"
✅ - IDE čte JSDoc a nabízí lepší autocomplete a nápovědu
🎯 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ě