Podaci i informacije
Osnovna jedinica informacije u programu je vrijednost. Vrijednost je predstavljena podacima koji mogu biti sirove, neobrađene činjenice koje same po sebi možda ne nose značenje. Ako organizujemo podatke koji imaju određenu vrijednost ili značenje, dobijamo informaciju.
JavaScript je dinamičan jezika sa tzv. labavim tipovima, što znači da se varijable ne povezuju ni sa jednim tipom podataka, već se povezuje njihova vrijednost. Ako je potrebno provjeriti koji tip vrijednosti se nalazi u nekoj varijabli, koristimo operator typeof.
Primitivni i Referentni Tipovi Podataka
U JS vrijednosti mogu postojati u primitivnoj ili referentnoj (složenoj) formi.
Primitivni tipovi
Primitivni tipovi su osnovni tipovi podataka koji se čuvaju direktno u lokaciji na koju promjenljiva ukazuje. Oni su nepromjenjivi, što znači da se njihova vrijednost ne može izmijeniti nakon što je kreirana. Promjenljive koje sadrže primitivne vrijednosti mogu biti ponovo dodijeljene novim vrijednostima. Razlikujemo sledeće primitivne tipove:
- Null - tip koji označava odsustvo vrijednosti. Kada proveravamo varijablu koja sadrži null, zbog greške u JS-u kao rezultat vraća prazan objekat.
- Undefined - je primitivni tip koji posjeduje samo jednu vrijednost i ona je undefined. Neinicijalizovane promjenjljive posjeduju vrijednost undefined.
- Boolean - predstavlja logički tip sa dvije mogućnosti: true (istinita vrijednost) i false (neistinita vrijednost).
- String - je primitivni tip podataka koji predstavlja niz karaktera. Koristi se za manipulaciju tekstualnim podacima u kodu.
- Number - se koristi za predstavljanje cijelih brojeva kao i onih sa pokretnim zarezom.
- BigInt - tip koji je uveden kako bi se omogućio rad sa veoma velikim cijelim brojevima, koje tip Number ne može bezbjedno predstavljati. Označava se dodavanjem n na kraju broja.
- Symbol - je jedinstven tip koji se može koristiti kao indetifikator za svojstva objekata.
Postoje još dva primitivna tipa koja imaju status kandidata: Record i Tuple
Referentni tipovi
Složeni tipovi, poznati i kao referentni tipovi, predstavljaju strukture koje mogu sadržati više vrijednosti i/ili složenije strukture. Za razliku od primitivnih tipova, složeni tipovi se čuvaju kao reference, što znači da promjenljiva zapravo sadrži referencu (ili adresu) lokacije u memoriji na kojoj se nalazi vrijednost.
Glavni referentni tip u JS-u predstavlja objekat. Podtipovi objekta uključuju Array i Function, koji su specifična vrsta objekta sa dodatnim funkcionalnostima.
Zašto postoji podjela na primitivne i složene tipove
Podjela na primitivne i složene tipove postoji zbog optimizacije performansi i efikasnijeg upravljanja memorijom. Primitivni tipovi su jednostavni i zauzimaju fiksnu količinu memorije, što omogućava brzu obradu. Složeni tipovi, s druge strane, mogu varirati u veličini i složenosti, pa se stoga efikasnije čuvaju kao reference.