Rest operaator JavaScriptis
Alustame seda õppetundi seletusega.
Kõigis eelmistes õppetundides selles jaotises ma ei
rääkinud teile kogu tõdest ... operaatori kohta.
Tegelikult võib see operaator sõltuvalt kohast koodis nimetada kas spread operaatoriks või rest operaatoriks.
Nagu te juba teate, kui spread operaator
seisab massiivi või stringi ees, jagab see
need üksikuteks väärtusteks. Rest operaator,
kuigi sellel on sama süntaks kujul ...,
on mõeldud millegi muu jaoks.
Vaatame nüüd, mille jaoks. Olgu meil funktsioon, mis võtab kaks parameetrit:
function func(a, b) {
console.log(a);
console.log(b);
}
Te peaksite juba teadma, et kui funktsiooni edastada liigseid parameetreid, ei too see kaasa viga:
func(1, 2, 3, 4, 5);
Rest operaator võimaldab saada kõik
liigsed parameetrid massiivi kujul. Selleks
lisatakse funktsiooni veel üks parameeter (tingimata
viimasena), mille ette kirjutatakse 3 punkti:
function func(a, b, ...rest) {
}
Need kolm punkti ongi rest operaator, ja muutuja
nimi võib olla suvaline, kuid
tavaliselt nimetatakse seda ka rest-iks.
Kutsume oma funktsiooni liigse
parameetrite arvuga ja vaatame, mis satub
parameetritesse a ja b, ja mis -
jääb rest-i:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // väljastab 1
console.log(b); // väljastab 2
console.log(rest); // väljastab [3, 4, 5]
}
Kui liigseid parameetreid ei ole, siis muutujasse
rest kirjutatakse tühi massiiv:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // väljastab 1
console.log(b); // väljastab 2
console.log(rest); // väljastab []
}
Funktsioonil võib üldse mitte olla parameetreid,
kuid sellele saab lisada rest.
Sellisel juhul saab funktsiooni välja kutsuda
suvalise arvu parameetritega ja kõik need
satuvad massiivi rest:
function func(...rest) {
console.log(rest);
}