Zamonaviy JavaScript: destructuring va spread
2015-yildan beri JavaScript’ga ko’p qulay yozuvlar qo’shildi. Ular kodni qisqartiradi va zamonaviy loyihalarda hamma joyda uchraydi.
Destructuring — massivdan ajratish
Eski usul uzunroq edi:
const birinchi = ranglar[0];
const ikkinchi = ranglar[1];
Obyektdan ajratish
Bu yerda uch narsa: xossani ajratish, boshqa nom berish (guruh: sinf) va
mavjud bo’lmasa standart qiymat.
Funksiya parametrida
Funksiya obyektning faqat kerakli qismini oladi — nima ishlatilishi darhol ko’rinadi.
Spread — yoyish
... massiv elementlarini “yoyadi”. Bu nusxa olishning eng qulay usuli —
nusxa o’zgarganda asl massiv tegilmadi.
Obyektlar uchun ham ishlaydi:
Keyin kelgan xossa oldingisini almashtiradi — shuning uchun yosh: 21 ustun
chiqdi.
Rest — yig’ish
Xuddi shu ... teskari vazifani ham bajaradi:
Chap tomonda (o’zlashtirishda) — yig’adi; o’ng tomonda (chaqiruvda) — yoyadi.
Qisqa xossa nomi
O’zgaruvchi nomi bilan xossa nomi bir xil bo’lsa, bir marta yozish kifoya.
Nullish operatorlari
??faqatnullvaundefinedda standart qiymatga o’tadi;||esa har qanday falsy qiymatda (0,""ham).
Shuning uchun son yoki bo’sh matn haqiqiy qiymat bo’lishi mumkin bo’lgan
joyda ?? xavfsizroq.
Amaliy mashq
Zamonaviy sintaksisni qo’llang:
- Massivdan birinchi ikki elementni destructuring bilan ajrating;
- obyektdan ikki xossani ajrating va bittasiga yangi nom bering;
- spread bilan ikkita massivni birlashtiring;
- obyekt nusxasini olib, bitta xossasini o’zgartiring — asli tegilmadimi?
- rest bilan istalgancha argument oladigan funksiya yozing;
??va||ni0qiymatda solishtiring.
6-qadam ikkalasining farqini aniq ko’rsatadi.
Qisqacha xulosa
- Destructuring massiv (tartib bo’yicha) va obyektdan (kalit bo’yicha) qiymat ajratadi.
- Spread
...yoyadi — birlashtirish va nusxa olish uchun. - Rest
...yig’adi — qolgan elementlar yoki argumentlar. - Xossa nomi o’zgaruvchi bilan bir xil bo’lsa qisqartiriladi:
{ ism }. ??faqatnull/undefinedda ishlaydi,||barcha falsy qiymatda.
Keyingi darsda modullar — kodni fayllarga bo’lishni ko’ramiz.