#1 Čísla
JavaScript má čísla udělána jednoduše – existuje pouze jeden typ, se kterým lze libovolně pracovat. Čísla se narozdíl od stringů neuvádějí do žádných uvozovek, jednoduše se jejich číselná hodnota napíše.
const cislo = 4;
Čísla mohou mít také pozice za desetinnou čárkou…
const cislo = 4.54;
…a dlouhá čísla mohou být zapsána takzvanou vědeckou metodou (pomocí exponenciálu)…
const cislo = 2e3; // Číslo za e symbolizuje kolik nul nahrazuje
// Stejné jako
const cislo = 2000;
#2 Přesnost čísla
JavaScript narozdíl od jiných typických programovacích jazyků nespecifikuje o jaký typ čísla se jedná, například integer, short, long apod. JavaScript má pouze jeden typ – double precision floating point numbers (volně přeloženo jako čísla s plovoucí desetinnou čárkou s dvojnou přesností) – čísla jsou vždy ukládána do 64 bitů.
Z toho důvodu mohou někdy vznikat nepřesnoti, jako je například tato…
const x = 999999999999999;
// x je 999999999999999
const y = 9999999999999999;
// y je 10000000000000000
…nebo tato…
const x = 0.1 + 0.2;
// x je 0.30000000000000004
#3 Operace s čísly
Aritmetika
Čísla lze sčítat, odčítat, dělit, násobit… provádět s nimi aritmetické operace. O operátorech, které se k tomu používají, se dočtete v článku Aritmetika JavaScriptu.
Spojení se stringem
JavaScript nerozlišuje sčítání a spojení, na obě akce používá znaménko +. Z toho důvodu mohou někdy vznikat nečekané situace, které zde vysvětlíme.
Pokud v jakémkoliv pořadí spojíte string a číslo, výsledkem bude vždy string (číslo se pouze přiřadí a bude „fungovat“ jako string).
const x = "10";
const y = 5;
const z = x + y;
// Výsledkem je „105“
Pokud bude prvně nějaký string a poté k němu budeme připojovat čísla, čísla se pouze připojí…
const x = 10;
const y = 5;
const z = "Výsledek: " + x + y;
// Výsledkem je „Výsledek: 105“
…ale pokud toto prohodíme (tzn. nejdříve tam umístíme čísla a až následně připojíme string), čísla se sečtou a až pak se k nim připojí string.
const x = 10;
const y = 5;
const z = x + y + " je výsledek";
// Výsledkem je „15 je výsledek“
Čísla se nejdříve sečtou proto, že JavaScript operuje zleva doprava – čísla sečte (10 + 5) a až následně připojí string, zatímco v prvním případě vždy připojuje číslo ke stringu » pouze ho připojí, nesečte.