A null és undefined közötti különbség a JavaScript-ben

Referencia

JavaScript

A null tipikus használata

Funkcióparaméterként azt jelenti, hogy a függvényparaméter nem objektum

            function myFn(obj) {
    if(null == obj) {
        // code
    }
}
        

Az objektum prototípus láncának végén

            Object.getPrototypeOf(Object.prototype);
        

A változó elengedésekor rendeljen null értéket a változóhoz

            let o={
 code:'abc'
};
o = null;
        

A undefined tipikus használata

A változó deklarált, de nincs hozzárendelve, a változó értéke nincs meghatározva

            let o;
console.log(o);    //undefined
        

Az a paraméter, amelyet a függvénynek meg kell adnia, nem kerül megadásra híváskor, akkor a nem megadott paraméter értéke nincs meghatározva

            function myFn(o) {
    console.log(o);
}
myFn();   //undefined
        

Tulajdonságok, amelyeket az objektum nem tartalmaz, az érték nincs meghatározva

            let o={
 code:'abc'
};
console.log(o.name);    //undefined
        

Ha a függvény nem ad vissza értéket, akkor alapértelmezés szerint meghatározatlanul tér vissza

            function myFn(obj) {
    obj = 'a';
}
console.log(myFn());    //undefined
        

A null és a undefined hasonlóságai

Hamis, ha logikai értékre konvertálunk

            console.log(Boolean(null));  // false
console.log(Boolean(undefined)); // false
        

A null és a undefined közötti különbség

Az eredmény számra konvertálva különbözik: A null konverzió eredménye 0 érvényes számérték, a nem definiált konverzió eredménye pedig NaN.

            console.log(Number(null));  // 0
console.log(Number(undefined)); // NaN
        

A két típus különbözik, a null típusa az objektum, és a undefined típusa nincs meghatározva.

            console.log(typeof null); //object
console.log(typeof undefined); //undefined
        

null és undefined összehasonlítása

A null és a undefined megkülönböztetéséhez csak a kongruencia használható, kongruenciában szigorúan összehasonlítja, hogy a két típus egyenlő-e.

            console.log(Boolean(null == undefined));  // true
console.log(Boolean(null === undefined)); // false
        

Összefoglalva

A fenti összehasonlítás után világos megértésünk van e két típusról. Általában, amikor a kód írásakor megítéljük, hogy egy változónak van-e érvényes értéke, akkor nem kell különbséget tennünk a kettő között, csak logikai típusként kell használnunk. De amikor meg kell ítélnünk, hogy az ingatlan létezik-e, akkor szigorúan a típust kell használnunk a meghatározatlan megítéléshez. Végül, ha átadunk egy numerikus értéket, először meg kell határoznunk, és nem lehet közvetlenül numerikus típusra vetíteni, különben a null kóros eredményeket fog elérni, és a undefined közvetlenül kiszámítja az érvénytelen NaN eredményt.