Junior
Kas saak täpsemalt selgitada erinevusi null ja undefined vahel JavaScriptis?
sobes.tech AI
Vastus AI-lt
-
undefined:- Muutujatele omistatakse, kui need on deklareeritud, kuid neile pole väärtust määratud.
- Funktsiooni parameetrite vaikimisi väärtus, kui argumente ei edastata.
- Saadakse, kui püüate ligi pääseda objekti või massiivi olematule omadusele.
- Andmetüüp —
undefined.
-
null:- On spetsiaalne väärtus, mis otseselt omistatakse muutujale, tähistamaks "väärtuse puudumist".
- Esindab teadlikku kõigi objekti või primitiivse väärtuse puudumist.
- Andmetüüp —
object(see on JavaScripti ajalooline viga, kuid nii on).
Peamised erinevused tabelis:
| Omadus | undefined |
null |
|---|---|---|
| Pärinemine | Kaudne (vaikimisi) | Otsene (arendaja määrab) |
| Otstarve | Deklareeritud, kuid väärtus määramata | Teadlik väärtuse puudumine |
Andmetüüp (typeof) |
undefined |
object |
| Boolean kontekst | false |
false |
Võrdlus (==) |
null == undefined (tõsi) |
null == undefined (tõsi) |
Võrdlus (===) |
null === undefined (väär) |
null === undefined (väär) |
Näide:
let a; // Deklareeritud, kuid mitte initsialiseeritud -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Juurdepääs mitteolevatele omadustele -> undefined
function greet(name) {
console.log(name);
}
greet(); // Parameeter ei edastata -> undefined
let b = null; // Selgelt määratud null
console.log(b); // null
let c = {};
c.data = null; // Omadusele määratud 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