IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 23 - Práce s čísly a knihovna Math v JavaScriptu

Dnes se v JavaScript tutoriálu podrobně podíváme na práci s čísly a představíme si knihovnu Math, která poskytuje užitečné matematické funkce.

Práce s čísly

S čísly lze samozřejmě provádět většinu nám známých základních operací jako sčítání, odečítání, násobení a dělení. Použijeme k tomu známé operátory +, -, * a /. Měli bychom již umět také vypočítat zbytek po celočíselném dělení, takzvané modulo, pro které využíváme operátor %.

Procenta se na české klávesnici napíší pomocí Shift a následující klávesy:

Procento - Základní konstrukce jazyka JavaScript

Kromě klasických operátorů si připomeňme operátory unární. Zápis i++ použijeme zejména ve for cyklu, v němž takto zvyšujeme hodnotu proměnné i o 1. Kdybychom chtěli tuto hodnotu naopak snižovat, použijeme zápis i--. Existují také varianty ++i a --i, které lze využít při výpisu aktuální hodnoty proměnné. Daná hodnota se nejprve vypíše a ihned poté dojde k jejímu navýšení nebo snížení.

Nakonec zmiňme operátory přiřazení s operací – +=, -=, *= a další. Ty umožňují zkrátit například zápis a = a + 5; na a += 5;. Obdobně lze takto hodnotu proměnné odečítat, násobit nebo dělit.

Pojďme si ale ukázat další možnosti, jak pracovat s čísly.

Klasický a exponenciální zápis čísel

Čísla lze zapsat dvěma způsoby. Klasickým zápisem, jak jsme zvyklí. Tento zápis je nejběžnější a používá se pro většinu numerických operací:

let x = 10;
let y = 2.25;

Druhý způsob představuje exponenciální zápis, známý také jako zápis s pohyblivou desetinnou čárkou. Využívá notace e nebo E, která reprezentuje "krát deset na mocninu". Je užitečný při deklaraci proměnných s velmi velkým nebo velmi malým číslem:

let x = 23e5; // 2 300 000 (= 23*10^5)
let y = 146e-7; // 0,0000146 (= 146*10^-7)

Funkce isNaN()

Pomocí této funkce zjistíme, zda je v proměnné uložená číselná hodnota. NaN je zkratkou Not a Number a funkce vrací true, pokud v proměnné nenalezne číslo:

let jmeno = "Bára";
let vek = 22;
let vyska = "168 cm";
let telefonniCislo = "123456789";

document.write(isNaN(jmeno) + "<br />");
document.write(isNaN(vek) + "<br />");
document.write(isNaN(vyska) + "<br />"); // vrátí true
document.write(isNaN(telefonniCislo)); // vrátí false

Výsledek v prohlížeči:

Čísla v JavaScriptu
localhost

Formátování čísel

Číselné hodnoty můžeme formátovat pomocí následujících metod:

  • toPrecision() – Ořízne číslo na počet požadovaných znaků, které uvedeme v parametru (v závorkách) metody.
  • toExponential() – Převede číslo na exponenciální notaci, v parametru uvádíme počet desetinných míst v exponenciálním zápisu.
  • toString() – Převede číslo na textový řetězec. Tato metoda má nepovinný parametr, v němž lze specifikovat požadovanou číselnou soustavu (2 - 36).

Ukažme si to prakticky:

let polomer = 123.456;
const obsah = 47857.942;
let id = 228;

document.write(polomer.toPrecision(4) + "<br />");
document.write(obsah.toPrecision(2) + "<br />");
document.write(obsah.toExponential(3) + "<br />");
document.write(id.toString() + "<br />");
document.write(id.toString(16) + "<br />");
document.write(typeof id.toString());

Výsledek v prohlížeči:

Čísla v JavaScriptu
localhost

Vlastnosti MAX_VALUE a MIN_VALUE

Při matematických výpočtech a manipulaci s čísly bývá důležité zkontrolovat, zda naše hodnoty nepřekračují extrémní rozsahy. K tomu využijeme vlastnosti MAX_VALUE a MIN_VALUE, které nám vrátí největší nebo nejmenší kladné číslo v JavaScriptu:

let nejvetsiHodnota = Number.MAX_VALUE;
let nejmensiHodnota = Number.MIN_VALUE;

document.write("Největší možná hodnota: " + nejvetsiHodnota + "<br />");
document.write("Nejmenší možná hodnota (větší než 0): " + nejmensiHodnota);

Výsledek v prohlížeči:

Čísla v JavaScriptu
localhost

Knihovna Math

Základní matematické funkce jsou v JavaScriptu obsaženy v knihovně Math. Knihovna nám poskytuje dvě základní konstanty PI a E. Konstanta PI je pochopitelně číslo Pí (3.1415...) a E je Eulerovo číslo, tedy základ přirozeného logaritmu (2.7182...).

Zde jsou nejčastěji používané konstanty a funkce:

Math.PI         // číslo PI
Math.E          // Eulerovo číslo
Math.min()      // vrátí nejmenší číslo
Math.max()      // vrátí největší číslo
Math.pow()      // mocnina, v parametru zadáváme základ a exponent
Math.sqrt()     // druhá odmocnina
Math.random()   // náhodné číslo 0 – 1
Math.abs()      // absolutní hodnota čísla
Math.round()    // zaokrouhlení
Math.ceil()     // zaokrouhlení nahoru
Math.floor()    // zaokrouhlení dolů
Math.cos()      // cosinus
Math.sin()      // sinus
Math.log()      // přirozený logaritmus (základem je Eulerovo číslo)

Goniometrické funkce (sin(), cos() a další) vrací hodnotu pro úhel v radiánech, který předáme jako parametr.

Ukažme si pár konkrétních příkladů. Začneme mocninou:

let zaklad = 2;
let exponent = 3;
let mocnina = Math.pow(zaklad, exponent);
document.write(zaklad + " na " + exponent + " je " + mocnina);

Výsledek v prohlížeči:

Mocnina v JavaScriptu
localhost

Takto vypočítáme odmocninu:

let zaklad = 9;
let odmocnina = Math.sqrt(zaklad);
document.write("Druhá odmocnina čísla " + zaklad + " je " + odmocnina);

Výsledek v prohlížeči:

Odmocnina v JavaScriptu
localhost

Nakonec si ukážeme použití funkce sin(). Ta jako parametr bere úhel v radiánech, vstup ve stupních musíme tedy nejdříve na radiány převést:

let uhelVeStupnich = 90;
let uhelVRadianech = uhelVeStupnich * (Math.PI / 180); // převod stupňů na radiány
let vysledek = Math.sin(uhelVRadianech);
document.write("Sinus úhlu " + uhelVeStupnich + " stupňů je " + vysledek);

Výsledek v prohlížeči:

Sinus v JavaScriptu
localhost

Zjišťování datového typu proměnné

Datový typ proměnné zjistíme pomocí operátoru typeof. Ukažme si to na jednoduchém příkladu. Deklarujeme v něm několik proměnných a následně vypíšeme jejich datový typ:

let delka = 16;
let sirka = 7.5;
const jednotka = "cm";
let jeDelsi = true;
let barva;

document.write(typeof delka + "<br />");
document.write(typeof sirka + "<br />");
document.write(typeof jednotka + "<br />");
document.write(typeof jeDelsi + "<br />");
document.write(typeof barva);

V prohlížeči se nám vypíše:

Proměnné v JavaScriptu
localhost

V příští lekci, Obrázky a kreslení na canvas v JavaScriptu, se budeme věnovat práci s obrázky.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 63x (5.3 kB)
Aplikace je včetně zdrojových kódů v jazyce JavaScript

 

Předchozí článek
Kvíz - Pokročilé podmínky a cykly v JavaScriptu
Všechny články v sekci
Základní konstrukce jazyka JavaScript
Přeskočit článek
(nedoporučujeme)
Obrázky a kreslení na canvas v JavaScriptu
Článek pro vás napsal Michael Olšavský
Avatar
Uživatelské hodnocení:
1159 hlasů
...
Aktivity