1.15 Console metody
Výuka
Console API je nástroj pro debugging a logování v JavaScriptu. Výstupy vidíš v Developer Tools prohlížeče nebo v terminálu (Node.js).
Základní metody
| Metoda | Účel | Příklad |
|---|---|---|
console.log() |
Obecné logování | console.log('Hello') |
console.error() |
Chybové zprávy (červeně) | console.error('Error!') |
console.warn() |
Varování (žlutě) | console.warn('Warning') |
console.info() |
Informace (modře) | console.info('Info') |
console.debug() |
Debug zprávy | console.debug('Debug') |
console.table() |
Tabulka z dat | console.table([...]) |
console.group() |
Seskupení logů | console.group('Název') |
console.time() |
Měření času | console.time('label') |
console.clear() |
Vyčistění konzole | console.clear() |
JavaScript
// Základní logování
console.log('Hello, World!');
console.log('Hodnota:', 42);
console.log('Více hodnot:', 1, 2, 3);
// Objekty a pole
const user = { name: 'Jan', age: 25 };
console.log(user); // Vypíše objekt
console.log('User:', user); // S popiskem
// Template literals
const name = 'Jan';
console.log(`Uživatel: ${name}`);
// Různé úrovně
console.info('Informace'); // ℹ️ Modrá
console.warn('Varování'); // ⚠️ Žlutá
console.error('Chyba!'); // ❌ Červená
// Formátování
console.log('%c Stylovaný text', 'color: blue; font-size: 20px');
// Tabulka (super užitečné!)
const users = [
{ id: 1, name: 'Jan', age: 25 },
{ id: 2, name: 'Petra', age: 30 },
{ id: 3, name: 'Karel', age: 28 }
];
console.table(users);
// Seskupování
console.group('User Details');
console.log('Name:', 'Jan');
console.log('Age:', 25);
console.groupEnd();
// Sbalené seskupení
console.groupCollapsed('Debug Info');
console.log('Detail 1');
console.log('Detail 2');
console.groupEnd();
// Měření času
console.time('Operation');
// ... nějaký kód ...
for (let i = 0; i < 1000000; i++) {}
console.timeEnd('Operation'); // Operation: 3.2ms
// Počítadlo
console.count('Counter'); // Counter: 1
console.count('Counter'); // Counter: 2
console.count('Counter'); // Counter: 3
console.countReset('Counter');
// Assert - loguje jen když je podmínka false
console.assert(2 + 2 === 4, 'Matematika funguje'); // Nic
console.assert(2 + 2 === 5, 'Chyba v matematice!'); // Vypíše error
// Stack trace
function a() { b(); }
function b() { c(); }
function c() { console.trace('Stack'); }
a(); // Ukáže call stack
// Vyčištění konzole
console.clear();
TypeScript
// Console API je stejné jako v JavaScriptu
console.log('TypeScript log');
// S typy
interface User {
id: number;
name: string;
age: number;
}
const user: User = { id: 1, name: 'Jan', age: 25 };
console.log(user);
// Typová bezpečnost při logování
const value: string | number = 'hello';
console.log(value.toString()); // ✅ Bezpečné
// Debug complex types
type Status = 'pending' | 'success' | 'error';
const status: Status = 'pending';
console.log('Status:', status);
// Table s typovanými daty
const users: User[] = [
{ id: 1, name: 'Jan', age: 25 },
{ id: 2, name: 'Petra', age: 30 }
];
console.table(users);
// Custom logger s typy
class Logger {
static log(message: string, data?: unknown): void {
console.log(`[LOG] ${message}`, data ?? '');
}
static error(message: string, error?: Error): void {
console.error(`[ERROR] ${message}`, error);
}
}
Logger.log('Application started');
Logger.error('Failed to load', new Error('Network error'));
Rozdíl JS vs TS
JavaScript:
- Console API dostupné globálně
- Žádná typová kontrola argumentů
- Vše funguje stejně v Node.js i prohlížeči
TypeScript:
- Stejné API, ale s typovou kontrolou
- TypeScript definice pro autocomplete
- Můžeš vytvořit typované wrapper funkce
// TS poskytuje lepší autocomplete
console. // IDE nabídne všechny metody
// Můžeš vytvořit type-safe logger
function logUser(user: User): void {
console.log('User:', user.name, 'Age:', user.age);
}
V obou jazycích platí:
- Console výstupy NEPAT ŘÍ do produkce (odstraň před deploy)
- Použij linting rules pro odstranění console.log
Tip
💡 Použij console.table() pro data:
// ❌ Těžko čitelné
console.log(users);
// ✅ Přehledná tabulka
console.table(users);
💡 Destrukturování při logování:
const user = { id: 1, name: 'Jan', age: 25 };
// ❌ Nevidíš název proměnné
console.log(user);
// ✅ Vidíš název i hodnotu
console.log({ user });
💡 Conditional logging (development only):
const isDev = process.env.NODE_ENV === 'development';
if (isDev) {
console.log('Debug info');
}
// Nebo vytvořit helper
const log = (...args) => isDev && console.log(...args);
log('Only in dev');
💡 Odstranění console.log před produkcí:
// ESLint pravidlo:
// "no-console": ["error", { "allow": ["warn", "error"] }]
// Nebo build tool (Vite, Webpack) automaticky odstraní
Kvíz
Které výroky jsou pravdivé?
✅ - console.table() je skvělý nástroj pro přehledné zobrazení polí a objektů
✅ - time(label) spustí měření, timeEnd(label) ho ukončí a vypíše
❌ - Console API funguje v obou prostředích (prohlížeč i Node.js)
❌ - Console API je stejné v JS i TS (TS jen přidává typy)
🎯 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ě