Rest parametrlar va spread sintaksisi
...
Rest parametrlar va spread sintaksisi
JavaScript da ko'plab ichki funksiyalar istalgancha argument qabul qilishi mumkin.
Masalan:
Math.max(arg1, arg2, ..., argN)– argumentlarning eng kattasini qaytaradi.Object.assign(dest, src1, ..., srcN)–src1..Nnidestga nusxa ko'chiradi.
Ushbu bobda biz xuddi shunday qanday qilishni o'rganamiz. Shuningdek, qanday qilib massivlarni bunday funksiyalarga parametr sifatida o'tkazishni ham ko'rib chiqamiz.
Rest parametrlar
Funksiya har qancha argument bilan chaqirilishi mumkin, bu uning qanday aniqlanganiga bog'liq emas.
Masalan:
Bu yerda ortiqcha argumentlar sababli xato bo'lmaydi. Ammo, natijada faqat birinchi ikkita qiymat hisobga olinadi va kodda natija 3 bo'ladi.
Rest parametrlar funksiyaning aniqlanishida uchta nuqta (...) orqali qo'shilishi mumkin. Bu nuqtalar Rest parametrlarni massivga yig'ish uchun ishlatiladi.
Masalan, barcha argumentlarni args massiviga yig'ish uchun:
Biz birinchi parametrlarni o'zgaruvchilar sifatida olishimiz va faqat Restlarini yig'ishimiz mumkin.
Bu yerda birinchi ikkita argument o'zgaruvchilar sifatida olinadi va Restlari titles massiviga yig'iladi:
Rest parametrlar oxirida bo'lishi kerak
Rest parametrlar barcha Rest argumentlarni yig'adi, shuning uchun quyidagi holat noto'g'ri bo'ladi va xato yuzaga keladi:
Rest parametrlar har doim oxirgi bo'lishi kerak.
"arguments" o'zgaruvchisi
Shuningdek, arguments nomli maxsus massivga o'xshash obyekt mavjud bo'lib, u barcha argumentlarni indekslari bo'yicha o'z ichiga oladi.
Masalan:
Ilgari Rest parametrlar tilga kiritilmagan edi va funksiyadagi barcha argumentlarni olishning yagona usuli arguments edi. U hali ham ishlaydi, lekin kamchilik shundaki, arguments massivga o'xshash bo'lsa ham, u massiv emas.
Arrow funksiyalar va "arguments"
Arrow funksiyalar o'zlarining arguments obyektiga ega emas. Agar biz arguments obyektiga murojaat qilsak, u tashqi funksiyadan olinadi.
Masalan:
spread (spread) sintaksisi
Ba'zida massivni argumentlar ro'yxatiga aylantirishimiz kerak bo'ladi.
Masalan, Math.max funksiyasi eng katta sonni qaytaradi:
Ammo agar bizda massiv bo'lsa, uni qanday qilib Math.max ga yuborish mumkin?
spread sintaksisi yordamga keladi! U xuddi Rest parametrlarga o'xshaydi, ammo aksi bo'ladi. spread sintaksisi massivni argumentlar ro'yxatiga kengaytiradi.
Masalan:
Massivlar va obyektlarni nusxalash
Object.assign haqida gapirganimizda, biz spread sintaksisini ham ishlatishimiz mumkinligini bilamiz.
spread sintaksisi orqali obyektlarni ham nusxalash mumkin:
Xulosa
Kodda ... ko'rganimizda, bu yoki Rest parametrlar, yoki spread sintaksisi bo'lishi mumkin.
- Funksiya parametrlarida
...Rest parametrlar bo'lib, argumentlarni massivga yig'adi. - Funksiya chaqirilganida esa bu spread sintaksisi bo'lib, massivni argumentlar ro'yxatiga aylantiradi.
Last updated on