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 дөрес булмаган нәтиҗәне турыдан-туры исәпләячәк.