JavaScript'та нуль белән билгеләнмәгән аерма

Сылтама

JavaScript

Типик куллану

Функция параметры буларак, бу функция параметры объект түгел дигән сүз

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

Объект прототип чылбырының ахыры

            Object.getPrototypeOf(Object.prototype);
        

Theзгәргечне чыгарганда, үзгәрүчене нульгә билгеләгез

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

Билгесез куллану

Theзгәргеч игълан ителә, ләкин билгеләнми, үзгәрүченең бәясе билгеләнмәгән

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

Функция бирергә тиеш параметр шалтыратканда бирелми, аннары тәкъдим ителмәгән параметрның бәясе билгеләнмәгән

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

Предмет булмаган әйберләр, кыйммәт билгеләнмәгән

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

Функция кыйммәтне кире кайтармаганда, килешү буенча билгеләнмәгән кайта

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

Нуль белән билгеләнмәгән охшашлыклар

Буланга әйләндергәндә ялган

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

Нуль белән билгеләнмәгән аерма

Санга үзгәртелгәндә нәтиҗә төрле була.

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

Ике төр төрле, нуль төре - объект, һәм билгеләнмәгән төр билгеләнмәгән.

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

нуль һәм билгесезне чагыштырыгыз

Нуль белән билгеләнмәгәнне аеру өчен, конгруенция генә кулланыла ала. Конгруенциядә ул ике төрнең тигез булу-булмавын катгый чагыштырачак.

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

йомгаклау

Aboveгарыдагы чагыштырудан соң, без бу ике төрне ачык аңлыйбыз. Гадәттә, код язганда үзгәрүченең дөрес кыйммәте бармы-юкмы икәнлеген тикшергәндә, икесен аерырга кирәкми, аны Буле тибы итеп кулланыгыз. Ләкин милек бармы-юкмы икәнен ачыкларга кирәк булганда, без билгесез хөкем итү өчен төрне катгый кулланырга тиеш. Ниһаять, сан кыйммәтен узсак, без башта хөкем чыгарырга тиеш, һәм турыдан-туры сан төренә ташлана алмыйбыз, югыйсә нуль безгә аномаль нәтиҗәләргә китерәчәк, һәм билгеләнмәгән NaN дөрес булмаган нәтиҗәне турыдан-туры исәпләячәк.