Bedane antarane batal lan ora ditemtokake ing JavaScript

Referensi

JavaScript

Panggunaan khas nol

Minangka paramèter fungsi, tegese paramèter fungsi dudu obyek

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

Minangka pungkasan rantai prototipe obyek

            Object.getPrototypeOf(Object.prototype);
        

Nalika ngeculake variabel, pilih nol menyang variabel

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

Panggunaan khas sing durung ditemtokake

Variabel kasebut dinyatakake nanging ora diwenehake, regane variabel durung ditemtokake

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

Parameter sing kudu diwenehake fungsi ora diwenehake nalika nelpon, mula nilai parameter sing ora diwenehake ora ditemtokake

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

Properti sing ora ana obyek, regane durung ditemtokake

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

Yen fungsi ora ngasilake regane, bakal bali ora ditemtokake minangka standar

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

Persamaan antara batal lan ora ditemtokake

Salah yen diowahi dadi boolean

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

Bedane batal lan ora ditemtokake

Asilé beda nalika diowahi dadi nomer. Asil konversi nol yaiku angka angka valid 0, lan asil konversi sing durung ditemtokake yaiku NaN.

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

Kaloro jinis kasebut beda, jinis nol yaiku obyek, lan jinis sing durung ditemtokake ora ditemtokake.

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

mbandhingake batal lan ora ditemtokake

Kanggo mbedakake antarane sing mbatalake lan ora ditemtokake, mung bisa digunakake kongruensi. Ing kongruensi, bakal mbandhingake manawa rong jinis kasebut padha.

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

kanggo nyimpulake

Sawise mbandhingake ing ndhuwur, kita duwe pangerten sing jelas babagan rong jinis kasebut. Biasane, nalika kita mutusake manawa variabel duwe nilai sing valid nalika nulis kode, kita ora prelu mbedakake, mula digunakake minangka jinis Boolean. Nanging yen kudu milih manawa properti kasebut ana, kita kudu nggunakake jinis kasebut kanthi ketat kanggo menehi penilaian sing durung ditemtokake. Pungkasan, yen kita ngetrapake angka angka, kita kudu mutusake dhisik, lan ora bisa langsung dikirim menyang jinis angka, yen ora bakal nyebabake kita entuk asil sing ora normal, lan ora ditemtokake bakal langsung ngetung NaN asil sing ora valid.