TOC

This article has been localized into Czech by the community.

Operátory:

Porovnávací operátory

Právě jsme diskutovali o operátoru přiřazení, který je jedním rovnítkem (=). Avšak přidáním druhého rovnítka (==) úplně změníte chování - místo přiřazení, nyní provádíte srovnání. Pokud jste v programování nováček, toto se někdy může zdát těžko ovladatelné, ale musíte si na to zvyknout. Ve skutečnosti, se v JavaScriptu, dokonce musíme vypořádat i s operátorem tří rovnítek ( === ), ale o tom více později.

Rychle projdeme všechny operátory porovnání, abychom věděli, jak se jmenují a jak fungují.

Operátor rovnosti: ==

Začneme operátorem rovnosti, který porovnává dvě hodnoty. Při použití tohoto operátoru srovnání, stejně jako u většiny ostatních, je výsledkem boolean - buď je srovnání pravdivé nebo nepravdivé. Proto je často používáte ve spojení s příkazem if, jako v tomto příkladu:

let n1 = prompt("Please input a number");
if(n1 == 42)
	alert("Correct answer!");

Všimněte si, jak používáme operátor přiřazení (=) na prvním řádku a poté operátor porovnání rovnosti (==) na dalším řádku. Vizuální rozdíl je jemný, ale ujistěte se, že se naučíte rozlišovat rozdíl - je to velmi důležité.

Operátor nerovnosti: !=

Ale co když potřebujete zjistit, zda něco NENÍ stejné? Žádný problém, můžete negovat operátor rovnosti pomocí vykřičníku, což znamená přesný opak. Zde je příklad:

let n1 = prompt("Please input a number");
if(n1 != 42)
	alert("Wrong answer - it should be 42!");

Všimněte si, jak jsem jednoduše změnil == na !=, abych popřel podmínku.

Větší než/menší než: > a <

Někdy potřebujete porovnání nejen o rovnosti, ale o velikosti. Pro to JavaScript přichází s operátory větší než a menší než - umožní vám zjistit, zda je hodnota větší nebo menší než jiná hodnota. Ilustrujme to na příkladu:

let n1 = prompt("Please input a number between 1 and 10");

if(n1 < 1)
	alert("Too low!");
	
if(n1 > 10)
	alert("Too high!");

Větší/menší než nebo rovno: >= a <=

Někdy potřebujete vědět, zda je hodnota větší nebo rovna hodnotě (nebo menší). JavaScript také přichází s několika operátory pro tento účel - pojďme upravit předchozí příklad tak, aby je používal:

let n1 = prompt("Please input a number between 1 and 10");

if(n1 <= 0)
	alert("Too low!");
	
if(n1 >= 11)
	alert("Too high!");

Přísná rovnost: ===

Na začátku článku jsem trochu naznačil: Existuje přísnější operátor porovnání, který dělá to samé, co jsme právě dělali výše, ale přísnějším způsobem. Ale o co jde v této přísnosti a proč ji potřebujeme?

Mluvili jsme o tom trochu v kapitole o datových typech, ale je čas se k tématu vrátit. Kvůli volnému a dynamickému systému typů v JavaScriptu bude interpret dělat věci za scénou, aby vám to usnadnil. Například můžete mít proměnnou, která je v podstatě textový řetězec, ale obsahuje číslo. Takže, je "42" to samé jako 42? V JavaScriptu to tak je:

let n1 = "42", n2 = 42;

if(n1 == n2)
	alert("A match!");

Pokud však pocházíte z programovacího jazyka se silným typováním, bude se vám to zdát divné. A budou situace, kdy budete muset být o typy přísnější, i v JavaScriptu. Pro tyto situace jednoduše použijte operátor přísné rovnosti, změnou dvou rovnítek na tři:

let n1 = "42", n2 = 42;

if(n1 === n2)
	alert("A match!");
else
	alert("Sorry, no strict match!");

Co se zde děje, je ve skutečnosti docela jednoduché: Protože používáme operátor přísné rovnosti, JavaScript neprovádí žádnou konverzi typů na pozadí při porovnávání obou hodnot Místo toho se na ně rychle podívá a ihned si uvědomí, že nejsou stejného typu a proto nemohou být opravdu rovny.

Přísná nerovnost !==

A samozřejmě můžete kontrolovat přísnou nerovnost stejným způsobem, změnou jednoho ze tří rovnítek na vykřičník:

let n1 = "42", n2 = 42;

if(n1 !== n2)
	alert("Sorry, no strict match!");	
else
	alert("A match!");

Shrnutí

Porovnávání hodnot je zásadní součástí většiny programovacích úkolů a doufám, že nyní rozumíte, jak různé operátory porovnání fungují v JavaScriptu. Pokud si nejste jisti, přečtěte si tento článek znovu, protože budete určitě potřebovat pevné pochopení způsobu, jakým fungují, když přejdete k složitějším tématům.


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!