Dáta a dátové typy, operátory

Dáta a dátove typy

Ako každý programovací jazyk, aj Javascript potrebuje na svoju efektívnu cinnost používat nejaké dáta. Tieto dáta sa ukladajú do premenných. Premennú môžme chápat ako schránku, v ktorej sú dáta uložené a pomocou jej názvu k týmto dátam pristupujeme. Obsah týchto premenných môžme aj menit.
Premenné deklarujeme pomocou klúcového slova var a názvu premennej, napr.:
var meno;
Premennú inicializujeme vložením hodnoty do premennej, co sa vykonáva pomocou operátora ‘=’, napr.: meno = “Vladko”;
*Poznámka: Operátor ‘=’ slúži na priradenie hodnoty premennej, nie na porovnanie premennej s nejakou hodnotou. To sa vykonáva operátorom ‘==’, ale k tomu sa dostaneme neskôr.
Premenné delíme podla druhu hodnoty v nej uloženej na tieto dátové typy:

Rovnako je tiež možné menit typ uložených dát, comu sa hovorí pretypovanie.

Na pretypovanie z retazca na císlo má Javascript dve funkcie:
parseInt() – slúži na prekonvertovanie retazca na celé cislo
parseFloat() – slúži na prekonvertovanie retazca na desatinné císlo
Pretypovanie z císla na retazec:
vykonáva sa pripocítaním retazca k císlu – napr. aj prázdneho (“”+14 nám vytvorí retazec “14″)

Priklad:

<script language=”javascript” type=”text/javascript”>
var a = “10″;
var b = 4;
alert(a + b); // zobrazí dialógové okno s retazcom “104″
alert(parseInt(a) + b); // zobrazí dialógové okno s císlom 14
</script>

Operátory

Na prácu s dátami sa používajú operátory. Väcšinu operátorov používame aj v bežnom živote, napríklad +, -, =. Niektoré pozostávajú z jedného, iné z viacerých znakov. Niektoré majú význam shodný s tým, na co sme zvyknutí, niektoré odlišný. Všetky tieto príklady si ukážeme v tejto casti urcenej operátorom.
Operátory delíme do niekolkých skupín, urcených podla použitia operátorov. Sú to tieto:


Aritmetické:

Operátor Príklad Popis
+ c = a + b; scíta dve císla dokopy
++ a++; , ++a;
c = a++;
// c = a; a = a + 1;
c = ++a;
// a = a + 1; c = a;
inkrementácia – zvýši hodnotu premennú o 1, premenná musí byt císlo
rozdiel medzi ++a a a++ je v tom, ze ++a najprv inkrementuje hodnotu a a potom s novou hodnotou pracuje, a a++ najprv použije pôvodnú hodnotu a a až potom ju inkrementuje
- c = a – b; odcíta dve císla
a–; , –a; dekrementácia – zmenší hodnotu premennej o 1, funguje podobne ako ++
* c = a * b; vynásobí dve císla
/ c = a / b; vydelí dve císla
% c = a % b;
// a=8; b=3; => c bude 2
modulo – vráti zvyšok po delení dvoch celých císel


Retazové:

Operátor Príklad Popis
+ c = a + b; zlúci (zretazí) dva retazce dokopy a výsledok uloží do premennej c
+= a += b; k retazcu a pripojí retazec b


Logické:

Operátor Príklad Popis
&& c = a && b; vracia hodnotu true len ak majú oba operandy hodnotu true, inak vracia false
|| c = a || b; vracia true, ak aspon jeden z operandov má hodnotu true, inak vracia false
! c = !a; vracia true, ak operand má hodnotu false, a naopak


Bitové:

Operátor Príklad Popis
& c = a & b;
// a = 111001, b=111001 =>
c = 111001
bitové AND, vracia hodnotu 1 všade tam, kde bity oboch operandov majú hodnotu 1
^ c = a ^ b;
// a = 111001, b=111001 =>
c = 000000
bitové XOR, vracia hodnotu 1 práve vtedy ak má hodnotu 1 práve jeden z operandov
| c = a | b;
// a = 111001, b=111001 =>
c = 111001
bitové OR, vracia hodnotu 1 ak aspon jeden z porovnávaných bitov je 1
~ b = ~a;
// a=10010, b = ~a, => b=01101
bitové NOT, urobí negáciu všetkých bitov
<< c = a << x; bitový posun vlavo, bity operandu sa posunú do lava o urcený poct miest(x) a z pravej strany sa doplnia 0
>> c = a >> x; bitový posun vpravo, bity operandu sa posunú do prava o x miest a z lavej strany sa doplnia 0, zachováva znamienko
>>> c = a >>> x; bitový posun vpravo, bity operandu sa posunú do prava o x miest a z lavej strany sa doplnia 0, nezachováva znamienko


Operátory priradenia:

Operátor Príklad Popis
= a = b; priradí hodnotu premennej b do premennej a, pozor! nezamienat s operátorom porovnania (==)
+= a += b;
// ekvivalent a = a + b;
spocíta hodnoty uložené v premenných a a b a výsledokuloží do a
-= a -= b; odcíta hodnoty v a a b a výsledok uloží do a
*= a *= b; vynásobí hodnoty v a a b a výsledok uložído a
/= a /= b; vydelí hodnotu v premennej a hodnotou v b a výsledok uloží do a
%= a %= b; na operátoroch a a b vykoná operáciu modulo (%) a výsledok (zvyšok po delení) uloží do a
&= a &= b; urobí medzi premennými a a b operáciu bitového AND a výsledok uloží do premennej a
^= a ^= b; urobí medzi premennými a a b operáciu bitového XOR a výsledok uloží do premennej a
|= a |= b; urobí medzi premennými a a b operáciu bitového OR a výsledok uloží do premennej a
<<= a <<= x; s premennou a vykoná operáciu bitový posun o x miest vlavo a výsledok uloží do a
>>= a >>= x; s premennou a vykoná operáciu bitový posun o x miest vpravo (zachováva znamienko) a výsledok uloží do a
>>>= a >>>= x; s premennou a vykoná operáciu bitový posun o x miest vpravo (nezachováva znamienko) a výsledok uloží do a


Relacné:

Operátor Príklad Popis
== a == b
// a=3; b=”3″; => a==b
vráti true
porovná operátory a a b, ak je ich hodnota rovnaká, vráti true, inak false
=== a === b
a=3; b=”3″; => a===b
vrati false
porovná hodnotu aj typ operátorov a a b, ak sa zhodujú, vráti true, inak false
!= a != b ak a je rozne od b, vráti true, inak false
!== a !== b ak sa premenná a líši od premennej b v type, hodnote alebo oboch vráti true, inak false
> a > b vracia true, ak hodnota a je väcšia ako b, inak false
>= a >= b; vracia true, ak hodnota a je väcšia alebo rovná ako b, inak false
< a < b vracia true, ak hodnota a je menšia ako b, inak false
<= a <= b; vracia true, ak hodnota a je menšia alebo rovná ako b, inak false


Špeciálne:

Operátor Príklad Popis
? : výraz ? [true] : [false]
// (a < b)? “a<b” : “a >b”;
vyhodnotí výraz a podla toho ci je jeho hodnota true sa vykoná prvá cast([true]), inak cast [false], nazýva sa tiež terárny operátor alebo podmienkový operátor

Priorita operátorov:

Ak sa vo výraze nachádza viac operátorov, vyhodnocujú sa v urcitom poradí, ktoré si teraz napíšeme:

Operátory v jednom riadku majú rovnakú prioritu, a v prípade výskytu v jednom výraze sa vykonávajú zlava do prava. Priorita je najvyššia v prvom riadku a postupne klesá
. [] ()
++ — ~ !
* / %
+ – +(spájanie retazcov)
<< >> >>>
< <= > >=
== != === !==
&
^
|
&&
||
?:
= += -= *= %= /= &= |= ^= <<= >>= >>>=
,