e-gradiva     HTML CSS JavaScript Načrtovanje    
  logotip  
SERŠ Maribor Iskanje Primeri

Izrazi

Izrazi so način, da se pride do neke nove vrednosti. Izraz je sestavljen iz operandov, spremenljivk in operatorjev, ki so med seboj povezani na predpisane načine. Operand je vrednost nad katero operator izvrši operacijo. Ko se izraz izračuna, se dobimo neko vrednost (vrednost stavka), katere tip je odvisen od uporabljenih tipov operandov in uporabljenih operatorjev.

Vsi izrazi dajo kot rezultat neko vrednost. Izraz ima lahko en operand (unarni, eniški operator). Na primer izraz za spremembo (prireditev) vrednosti spremenljivke x = 5 da vrednost 5. Pri izrazih z dvema vrednostma sta operatorja razdvojena z operatorjem (binarni, dvojiški operator). Na primer izraz 6 + 4 sešteje števili in kot rezultat vrne vrednost 10.

Pri sestavljanju stavkov je zelo pomembno poznavanje operatorjev, zato si jih poglejmo podrobneje. Operatorje delimo v več skupin: prireditveni, primerjalni, logični, aritmetični, bitni in posebni operatorji.

vrstanaloga
prireditveniDodeli vrednost desnega operatorja v spremenljivko na levi strani, včasih še izvede določeno operacijo
aritmetičniSpoji dva operanda in kot rezultat aritmetične operacije je ena vrednost.
primerjalniPrimerja dva operanda in rezultat operacije je točen (true) ali napačen (false).
bitniIzvaja operacije nad posameznimi biti dveh operandov ali izvaja pomike.
logičniIzvaja logične operacije nad enim ali dvema operandoma.

Operatorji

Prireditveni operatorji

prireditveni operatorji so med tistimi, ki se najbolj uporabljajo. Osnovni prireditveni operator je =, ki spremenljivki na levi strani priredi vrednost stavka na desni strani operatorja (vrednost z desne strani se kopira na levo stran). Če se napiše x= y, se bo spremenljivki x priredili vrednost spremenljivke y, vrednost spremenljivke y pa bo ostala nedotaknjena. Drugi prireditveni operatorji so samo kratice za kombinacije operatorja = z drugimi operatorji.

operatorpomenprimerje enako kot
=priredix = yx = y
+=povečaj za vrednostx += yx = x + y
-=zmanjšaj za vrednostx -= yx = x - y
*=pomnoži z vrednostjox *= yx = x * y
/=deli z vrednostjox /= yx = x / y
%=ostanek celoštevilčnega deljenjax %= yx = x % y
<<=premakni levo za mestx <<= yx = x << y
>>=premakni desno za mest in popolni z ničlamix >>= yx = x >> y
>>>=premakni desno za mestx >>>= yx = x >>> y
&bitni INx &= yx = x & y
|=bitni ALIx |= yx = x | y
^=bitna ANTIVALENCAx ^= yx = x ^ y

Aritmetični operatorji

Osnovnih aritmetičnih operatorjev (+,-,*,/) verjetno ni treba posebej predstavljati. Malo manj znan aritmetičen operator je %, ki vrne ostanek pri deljenju. Pozabiti pa se ne sme še na eniški operator -, ki spremeni predznak operanda.

Obstajata še dva aritmetična operatorja, ki delujeta na spremenljivkah (njun edini operand). Operator ++ poveča, operator -- pa zmanjša vrednost spremenljivke za ena. Oba lahko napišemo pred ali za imenom spremenljivke; vendar je njun pomen v tem vsakem primeru drugačen. Primer:

i = 10
z = i ++ 	// i=11		z=10

i = 10
z = ++ i 	// i=11		z=11

Na spremenljivko i imata stavka ++i in i++ enak učinek. Njeno vrednost povečata za ena. Razlika je v vrednosti stavka samega, ki postane zelo pomembna, če ga uporabimo kot del večjega stavka. Vrednost stavka ++i je nova (že povečana) vrednost spremenljivke i, vrednost stavka i++ pa je stara (še nepovečana) vrednost spremenljivke i. Podobno velja tudi za operator --.

Če kakšen operand aritmetičnih operatorjev ni številskega tipa, ga JavaScript poskusi pretvoriti v število. Vrednosti null, false in prazen niz pretvori v število 0, vrednost true v število 1, vrednost undefined pa v število NaN.

Operator + ima še eno vlogo. Uporablja se za spajanje nizov, kar pomeni, da izvaja različni operaciji v odvisnosti od operandov. Kadar je eden od operandov niz, bo JavaScript tudi drugega najprej pretvoril v niz, nato pa bo oba niza spojil. Tako je vrednost stavka "333" + 4 enaka "3334", in ne 127. Za spajanje nizov lahko uporabimo tudi prireditveni operator +=.

JavaScript uporablja ta isti operator (+) za aritmetično adicijo. Če pa sta oba operanda števili, ju JavaScript prepozna in tako zamenja združevanje nizov raje za aritmetično adicijo.

Obstaja tudi eniški operator +, ki na številskem operandu ne naredi ničesar, ostale pa pretvori v število, ki je lahko tudi NaN.

operatorpomen
+vsota, spajanje nizov
-razlika
*produkt
/kvocient
%ostanek pri deljenju
+pozitivno, pretvorba v število
-aritmetična negacija
++inkrementiranje - poveča vrednost spremenljivke za 1
--dekrementiranje, zmanjša vrednost spremenljivke x za 1

Primerjalni operatorji

Primerjalni operator primerja vrednosti svojih operandov in vrne logično vrednost tipa boolean true ali false, odvisno od rezultata primerjave. Operanda sta lahko poljubna stavka. Če sta enakega tipa, je false manjše od true, števila primerja po velikosti, nize pa po abecedi.

Poglejmo si še nekaj primerov, ko operanda nista enakega tipa. Operator === bo v takem primeru vedno vrnil false, operator !== pa true. Vrednost undefined je enaka vrednosti null, ta pa je manjša od vrednosti true (undefined in true pa nista primerljiva). Pri primerjanju števila z nizom poskuša JavaScript niz pretvoriti v število. Če mu uspe, primerja števili, sicer pa vrne false.

Naslednja kategorija operaterjev nam pomaga primerjati vrednosti in skripte, npr., če sta dve vrednosti enaki. Ta način primerjanja nam vrne vrednosti tipa Boolean, ti sta true ali false. Spodaj so prikazani primerjalni operatorji.

operatorpomen
==je enak
!= yje različen
=== yenako po vrednosti in tipu
!==različno po vrednosti ali tipu
< manjše
>večje
<=manjše ali enako
>=večje ali enako

Bitni operatorji

Bitni operatorji so za večino programerjev malo uporabni. Večinoma jih uporabljajo napredni programerji v povezavami s skripti CGI, PHP, ASP.

Števila (operandi) so lahko predstavljena tako v desetiški, osmiški ali šestnajstiški obliki. Bitni operatorji jih obravnavajo kot kot 32 bitna cela števila. Če kateri od operandov ni celo število, ga JavaScript ustrezno pretvori. Pri tem realnemu številu odreže števke za decimalno piko, niz predela v število (če mu ne uspe, ga obravnava kot število 0), vrednosti undefined, null in false predela v število 0, true pa v število 1. Vrednost, ki jo dobimo kot rezultat bitne operacije, je vedno številska.

Rezultati operacij &, | in ^ so 32 bitna cela števila, ki imajo na 1 nastavljene natanko tiste bite, ki so bili 1 pri obeh operandih, vsaj enem operandu oziroma natanko enem od operandov. Rezultat operacije ~ dobimo tako, da spremenimo vse bite njegovega edinega operanda.

Med bitne operatorje se uvrščajo tudi operatorji za pomik, ki pomaknejo bite levega operanda za določeno število mest (določa desni operand) v levo ali desno. Operator << je pomik v levo. Pri tem izgubimo nekaj bitov na levi (toliko, kolikor je dolg pomik), nova mesta na desni strani pa se napolnijo z ničlami. Operatorja za pomik v desno sta kar dva. Pri obeh izgubimo nekaj bitov na desni (toliko, kolikor je dolg pomik), razlikujeta pa se načinu, kako se napolnijo nova mesti na levi. Operator >> nova mesta napolni z bitom, ki je bil najbolj levi že pred pomikom, operator >>> pa z ničlami.

operatorpomen
&bitni IN
|bitni ALI
^bitna ANTIVALENCA
~bitna negacija
<<pomik bitov v levo
>>pomik bitov v desno
>>>pomik bitov v desno

Logični operatorji

Samo dve vrednosti sta lahko rezultat logične aritmetike: pravilno true ali napačno false. Obstajajo samo trije operatorji. vendar pa so izrazi, ki vsebujejo logične operatorje večkrat dolgi, ker vsebujejo druge izraze.

operatorpomen
&&IN
||ALI
!negacija

SERŠ Maribor : Strokovna gimnazija : 2003 : Gregor Jelen