JavaScript interview savollarida ko’p tushadigan Nullish Coalescing Operator (??) haqida. JavaScript-da juda foydali operatorlardan biri bo'lib, u null yoki undefined qiymatlarni aniqlashda qo'llaniladi.
Category
JavaScript
Interview
Javascript interview
Nullish Coalescing
JavaScript operator
Cover
Slug
nullish-coalescing-operator
Date
‣
author
Published
Published
Nullish Coalescing Operator nima?
ES2020 bizga 2ta so'roq belgisi(??) bilan ifodalanadigan yangi Nullish Coalescing Operatorini qo’shildi
?? operatori, birinchi operandi null yoki undefined bo'lsa, ikkinchi operandni qaytaradi. Agar birinchi operand null yoki undefined bo'lmasa, u holda birinchi operandni qaytaradi.
Sal tushinarsiza 🙄
Demak oddiy tushintirganda Ali maktabga borgan yoki bormagan holatda ?? nima bo’ladi?
// Dastlab Ali hech nima qilmadi
// ya'ni a qiymat default null yoki undefined.
let a = undefined; // yoki null;
let b = "bormadi";
let result a ?? b; // Natija b Ali bormadi chunki qiymat undefined
// a o'zgaruvchi qachon ishlaydi 🤔
// Agar Ali borganda ya'ni null yoki undefined ga teng bo'lmaganda a qiymat ishlaydi
// a o'zgaruvchiga ixtiyoriy bordi qiymatini yozamiz.
a = "bordi";
let result a ?? b; // Natija a chunki Ali bordi
Sintaksis
let result = a ?? b;
Bu yerda:
Agar a qiymati null yoki undefined bo'lsa, result o'zgaruvchisiga b qiymati beriladi.
Aks holda, result o'zgaruvchisiga a qiymati beriladi.
Misol:
let name = null;
let defaultName = "Guest";
let displayName = name ?? defaultName;
console.log(displayName); // "Guest"
Bu misolda name o'zgaruvchisi null ga teng bo'lganligi sababli, displayName o'zgaruvchisi defaultName qiymatini oladi, ya'ni "Guest".
Nullish Coalescing Operator vs. Logical OR (||)
Ba'zan || (Logical OR) operatori bilan ?? operatorini chalkashtirib yuborish mumkin. Ammo ularning ishlash prinsipi farqli:
|| operatori false, 0, bo'sh string "" kabi qiymatlarni ham false deb ko'radi va ikkinchi operandni qaytaradi.
?? operatori faqat null va undefined qiymatlarni ko'rib chiqadi.
Misol:
let count = 0;
let result1 = count || 10;
console.log(result1); // 10, chunki 0 falsy qiymat
let result2 = count ?? 10;
console.log(result2); // 0, chunki 0 null yoki undefined emas
Bu misolda count0 ga teng. || operatori 0 ni false deb ko'rib, 10 qiymatini qaytardi. Ammo ?? operatori 0 qiymatini qabul qiladi, chunki u null yoki undefined emas.
Xulosa
Nullish Coalescing Operator (??) default qiymatlar bilan ishlashda qulayroq bo'lib, aniq null yoki undefined qiymatlar uchun ishlaydi. Bu operator, ayniqsa, false, 0, yoki bo'sh string kabi qiymatlarni default qiymatlar bilan almashtirishni xohlamaganingizda foydalidir.