WEBnSTUDY.com
JavaScript

JavaScript relacioni operatori

Relacioni operatori u stvari predstavljaju upoređivanja. Kada se uporede dve vrednosti kao rezultat se dobija logička vrednost, zavisno od toga kakve su te dve vrednosti međusobno.

OperatorPrimerAsocijativnost
Manje x < y udesno
Veće x > y udesno
Manje ili jednako x <= y udesno
Veće ili jednako x >= y udesno
Jednako x == y udesno
Različito x != y udesno
Strogo jednako x === y udesno
Strogo različito x !== y udesno

Većina ovih operatora su nam poznati iz jednačina i nejednačina, s tim što se u programiranju obeležavaju na specifičan način:

x < 10ako je x manje od 10 vrednost će biti true a u suprotnom false
x > 10x veće od 10
x <= 10da li je x manje ili jednako 10
x >= 10da li je x veće ili jednako 10
x == 10da li je x jednako 10
x != 10da li je x različito od 10

Izraze sa relacionim i logičkim operatorima retko kada koristimo "same za sebe" samo radi dodele vrednosti. Najčešće ih koristimo u okviru kontrolnih struktura, kako bismo napravili uslov i tako odredili dalji tok programa, koji će zavisiti od toga da li se taj uslov ostvario ili ne. Inače možemo upoređivati ne smo brojeve nego i stringove (tekstualne vrednosti) i logičke vrednosti. Pri tom se stringovi upoređuju po abecedi, a false je "manje" od true.

5 < 10tačno
"aaa" < "b"tačno
false < truetačno

Kompleksni uslovi

Sa ovime što smo saznali, bismo umeli da uporedimo dve vrednosti. Međutim, šta ako želimo da napravimo kompleksan uslov - npr. da proverimo da li je vrednost neke promenljive između dva broja? Verovatno bismo pokušali da napišemo nešto kao:

10 < x < 15 // neispravno!

Pogledajte zašto je ovo neispravno:

Relacioni operatori uvek povezuju samo dve vrednosti. To znači da ako želimo da ostvarimo ovakav kompleksan uslov moramo da pitamo da li je x veće od 10 i da takođe pitamo da li je x manje od 15. Ova dva uslova vezujemo logičkim operatorom konjukcije, a o ovome detaljno pročitajte u tekstu Logički operatori.

Stroga jednakost

Programeri smatraju da je jedna od najvećih mana JavaScripta to što kao jezik nije strogo tipiziran. To znači da ne moramo unapred da određujemo tipove za promenljive, ne moramo čak ni da dodeljujemo vrednosti istog tipa u istu promenljivu tokom izvršavanja programa.

Ovo stvara probleme početnicima koji često ne znaju gde su napravili grešku. Na mestima gde bi drugi programski jezik prijavio da postoji greška, JavaScript nastavlja da funkcioniše. Sa druge strane, tvorci virtuelne mašine koja izvršava JavaScript program (npr. programeri web čitača) imaju svoje probleme - moraju da se brinu oko stalne automatske provere i konverzije tipova i to tokom izvršavanja programa.

Tako se postavlja sasvim logično pitanje - šta se dešava kada u isti izraz smestimo različite tipove? JavaScript pokušava da ih svede na isti tip, i to konvertujući stringove i logičke vrednosti u brojeve, ako je moguće. Međutim u nekim situacijama ne želimo da se to dešava, već hoćemo da izvršimo striktnu proveru - ne samo vrednosti, već i tipa!

5 == "5"tačno - string "5" se konvertuje u broj 5
5 === "5"netačno - iako bi se vrednosti poklopile, tipovi se ne slažu
5 != "5"netačno - string "5" se konvertuje u broj 5 i onda nisu nejednaki
5 !== "5"tačno - iako po vrednosti nisu nejednaki, različiti su im tipovi

Operacije upoređivanja

Ove operacije najčešće koristimo kako bismo napravili uslov za dalje izvršavanje programa.


  if (x > 0) {
    console.log("X je pozitivan.");
  }
  else if (x == 0) {
    console.log("X je nula.");
  }
  else {
    console.log("X je negativan.");
  }
		
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies) radi vođenja interne statistike u cilju unapređenja korisničkog iskustva. Tako prikupljeni podaci su anonimni i nedostupni trećim licima. Vaša privatnost nije ugrožena ni na koji način.