Sobes.tech
Junior

JavaScriptте null жана undefined ортосундагы айырмачылыктарды кеңири түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

  • undefined:

    • Өзгөрмөгө белгиленген, бирок мааниси берилбеген өзгөрмөлөргө берилет.
    • Функциянын параметрлери үчүн, эгер аргументтер берилбесе, алдын ала белгиленген мааниси.
    • Объекттин же массивдин бар эмес өзгөчөлүгүнө же элементине кирүүгө аракет кылганда ал алынат.
    • Маалымат түрү — undefined.
  • null:

    • Специальдуу мааниси бар, өзгөрмөгө так белгиленген "маананын жоктугун" көрсөтүү үчүн.
    • Көзгө көрүнгөндөй, объекттин же примиативдүү маанинин максаттуу жоктугун билдирет.
    • Маалымат түрү — object (бул JavaScriptтин тарыхый катасы, бирок ошондой).

Негизги айырмачылыктар таблицада:

Өзгөчөлүк undefined null
келип чыгышы Жасалма (өз алдынча) Максаттуу (иштеп чыгуучу белгилейт)
Мазмуну Жарияланган, бирок мааниси берилбеген Максаттуу маанинин жоктугу
Маалымат түрү (typeof) undefined object
Boolean контекст false false
Теңдик (==) null == undefined (чын) null == undefined (чын)
Теңдик (===) null === undefined (жок) null === undefined (жок)

Мисал:

let a; // Оголошулуп, бирок мааниси берилбеген -> undefined
console.log(a); // undefined

const obj = {};
console.log(obj.prop); // Бар эмес өзгөчөлүккө кирүү -> undefined

function greet(name) {
  console.log(name);
}
greet(); // Параметр берилбеген -> undefined

let b = null; // Ачык белгиленген null
console.log(b); // null

let c = {};
c.data = null; // Өзгөрмөгө null берилген
console.log(c.data); // null

console.log(typeof a); // undefined
console.log(typeof b); // object
console.log(null == undefined); // чын
console.log(null === undefined); // чын эмес