Domů O mně Služby Portfolio Učím Blog Kontakt
← Zpět na učím

1.11 Aritmetické operátory

Výuka

Aritmetické operátory slouží pro matematické výpočty.

Operátor Název Příklad Výsledek
+ Sčítání 5 + 2 7
- Odčítání 5 - 2 3
* Násobení 5 * 2 10
/ Dělení 5 / 2 2.5
% Modulo (zbytek) 5 % 2 1
** Mocnina 5 ** 2 25
++ Increment x++ x + 1
-- Decrement x-- x - 1

JavaScript

// Základní operace
console.log(10 + 5);   // 15
console.log(10 - 5);   // 5
console.log(10 * 5);   // 50
console.log(10 / 5);   // 2
console.log(10 % 3);   // 1
console.log(2 ** 3);   // 8

// Modulo (zbytek po dělení)
console.log(10 % 3);   // 1
console.log(7 % 2);    // 1 (liché číslo)
console.log(8 % 2);    // 0 (sudé číslo)

// Modulo se záporným číslem
console.log(-5 % 2);   // -1 (znaménko dividendy)
console.log(5 % -2);   // 1

// Mocnina
console.log(2 ** 8);      // 256
console.log(10 ** 3);     // 1000
console.log(2 ** 0.5);    // 1.414... (druhá odmocnina)

// Priorita operátorů
console.log(2 + 3 * 4);    // 14 (násobení má přednost)
console.log((2 + 3) * 4);  // 20 (závorky mají nejvyšší prioritu)

// Increment a Decrement
let x = 5;
x++;        // x = 6 (postfix)
++x;        // x = 7 (prefix)
console.log(x);  // 7

let y = 5;
console.log(y++);  // 5 (vrátí původní, pak zvýší)
console.log(y);    // 6

console.log(++y);  // 7 (zvýší, pak vrátí)

// Compound assignment (zkrácený zápis)
let a = 10;
a += 5;  // a = a + 5 → 15
a -= 3;  // a = a - 3 → 12
a *= 2;  // a = a * 2 → 24
a /= 4;  // a = a / 4 → 6
a %= 4;  // a = a % 4 → 2
a **= 3; // a = a ** 3 → 8

// Unární mínus
const num = 5;
console.log(-num);  // -5
console.log(-(-num)); // 5

TypeScript

// Operátory fungují stejně, TS kontroluje typy
const a: number = 10;
const b: number = 5;

const sum: number = a + b;     // ✅ 15
const diff: number = a - b;    // ✅ 5
const product: number = a * b; // ✅ 50

// TS hlídá, že pracuješ s čísly
// const result: number = a + '5';  // ❌ Error (string + number)

// Funkce s aritmetikou
function calculate(x: number, y: number): number {
  return (x + y) * 2;
}

console.log(calculate(5, 3));  // 16

// Type narrowing nepomáhá u aritmetiky
// (operátory vždy vrací number)
function add(a: number, b: number) {
  return a + b;  // návratový typ: number (inference)
}

Rozdíl JS vs TS

// JavaScript - žádná kontrola typů
const result = 5 + '5';  // "55" (string konkatenace!)

// TypeScript - kontrola typů
const result: number = 5 + 5;  // ✅ 10
// const result: number = 5 + '5';  // ❌ Error

JavaScript má "type coercion":

console.log(5 + '5');   // "55" (string)
console.log(5 - '5');   // 0 (number)
console.log(5 * '2');   // 10 (number)

TypeScript to zabrání:

const a: number = 5;
const b: string = '5';
// const c = a + b;  // ❌ Error: Operator '+' cannot be applied

Tip

💡 Modulo pro sudá/lichá čísla:

function isEven(n) {
  return n % 2 === 0;
}

console.log(isEven(4));  // true
console.log(isEven(5));  // false

💡 Pozor na dělení nulou:

console.log(5 / 0);   // Infinity
console.log(-5 / 0);  // -Infinity
console.log(0 / 0);   // NaN

💡 Mocnina vs Math.pow:

// Nové (ES2016+)
console.log(2 ** 3);  // 8

// Staré
console.log(Math.pow(2, 3));  // 8

💡 Prefix vs Postfix:

let x = 5;

// Postfix (vrátí pak zvýší)
console.log(x++);  // 5
console.log(x);    // 6

// Prefix (zvýší pak vrátí)
let y = 5;
console.log(++y);  // 6
console.log(y);    // 6

Kvíz

Které výroky jsou pravdivé?

- % vrací zbytek: 10 % 3 = 1

- ** je mocnina: 2 ** 3 = 8 (ne 6)

- Liší se kdy vrací hodnotu (prefix vs postfix)

- TS kontroluje, že operandy jsou number

🎯 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 →

Připraveni začít?

Zaregistrujte se a získejte přístup ke všem dílům tohoto seriálu

Kontaktujte mě

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


Struktura lekcí (souborový strom)

06. Typescript specifika
  • v přípravě
08. Moduly tridy
  • v přípravě
09. React zaklady
  • v přípravě
10. React hooks
  • v přípravě
12. Nextjs server
  • v přípravě
13. Databaze auth
  • v přípravě
14. Nextjs pokrocile
  • v přípravě