⊗jsPmROInr 294 of 505 menu

Operátor rest v JavaScriptu

Tuto lekci začneme jistým vysvětlením. Ve všech předchozích lekcích této sekce jsem vám neřekl celou pravdu o operátoru ...

Ve skutečnosti se tento operátor v závislosti na místě v kódu může nazývat buď operátor spread, nebo operátor rest.

Jak již víte, když operátor spread stoji před polem nebo řetězcem, rozděluje je na jednotlivé hodnoty. Operátor rest, ačkoli má stejnou syntaxi ve tvaru ..., je určen pro něco jiného.

Nyní si rozebereme, k čemu. Nechť máme funkci přijímající dva parametry:

function func(a, b) { console.log(a); console.log(b); }

Již byste měli vědět, že pokud do funkce předáte nadbytečné parametry, nepovede to k chybě:

func(1, 2, 3, 4, 5);

Operátor rest umožňuje získat všechny nadbytečné parametry ve formě pole. K tomu se do funkce přidá ještě jeden parametr (povinně jako poslední), před kterým se píší 3 tečky:

function func(a, b, ...rest) { }

Tyto tři tečky jsou operátor rest, a název proměnné může být libovolný, ale obvykle je také zvykem jej nazývat rest.

Zavolejme naši funkci s nadbytečným množstvím parametrů a podívejme se, co se dostane do parametrů a a b, a co - do zbytku rest:

func(1, 2, 3, 4, 5); function func(a, b, ...rest) { console.log(a); // vypíše 1 console.log(b); // vypíše 2 console.log(rest); // vypíše [3, 4, 5] }

Pokud nadbytečné parametry nebudou, pak do proměnné rest se zapíše prázdné pole:

func(1, 2); function func(a, b, ...rest) { console.log(a); // vypíše 1 console.log(b); // vypíše 2 console.log(rest); // vypíše [] }

Funkce obecně nemusí mít žádné parametry, ale přesto do ní lze přidat rest. V tomto případě lze funkci volat s libovolným množstvím parametrů a všechny se dostanou do pole rest:

function func(...rest) { console.log(rest); }
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout