Sobes.tech
Junior

Կարող եք մանրամասն բացատրել null և undefined տարբերությունները JavaScript-ում?

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); // true
console.log(null === undefined); // false