Slabikář JavaScriptu – operátory a jejich použití
Po úvodním seznámení s proměnnými si nyní ukážeme, jak s hodnotami jednotlivých datových typů nakládat. Popíšeme operátory a jejich použití. Zvýšený důraz je ve výkladu kladen na ty charakteristiky JavaScriptu, které jsou buď odlišné od jiných programovacích jazyků nebo dělají začátečníkům problémy.
Operátory se v JavaScriptu dělí na aritmetické, logické a bitové. Většina operátorů je binárních (používají se se dvěma operandy – například operátor sčítání) nebo unárních (působí na jediný operand). U přehledu je vždy v závorce uveden operátor.
Aritmetické operátory
- Sčítání (+)
- Odčítání nebo unární negace (-)
- Násobení (*)
- Dělení (/)
- Inkrementace – zvýšení o 1 (++)
- Dekrementace – snížení o 1 (–)
- Modulo – zbytek po dělení (%)
Operátory inkrementace (resp. dekrementace) zvyšují (resp. snižují) hodnotu proměnné o 1. Lze je použít různým způsobem:
|
Jak je vidět z příkladů, záleží na tom, zda operátory použijete v zápisu před nebo za proměnnou, jejíž hodnota se použitím operátoru mění. Pokud napíšete nejprve operátor a potom teprve název proměnné, změní se nejprve hodnota proměnné, a pak se teprve s proměnnou dále operuje (vstupuje do aritmetického výrazu, tiskne se hodnota apod.). V případě, že zapíšete operátor za název proměnné, je postup přesně opačný. Nejprve proměnná vstoupí do všech výrazů a teprve po jejich provedení se změní její hodnota.
Operátor modulo je duálním operátorem, jehož výsledkem je zbytek po celočíselném dělení:
|
Myslím, že z příkladu je vše jasné. Operátory sčítání, odčítání, dělení a násobení jsou zřejmé. Dodejme jen, že zápis těchto operátorů lze zkracovat. Následující dva řádky jsou sémanticky stejné:
|
Logické operátory
- Podmínkový ternární operátor (?:)
- Rovná se (==)
- Větší než (>)
- Větší nebo rovno než (>=)
- Menší než (<)
- Menší nebo rovno než (<=)
- Nerovná se (!=)
- Identita (===)
- Logický součin, tj. AND (&&)
- Logický součet, tj. OR (||)
- Logická negace (!)
Jako první je zapotřebí si uvědomit rozdíl mezi třemi operátory: =, == a ===. První z nich, reprezentovaný jednoduchým rovnítkem (=), znamená vždy přiřazení – tak jak jsme jej používali intuitivně v předcházejících příkladech. Druhý (==) je operátorem rovnosti, přičemž se porovnávají hodnoty proměnných nebo konstant. Třetí je operátor identity (===) a při porovnávání zde hraje roli i to, zda hodnota je uložena ve stejném objektu. Detailní rozdíl mezi rovností a identitou bude popsán v jednom z dalších dílů Slabikáře JavaScriptu, v nichž se budeme zabývat objektovými proměnnými. Výsledkem porovnání je vždy hodnota datového typu Boolean.
Podmínkový operátor si nejlépe vysvětlíme na příkladu
|
Do proměnné max se přiřadí hodnota proměnné alfa, pokud je tato hodnota vyšší, než hodnota proměnné beta. Jinak bude do max přiřazena hodnota proměnné beta. Stejného výsledku lze dosáhnout třeba i takto:
|
Logický součin a součet jsou opět duální operátory, přičemž operandy musejí být výrazy, jejichž výsledkem je typ Boolean. Výsledkem logického součinu a součtu je opět Boolean. Následující tabulky, na kterých se nejlépe vysvětluje význam obou operátorů, asi znáte.
|
Bitové operátory
- Bitový součin, tj. AND (&)
- Bitový součet, tj. OR (|)
- Bitová negace (~)
- Bitový posun vlevo (<<)
- Bitový posun vpravo (>>)
- Bitová nonektivalence, tj. XOR (^)
- Bitový posun vpravo bez znaménka (>>>)
Na tomto místě vysvětleme rozdíl mezi logickým a bitovým součtem a součinem. Zatímco logické operátory si všímají čísel jako celku, bitový operátor porovnává odpovídající dvojice bitů příslušných čísel.
|
Abyste porozumněli uvedenému příkladu, je zapotřebí rozložit čísla 1 a 2 do binární soustavy. Bitový operátor pak porovnává nulté, první, druhé atd. bity obou čísel. Stejně funguje i bitová negace nebo bitová nonekvivalence (XOR). Pokud u operace XOR jsou oba operandy stejné (oba jsou 0 nebo 1), je výsledkem 0. V případě, že jsou operandy různé, je výsledkem 1. Odtud pochází i název nonekvivalence.
Stručně k bitovým posunům – binární reprezentace čísla se posune vždy o určený počet míst vpravo (resp. vlevo), přičemž nově utvořená místa se doplní bitem znaménka čísla – u kladných čísel je to 0. Pokud posunujete vpravo o 1 bit, provádíte vlastně celočíselné dělení dvěma:
|
Nalevo od operátoru bitového posunu je vždy posouvané číslo, vpravo se udává, o kolik bitů se má posun provést. Bitové operace jsem vzal zkrátka, protože jejich význam není v dnešním programování velký a pravděpodobně je budete používat jen velmi zřídka. Více se můžete o bitových operátorech dozvědět v JScript reference.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Monitory OLED: klíčové pojmy a funkce
13. května 2024 -
Jak lze snadno upravovat soubory v PDF?
14. září 2023 -
Co je to VRAM a jak ji navýšit bez drahého upgradu?
20. srpna 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024