CodeWilderness
JS coding flow
Singing Parrot as author
Radošević Dejan

JS - Tipovi podataka

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:

  1. 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.
const name = null;
console.log(typeof name); // object
  1. Undefined - je primitivni tip koji posjeduje samo jednu vrijednost i ona je undefined. Neinicijalizovane promjenjljive posjeduju vrijednost undefined.
let car;
console.log(car); // undefined
console.log(typeof car); // undefined
  1. Boolean - predstavlja logički tip sa dvije mogućnosti: true (istinita vrijednost) i false (neistinita vrijednost).
let fact = true;
console.log(typeof fact); // boolean
  1. String - je primitivni tip podataka koji predstavlja niz karaktera. Koristi se za manipulaciju tekstualnim podacima u kodu.
const hobby = "bushcraft";
console.log(typeof hobby); // string
  1. Number - se koristi za predstavljanje cijelih brojeva kao i onih sa pokretnim zarezom.
const i = 11;
const f = 13.33;
 
console.log(typeof i, typeof f); // number number
  1. 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.
const bigN = 123456789987654321n;
console.log(typeof bigN); // bigint
  1. Symbol - je jedinstven tip koji se može koristiti kao indetifikator za svojstva objekata.
const symbolVar = Symbol();
console.log(typeof symbolVar); // symbol

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.

const obj = {
  a: 11,
  b: "object"
}
 
console.log(typeof obj); // object

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.