A rest operátor JavaScriptben
Ezt a leckét egy magyarázattal kezdjük.
A szakasz összes előző leckéjében nem
mondtam el az egész igazságot a ... operátorról.
Valójában ez az operátor a kódban elfoglalt helyétől függően spread operátornak vagy rest operátornak nevezhető.
Amint már tudod, amikor a spread operátor
egy tömb vagy sztring előtt áll, akkor azokat
egyedi értékekre bontja szét. A rest operátor,
bár ugyanaz a szintaxisa ... formájában,
más célra szolgál.
Most megnézzük, mire. Tegyük fel, hogy van egy függvényünk, amely két paramétert fogad:
function func(a, b) {
console.log(a);
console.log(b);
}
Már tudnotok kell, hogy ha a függvénybe túl sok paramétert adunk át, az nem vezet hibához:
func(1, 2, 3, 4, 5);
A rest operátor lehetővé teszi az összes
többlet paraméter megkapását tömb formájában. Ehhez
a függvényhez hozzáadunk még egy paramétert (kötelezően
az utolsóként), amely elé 3 pontot írunk:
function func(a, b, ...rest) {
}
Ez a három pont maga a rest operátor, és a
változó neve bármi lehet, de
általában szokás rest-nek is hívni.
Hívjuk meg a függvényünket túl sok
paraméterrel, és nézzük meg, hogy mi kerül
a a és b paraméterekbe,
és mi - a rest maradékba:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // kiírja 1-et
console.log(b); // kiírja 2-t
console.log(rest); // kiírja [3, 4, 5]-öt
}
Ha nincsenek többlet paraméterek, akkor a
rest változóba egy üres tömb kerül:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // kiírja 1-et
console.log(b); // kiírja 2-t
console.log(rest); // kiírja []
}
A függvényben egyáltalán nem is kell paramétereknek lenni,
de közben hozzáadhatunk rest-et.
Ebben az esetben a függvény meghívható
tetszőleges számú paraméterrel, és mindegyik
a rest tömbbe kerül:
function func(...rest) {
console.log(rest);
}