Sobes.tech
Junior

Kuo skiriasi null nuo undefined?

sobes.tech AI

Atsakymas iš AI

undefined rodo, kad nėra priskirtos reikšmės. Kintamasis yra deklaruotas, bet jam nėra priskirta jokia reikšmė. Tai yra rezultatas, kai bandome pasiekti neegzistuojančią objekto savybę arba masyvo elementą.

null yra aiškus priskyrimas reikšmės "reikšmės nebuvimas". Kūrėjas tyčia nurodo, kad kintamasis arba objekto savybė neturi reikšmės. Tai yra objektas, bet ne primitivas pagal tipą (nors typeof null grąžina 'object', kas yra kalbos istorijos klaida).

// undefined
let x;
console.log(x); // undefined

const obj = {};
console.log(obj.prop); // undefined

// null
let y = null;
console.log(y); // null

const obj2 = { prop: null };
console.log(obj2.prop); // null