U JavaScriptu se često susreću dvije posebne vrijednosti – null i undefined. Iako obje označavaju odsutnost podataka, njihova namjena, način nastanka i ponašanje u različitim situacijama znatno se razlikuju. Razumijevanje tih razlika pomaže u pisanju čitljivijeg i pouzdanijeg koda.
Sadržaj...
1. Što su null i undefined?
JavaScript je dinamički jezik, pa varijable mogu sadržavati bilo koji tip podataka. Unutar tog sustava postoje dvije vrijednosti koje signaliziraju da podataka nema:
- null – eksplicitna vrijednost koju programer sam postavi kada želi jasno naznačiti da varijabla ne sadrži nikakve podatke. Često se opisuje kao „prazan objekt“.
- undefined – automatski dodijeljena vrijednost kada varijabla nije inicijalizirana ili kada se pokuša pristupiti nepostojećem svojstvu ili indeksu. To je rezultat nedostatka vrijednosti.
Ključna razlika leži u namjeri: null je namjerno postavljena vrijednost, dok je undefined posljedica nedostatka inicijalizacije.
2. Kada se pojavljuju u kodu?
Različite situacije pokazuju kako i zašto se svaka od tih vrijednosti pojavljuje. Najčešći primjeri su:
- Inicijalizacija varijable:
let x;– varijablaxpostoji, ali nema dodijeljenu vrijednost, pa je undefined. - Eksplicitno postavljanje na null:
let y = null;– varijablaysadrži vrijednost null, što znači da je namjerno prazna. - Nepostojeće svojstvo objekta:
let obj = {a: 1}; console.log(obj.b);–obj.bne postoji, pa se vraća undefined. - Neodređeni indeks u nizu:
let arr = [1, 2]; console.log(arr[5]);– indeks 5 ne postoji, pa se dobije undefined. - Funkcija bez povratne vrijednosti:
function foo() {}– pozivfoo()vraća undefined. - Namjerno resetiranje varijable:
let data = fetchData(); if (!data) { data = null; }– ovdje programer koristi null da označi da nema podataka, iako bi undefined mogao nastati automatski.
3. Kako ih razlikovati u praksi?
Postoji nekoliko pouzdanih načina za provjeru je li vrijednost null ili undefined:
- Stroga




