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