⊗jsPmROInr 294 of 505 menu

Operator rest w JavaScript

Niniejszą lekcję zaczniemy od pewnego wyjaśnienia. We wszystkich poprzednich lekcjach tego działu nie powiedziałem wam całej prawdy o operatorze ...

W rzeczywistości ten operator, w zależności od miejsca w kodzie, może być nazywany albo operatorem spread, albo operatorem rest.

Jak już wiecie, gdy operator spread stoi przed tablicą lub ciągiem znaków, dzieli je na pojedyncze wartości. Operator rest, chociaż ma taką samą składnię w postaci ..., jest przeznaczony do czegoś innego.

Teraz się przekonamy, do czego. Niech będzie nam dana funkcja przyjmująca dwa parametry:

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

Powinniście już wiedzieć, że jeśli do funkcji przekażemy zbędne parametry, nie doprowadzi to do błędu:

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

Operator rest pozwala uzyskać wszystkie zbędne parametry w postaci tablicy. W tym celu do funkcji dodaje się jeszcze jeden parametr (koniecznie jako ostatni), przed którym stawia się 3 kropki:

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

Te trzy kropki to właśnie operator rest, a nazwa zmiennej może być dowolna, ale zwykle przyjęło się również nazywać go rest.

Wywołajmy naszą funkcję z nadmiarową liczbą parametrów i zobaczmy, co trafia do parametrów a i b, a co - do reszty rest:

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

Jeśli nie będzie zbędnych parametrów, to do zmiennej rest zapisze się pusta tablica:

func(1, 2); function func(a, b, ...rest) { console.log(a); // wypisze 1 console.log(b); // wypisze 2 console.log(rest); // wypisze [] }

Funkcja w ogóle może nie mieć parametrów, ale mimo to można do niej dodać rest. W tym przypadku funkcję będzie można wywołać z dowolną liczbą parametrów i wszystkie one będą trafiać do tablicy rest:

function func(...rest) { console.log(rest); }
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć