JavaScript-da rest operatori
Ushbu darsni ma'lum bir tushuntirish bilan boshlaymiz.
Ushbu bo'limning barcha oldingi darslarida men
sizga ... operatori haqida to'liq haqiqatni
aytmagan edim.
Aslida bu operator kod joylashgan joyiga qarab spread operatori yoki rest operatori deb nomlanishi mumkin.
Siz allaqachon bilasizki, spread operatori
massiv yoki satr oldida turganida, ularni
alohida qiymatlarga ajratadi. Rest operatori,
garchi ... ko'rinishida bir xil sintaksisga ega bo'lsa-da,
boshqa maqsad uchun mo'ljallangan.
Keling, u nima uchun ekanligini aniqlaymiz. Faraz qilaylik bizda ikkita parametr qabul qiladigan funksiya mavjud:
function func(a, b) {
console.log(a);
console.log(b);
}
Siz allaqachon bilishingiz kerakki, agar funksiyaga keragidan ortiq parametrlar uzatilsa, bu xatolikka olib kelmaydi:
func(1, 2, 3, 4, 5);
Rest operatori barcha ortiqcha parametrlarni
massiv ko'rinishida olish imkonini beradi. Buning uchun
funksiyaga yana bir parametr qo'shiladi (majburiy ravishda
oxirgi), oldiga 3 nuqta qo'yiladi:
function func(a, b, ...rest) {
}
Ushbu uchta nuqta rest operatori hisoblanadi va
o'zgaruvchi nomi ixtiyoriy bo'lishi mumkin, lekin
odatda uni ham rest deb atash odat tusiga kirgan.
Keling, funksiyamizni ortiqcha
parametrlar bilan chaqiraylik va a va b parametrlariga nima kirishini,
qolgan qismiga rest esa nima kirishini ko'rib chiqaylik:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // 1 chiqadi
console.log(b); // 2 chiqadi
console.log(rest); // [3, 4, 5] chiqadi
}
Agar ortiqcha parametrlar bo'lmasa, u holda o'zgaruvchiga
rest bo'sh massiv yoziladi:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // 1 chiqadi
console.log(b); // 2 chiqadi
console.log(rest); // [] chiqadi
}
Funksiyada umuman parametrlar bo'lmasligi mumkin,
lekin shu bilan birga unga rest qo'shish mumkin.
Bunda funksiyani
har qanday miqdordagi parametrlar bilan chaqirish mumkin va ularning barchasi
rest massiviga tushadi:
function func(...rest) {
console.log(rest);
}