JavaScript-daky rest operator
Bu sapaga birnäçe düşündiriş bilen başlarys.
Bu bölümiň ähli öňki sapaklarynda men size
... operator hakynda ähli hakykaty aýtmadym.
Aslynda bu operator kodyň nirede durşuna baglylykda ýa-da spread operator, ýa-da rest operator diýip atlandyrylýar.
Size belli bolşy ýaly, spread operator
massiw ýa-da setir öňünde duranda, ony
ayratyn bahalara bölýär. Rest operator,
görnüşi ... şekilde bolsa-da,
başga maksat üçin ulanylýar.
Indi nähili işleýändigini göreli. Bizde iki parametr kabul edýän funksiýa bar bolsun:
function func(a, b) {
console.log(a);
console.log(b);
}
Funksiýa artykmaç parametrler geçse, ýalňyşlyk döretmejekdigini bilmelisiňiz:
func(1, 2, 3, 4, 5);
rest operator ähli artykmaç parametrleri
massiw görnüşinde almagy hödürleýär. Bunuň üçin
funksiýa ýene bir parametr (ähmiýetli, iň soňky)
goşulýar, onuň öňüne 3 nokat goýulýar:
function func(a, b, ...rest) {
}
Bu üç nokat rest operator we onuň ady
islendik bolup biler, ýöne adetçe
ona rest diýilýär.
Geliň, funksiýamyzy artykmaç parametrler
bilen çagyryp, a we b parametrlerine näme,
rest galyndysyna näme düşýändigine göz aýlanyş:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // 1 çykarar
console.log(b); // 2 çykarar
console.log(rest); // [3, 4, 5] çykarar
}
Eger artykmaç parametr bolmasa, onda
rest üýtgeýjisine boş massiw ýazylyşar:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // 1 çykarar
console.log(b); // 2 çykarar
console.log(rest); // [] çykarar
}
Funksiýada parametrler bolmaýan bolup bilýär,
ýöne şonda-da rest goşup bolýar.
Bu ýagdaýda funksiýa islendik mukdarda parametr
bilen çagyrylyp bilner we olaryň hemmesi
rest massiwine düşer:
function func(...rest) {
console.log(rest);
}