Junior
Môžeš podrobnejšie vysvetliť rozdiely medzi null a undefined v JavaScripte?
sobes.tech AI
Odpoveď od AI
-
undefined:- Priraďuje sa premenným, ktoré boli oznámené, ale nie sú inicializované hodnotou.
- Je predvolenou hodnotou pre parametre funkcií, ktorým neboli odovzdané argumenty.
- Získa sa pri pokuse o prístup k neexistujúcej vlastnosti objektu alebo prvku poľa.
- Typ údajov —
undefined.
-
null:- Je špeciálnou hodnotou, ktorá sa výslovne priraďuje premennej na označenie "neexistencie hodnoty".
- Predstavuje úmyselné chýbanie akéhokoľvek objektu alebo primitívnej hodnoty.
- Typ údajov —
object(je to historická chyba JavaScriptu, ale tak to je).
Hlavné rozdiely v tabuľke:
| Charakteristika | undefined |
null |
|---|---|---|
| Pôvod | Nepriame (predvolené) | Priame (priraďuje vývojár) |
| Účel | Oznámené, ale nie priradené hodnote | Úmyselne chýbajúca hodnota |
Typ údajov (typeof) |
undefined |
object |
| Boolean kontext | false |
false |
Rovnosť (==) |
null == undefined (true) |
null == undefined (true) |
Rovnosť (===) |
null === undefined (false) |
null === undefined (false) |
Príklad:
let a; // Oznámené, ale nie inicializované -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Prístup k neexistujúcej vlastnosti -> undefined
function greet(name) {
console.log(name);
}
greet(); // Parameter name nie je odovzdaný -> undefined
let b = null; // Výslovne priradené null
console.log(b); // null
let c = {};
c.data = null; // Vlastnosti data je priradené 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