TOC

This article has been localized into Czech by the community.

Datové typy:

Úvod

Na začátku tohoto tutoriálu jsme stručně hovořili o tom, že JavaScript je dynamicky typovaný jazyk, ale v tomto článku, stejně jako v následujících, budeme diskutovat o různých datových typech, se kterými se setkáte při práci s JavaScriptem. Ale proč se zajímat o datové typy, pokud programovací jazyk používá dynamické typy?

Ano, i když JavaScript není přísný, pokud jde o typy, stále budou situace, kdy typy hrají roli. Například, co se stane, pokud vynásobíte "42" (textový řetězec s číslem 42) s 2 (číslem 2)? Přísně typovaný jazyk by si na něco takového pravděpodobně stěžoval, ale JavaScriptu to opravdu nevadí.

Dynamické typy

Ale pojďme trochu hovořit o tom, co je dynamický typ a jak jej můžete použít. V silně typovaném programovacím jazyce obvykle musíte deklarovat proměnnou jako určitý typ, například řetězec nebo celé číslo, a jakmile proměnnou deklarujete, nemůžete její typ už změnit a pokud se pokusíte přiřadit nějaký jiný typ k této proměnné, kompilátor si stěžuje. V JavaScriptu při deklaraci nemusíte definovat typ a později můžete snadno přiřadit typ jiný. Zde je příklad:

let answer = 42;
answer = "The answer to everything: 42";
alert(answer);

Všimněte si, že deklaruji proměnnou s názvem "answer" a poté jí přiřadím číslo (42). V dalším řádku si to rozmyslím a přiřadím jí řetězec a poté představím odpověď. JavaScript si na tuto změnu vůbec nestěžuje - můžete dělat, co chcete, protože se od proměnné neočekává, že bude specifického typu.

Typy stále hrají roli

Ale jak jsem již zmínil, jen proto, že jsou typy dynamické, neznamená, že neexistují. V pozadí za vás dělá JavaScript spoustu věcí, takže se o typy nemusíte starat. Jako ilustraci se vraťme k mému příkladu násobení dvou čísel, kde jedno z nich je náhodou textový řetězec obsahující číslo:

let n1 = "42", n2 = 2;
alert(n1 * n2);

V tomto případě JavaScript odhadne, že pravděpodobně se snažíte násobit dvě čísla, takže i když je jedno z nich ve skutečnosti textový řetězec, výsledek je stále 84. Ale co když se pokusíme čísla místo násobení sčítat?

let n1 = "42", n2 = 2;
alert(n1 + n2);

Můžete očekávat, že výsledek bude 44, ale místo toho dostanete "422". Proč? Protože v tomto případě JavaScript již nemůže vědět, že se snažíte počítat - místo toho považuje obě proměnné za textové řetězce a připojí je. To je skvělý příklad toho, proč typy stále hrají roli v dynamicky typovaném jazyce, protože nad výše uvedeným příkladem nedostanete žádná varování ani stížnosti, i když výsledek nemusí být to, co jste očekávali.

Primitivní (základní) typy

Většina programovacích jazyků rozlišuje mezi primitivními (zakladními) typy a složenými/referenčními typy. JavaScript to dělá stejně, kde na jedné straně máme několik primitivních typů a na druhé straně objekty. Pro referenci, toto jsou primitivní datové typy podporované jazykem JavaScript:

  • bigint
  • boolean
  • null
  • number
  • string
  • symbol
  • undefined

Tato kapitola je věnována primitivním typům a v následujících článcích si je všechny projdeme. Poté se podíváme na některé vestavěné objekty, a jak můžete definovat vlastní složené typy.

Shrnutí

JavaScript využívá dynamický systém typů, který vám umožňuje deklarovat a používat proměnné bez nutnosti specifikovat jejich typ. Jak ale bylo ukázáno v tomto článku, je nutné dávat pozor na to, jak spolu používáte proměnné různých typů.

V následujících článcích se podíváme hlouběji na různé typy, které JavaScript používá v zákulisí při zpracování vašeho kódu, a jak s nimi můžete pracovat.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!