Junior
Vai vari sīkāk izskaidrot atšķirības starp null un undefined JavaScript?
sobes.tech AI
Atbilde no AI
-
undefined:- Tiek mainīgajiem, kas ir deklarēti, bet tiem nav piešķirta vērtība.
- Tā ir noklusējuma vērtība funkciju parametriem, kuriem nav nodoti argumenti.
- Tiek iegūta, mēģinot piekļūt neeksistējošai objekta īpašībai vai masīva elementam.
- Datu tips —
undefined.
-
null:- Ir īpaša vērtība, kas tieši piešķirta mainīgajam, lai norādītu "vērtības trūkumu".
- Apzīmē apzinātu jebkura objekta vai primitivās vērtības trūkumu.
- Datu tips —
object(tas ir vēsturiska JavaScript kļūda, bet tā ir).
Galvenās atšķirības tabulā:
| Raksturlielums | undefined |
null |
|---|---|---|
| Rašanās | Ne tieši (noklusējuma) | Tieši (izstrādātājs piešķir) |
| Mērķis | Deklarēts, bet nenodots vērtība | Apzināta vērtības trūkums |
Datu tips (typeof) |
undefined |
object |
| Boolean konteksts | false |
false |
Vienādojums (==) |
null == undefined (patiesība) |
null == undefined (patiesība) |
Vienādojums (===) |
null === undefined (nepatiesība) |
null === undefined (nepatiesība) |
Piemērs:
let a; // Deklarēts, bet nenodots -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Pieeja neeksistējošai īpašībai -> undefined
function greet(name) {
console.log(name);
}
greet(); // Parametrs nav nodots -> undefined
let b = null; // Skaidri piešķirts null
console.log(b); // null
let c = {};
c.data = null; // Īpašībai piešķirts 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