TOC

This article has been localized into Czech by the community.

Základy:

Pravdivé a nepravdivé hodnoty

Ve většině programovacích jazyků, stejně jako v matematice, je koncept binární pravdy a nepravdy: buď je něco pravdivé, nebo je to nepravdivé. Ale v JavaScriptu je koncept pravdy a nepravdy trochu rozšířen, protože jazyk je obecně poměrně volný a není tak striktní jako ostatní programovací jazyky.

V praxi to znamená, že někdy JavaScript vyhodnotí něco buď jako pravdivé nebo nepravdivé, přestože to není úplně pravdivé nebo nepravdivé. Účelem je jednoduše učinit věci pro vás jednoduššími a méně komplikovanými, ale pokud o tom nevíte, nebo na to na chvíli zapomenete, věci mohou být trochu matoucí.

Tak mi dovolte představit vám nový koncept: Pravdivé a Nepravdivé (Truthy a Falsy). Existují pouze jako koncepty - nenajdete pro ně klíčová slova v JavaScriptu, ani nebudete moci prověřit proti pravdivé nebo nepravdivé hodnotě. Místo toho JavaScript zavedl druhou sadu operátorů pro kontrolu, zda je něco zcela pravdivé nebo zcela nepravdivé. Tyto se označují jako striktní operátory, například striktní operátor rovnosti, kde při porovnávání dvou hodnot používáme tři rovnítka místo dvou.

Budeme mluvit mnohem více o různých operátorech v JavaScriptu, včetně striktních, v nadcházející kapitole, ale prozatím pojďme více hovořit o tom, co může být považováno za Pravdivé (Truthy) nebo Nepravdivé (Falsy).

Pravda

V JavaScriptu jsou všechny hodnoty Pravdivé (Truthy), pokud nejsou specificky Nepravdivé (Falsy). JavaScript použije přetypování, aby něco převedl na booleovskou hodnotu, když je použito v kontextu, který to vyžaduje, jako je smyčka nebo příkaz if. Například zvažte následující příklady hodnot, které budou považovány za pravdivé, protože jsou Pravdivé (Truthy):

if(true)
	alert("truthy");
if(42)
	alert("truthy");
if("hello world")
	alert("truthy");	

Pokud spustíte tento příklad, uvidíte, že všechny tři příkazy if vyhodnotí jako pravdivé, ale proč je "hello world" pravdivé? Protože obsahuje skutečnou hodnotu a proto bude JavaScript považovat toto za pravdivé (truthy), když je použito v kontextu, kde je vyžadováno pravdivé nebo nepravdivé.

Nepravda

Obecně všechny hodnoty, které jsou buď null, undefined nebo prázdné, budou považovány za nepravdivé (Falsy) a budou tedy v boolean kontextu, jako jsou cykly a příkazy if, považovány za nepravdivé. Zde je několik příkladů:

if(false)
	alert("falsy");
if(null)
	alert("falsy");
if(0)
	alert("falsy");	
if("")
	alert("falsy");	

Pokud spustíte tento příklad, všimnete si, že žádné z upozornění nebude spuštěno - všechny výše uvedené if příkazy budou v tomto kontextu považovány za nepravdivé.

Shrnutí

Když JavaScript potřebuje, aby něco bylo buď pravda nebo nepravda, například při vyhodnocování podmínky pro smyčku nebo if-příkaz, uchýlí se v případě potřeby k přetypování, aby hodnoty, které nejsou skutečnými booleany, převedl na hodnotu pravda nebo nepravda. Výsledek tohoto procesu se označuje jako Truthy a Falsy, protože i když nejsou skutečně pravdivé nebo nepravdivé, jsou dostatečně blízko, aby JavaScript mohl na základě nich učinit rozhodnutí, jak ilustrují příklady tohoto článku.


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!