Promenljive u JavaScriptu

Promenljive su jedan od osnovnih programerskih koncepata. Kao što znamo, promenljiva predstavlja memorijsku lokaciju koja sadrži neku vrednost. Tokom izvršavanja programa ova vrednost se može menjati, pa odatle i naziv "promenljiva".

JavaScript prepoznaje različite tipove podataka, ali nije strogo tipiziran jezik, što znači da jedna ista promenljiva u programu može menjati tip vrednosti koju sadrži. Iako je ovo, zbog načina programiranja u JavaScriptu, ponekad neophodno, ipak bismo preporučili da koliko god je moguće, održavate isti tip promenljive u programu. Tako ćete sigurno smanjiti mogućnost greške.

Naziv promenljve je tzv. "identifikatior" i sastoji se od velikih i malih slova engleske abecede, cifara, donje crte (_) i znaka za dolar ($), s tim što ne sme počinjati cifrom. Identifikator (u novijim verzijama JavaScripta) može sadržati i slova nacionalnih pisama (npr. š,đ,č...), s tim što ovo ipak ne bismo preporučili.

Kao i jezici C, Java, PHP i slični, JavaScript razlikuje velika i mala slova, što znači da se identifikatori broj, Broj i BROJ razlikuju. Vodite računa da ne pogrešite u velikim i malim slovima u nazivima promenljivih, jer će ih JavaScript tumačiti kao različite promenljive - program će raditi pogrešno, a grešku ćemo teško otkriti.

Deklaracija promenljive

JavaScript ne zahteva deklarisanje promenljivih unapred, kao drugi (strogo tipizirani) jezici. Promenljivu uvodimo na onom mestu gde nam je potrebna.

Ipak, deklaracija promenljive postoji u JavaScriptu i vrši se navođenjem iskaza var i liste promenljivih. Unutar deklaracije se može izvršiti i definicija promenljive (dodela vrednosti).

var prom; // deklaracija promenljive var prom = vrednost; // deklaracija i definicija promenljive

U var iskazu možemo istovremeno deklarisati (i definisati) više promenljivih. Dovoljno je navesti listu promenljivih, odvojenih zarezom.

var p1, p2, p3; // deklaracija liste promenljivih var p1 = v1, p2 = v2; // deklaracija i definicija liste promenljivih

JavaScript najpre prođe kroz kontekst (funkciju) i "evidentira" sve promenljive koje su deklarisane u njemu, a tek onda izvršava naredbe (u koje spada i operator dodele, odnosno definicija promenljive).

Promenljivu možemo uvesti i bez var iskaza. U tom slučaju, gde god da je promenljiva uvedena, imaće globalnu oblast važenja - biće dostupna u svim funkcijama, kao i van njih. U web aplikacijma, sve globalne promenljive su u stvari svojstva objekta window.

Pročitajte tekst o oblasti važenja, kao i tekst o objektima u JavaScriptu, kako bi vam ovo bilo jasnije.

Nepostojeća ili deklarisana ali nedefinisana promenljiva će imati vrednost undefined.

Promenljive u JavaScriptu mogu sadržati primitivne vrednosti, ali takođe mogu biti i reference na objekte u memoriji. Identifikator (oznaka) promenljive koja sadrži referencu se ni na koji način ne razlikuje od "obične" promenljive - ni po nazivu, ni po deklaraciji.

Primer

Evo jednog primera koji obuhvata skoro sve što bi nam bilo značajno iz prethodnog teksta.


  var prom;        // deklarisana globalna promenljiva prom
  var a, b, c;     // deklarisane promenljive a, b i c (isto globalne)
  var x = "Nula";  // deklarisana globalna promenljiva x i dodeljena vrednost "Nula"
  
  x = 15;          // sada menjamo vrednost promenljive x, ali i njen tip (bila je string, sada je broj)
  prom = x * 2;    // dodeljujemo vrednost promenljivoj prom
  
  fun();           // izvršavamo funkciju da bi se "dogodile" naredbe unutar nje
  
  prom = p1;       // GREŠKA - p1 ne postoji van funkcije
  var y = p2;      // promenljiva y je deklarisana od početka (uvek se prvo "prođe" kroz sve deklaracije
                   // ali je definisana (ima vrednost) tek od ove tačke u programu
                   // dobija vrednost "Tekst" jer je promenljiva p2 globalno važeća
  
  function fun()
  {
    var a=1, b=2;    // 
    var p1 = x+1;    // promenljiva p1 će biti definisana samo unutar funkcije fun
                     // promenljiva x je globalna i samim tim dostupna u svim funkcijama
    p2 = "Tekst";    // promenljiva p2 je uvedena bez iskaza var - biće globalno dostupna
                     // izbegavajte ovakvu praksu - program će biti mnogo razumljiviji
  }
		
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). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.