Rest օպերատորը JavaScript-ում
Այս դասը կսկսենք որոշակի բացատրությամբ։
Բաժնի բոլոր նախորդ դասերում ես ձեզ
չէի ասել ամբողջ ճշմարտությունը ... օպերատորի մասին։
Իրականում այս օպերատորը՝ կախված կոդում գտնվելու վայրից, կարող է կոչվել spread օպերատոր կամ rest օպերատոր։
Ինչպես արդեն գիտեք, երբ spread օպերատորը
կանգնած է զանգվածի կամ տողի դիմաց, այն բաժանում է
դրանք առանձին արժեքների։ Rest օպերատորը,
չնայած ունի նույն շարահյուսությունը ... տեսքով,
բայց նախատեսված է այլ նպատակով։
Հիմա կպարզենք, թե ինչի համար։ Ենթադրենք մենք ունենք ֆունկցիա, որն ընդունում է երկու պարամետր։
function func(a, b) {
console.log(a);
console.log(b);
}
Դուք արդեն պետք է իմանաք, որ եթե ֆունկցիային փոխանցվեն ավելորդ պարամետրեր, դա չի հանգեցնի սխալի։
func(1, 2, 3, 4, 5);
Rest օպերատորը թույլ է տալիս ստանալ բոլոր
ավելորդ պարամետրերը զանգվածի տեսքով։ Դրա համար
ֆունկցիային ավելացվում է ևս մեկ պարամետր (պարտադիր
վերջինը), որից առաջ գրվում են 3 կետ։
function func(a, b, ...rest) {
}
Այս երեք կետերը հենց rest օպերատորն են, իսկ փոփոխականի
անունը կարող է ունենալ ցանկացած անվանում, բայց
sովորաբար ընդունված է նաև այն կոչել rest։
Եկեք կանչենք մեր ֆունկցիան ավելորդ
քանակությամբ պարամետրերով և տեսնենք, թե ինչ է ընկնում
a և b պարամետրերի, և ինչ՝
rest մնացորդի մեջ։
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // կարտածի 1
console.log(b); // կարտածի 2
console.log(rest); // կարտածի [3, 4, 5]
}
Եթե ավելորդ պարամետրեր չլինեն, ապա փոփոխականի
մեջ rest կգրվի դատարկ զանգված։
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // կարտածի 1
console.log(b); // կարտածի 2
console.log(rest); // կարտածի []
}
Ֆունկցիան ընդհանրապես կարող է չունենալ պարամետրեր,
բայց միևնույն ժամանակ դրան կարելի է ավելացնել rest։
Այս դեպքում ֆունկցիան կարելի է կանչել
ցանկացած քանակությամբ պարամետրերով, և դրանք բոլորը
կընկնեն rest զանգվածի մեջ։
function func(...rest) {
console.log(rest);
}