Kezdőlap » A “lusta” (rest) JavaScript paraméter

A “lusta” (rest) JavaScript paraméter

Mivaaaan? Hogy lehet lusta egy paraméter? Egyáltalán mi ez, és valóban létezik? Vagy ez is egy olyan városi legenda, mint Nessie a Loch Ness-i szörny? Ha meg lusta, akkor minek van? Nos, én nem leszek rest elmondani :).

Lusta paraméter nem létezik, de a Rest (ejtsd: reszt) annál inkább :). És szerintem Nessie is, de ez egy másik történet…

Na, de mi is ez? Csak, hogy a rejtélyek világából visszatérjünk a JavaScripthez.

A Rest paraméter

A Rest paramétereket az ES6 vezette be és már önmagában az a tény, hogy paraméter, sejteti nekünk, hogy valamiféle kapcsolatban lehet a függvényekkel. És tényleg. Ugyanis a rest paraméterek lehetővé teszik, hogy egy függvénynek tetszőleges számú paramétert adjunk át, és persze használjuk is őket. Hozzáteszem, hogy a rest paraméterek formailag (szintaktikailag) ugyanúgy néznek ki, mint a Spread operátor (ajaj, egy újabb dolog, amit meg kell magyarázni :), de ezt egy másik cikkben), viszont teljesen máshogy működnek.

A rest paraméterek kapnak egy adag egyszerű változót és egy tömböt állítanak elő belőlük, amikor a függvénynek adjuk át őket.

Egy csapásra érthetővé válik a működésük, ha egy példán keresztül nézzük meg őket: csináljunk egy olyan függvényt, ami tetszőleges darab adatot (lehet szám vagy szöveg is) kap paraméterként, és kiírja őket a konzolba. Azt szeretném bemutatni, hogy valóban egy tömböt kapsz, tehát a rest paraméter igenis teszi a dolgát. De nézzük inkább…

Csináld velem!

Fogd kedvenc kódszerkesztődet vagy egy sima jegyzettömb alkalmazást és kezdd el velem együtt bekalapálni a kódot egy .js fájlba. Meg fogod látni, hogy a rest paraméter funkciója valóban az, hogy a paraméterként átadott változókat egy tömbbe tegye, amit aztán tetszés szerint feldolgozhatsz.

Az első amit gépelj be az a következő:

function restTeszt(...adatok) {
	console.log(adatok);
}
restTeszt(1, 2, 3, 'hello', 'szia');

Létrehoztam egy restTeszt nevű JavaScript függvényt, aminek a paraméterébe írtam három pont után, hogy “adatok”. A függvény törzsében pedig elhelyeztem egy a böngésző konzoljába kiíró utasítást, amivel kiírattam a konzolba a paramétert. Amit a paraméterben látsz az maga a rest paraméter. Három pontot követően egy változó neve. Ilyen egyszerű.

Tehát a rest paraméter úgy működik, hogy fogja azt a csomó egyszerű adatot, amit megadtál neki a függvény hívásakor, belepakolja az “adatok” nevű paraméterbe és ezt átalakítja tömb típusú adattá, amit fel tudsz dolgozni a függvényen belül. Magyarul a sok inputból lesz egyetlen “adatok” nevű tömböd a függvény belsejében.

És, ha most kiíratod a böngészőbe, akkor a konzolban látni fogod, hogy eredményül egy tömböt kaptál.

YouTube a te barátod

És most jön a klasszikus szólás, azaz “aki nem hiszi, járjon utána”. Készítettem ugyanis egy fullos YouTube videót, amiben egy konkrét példán keresztül mutatom be a rest paraméter működését, annál kicsit bővebben, mint itt a leírásban.

Ráadásul azt is megmutatom, hogy a rest paraméterek létezése előtt, az ES5 idejében ezt hogyan oldottuk meg.

Jó szívvel ajánlom neked is: