Što je to i zašto nam to treba?

Sintaksa širenja uvedena je u ES6 specifikaciju JavaScript-a. Otada se pokazao vrijednim dijelom koda što čini kôd čistim i lako razumljivim.
MDN definira ... kao:
Sintaksa širenja omogućuje proširivanje itera, poput izraza niza ili niza, na mjestima gdje se očekuje nula ili više argumenata (za pozive funkcija) ili elemenata (za literal niza) ili proširenje izraza objekta na mjestima gdje je nula ili više očekuju se parovi ključ / vrijednost (za objektne literale).Složimo se svi da je gornja definicija pregršt i nitko od nas nije uhvatio riječ koju pokušava izgovoriti. Počnimo s najosnovnijim stvarima o sintaksi širenja.
- Operator širenja je samo 3 točke
...
- Može se koristiti na iterabilima poput niza ili niza.
- Proširuje iterabilnost na svoje pojedinačne elemente
- Može pružiti poziv funkcije s nizom (ili bilo kojim drugim iterabilnim) gdje se očekivalo 0 ili više argumenata.
Primjer
Isječak u nastavku sadrži funkciju zvanu zbroj koja očekuje 3 argumenta x, y i z. Imamo niz s 3 elementa i želimo proslijediti elemente u nizu kao argumente za funkciju.

Prije uvođenja operatora širenja to je učinjeno pomoću funkcije apply.
Nakon uvođenja operatora širenja, to bi se moglo učiniti vrlo jednostavno:

Kao što se može vidjeti iz gornjeg isječka s operatorom širenja, ne moramo koristiti funkciju apply. To nas štedi od pisanja više koda.
Gornji primjer daje vrlo grubu i kratku ideju o operatoru širenja. Prvo, uđimo u više detalja u vezi s istim, a zatim ćemo vidjeti još primjera.
Sintaksa
Operator širenja može se koristiti na mnogo načina i scenarija kao što su
- Unutar poziva funkcije

Kada se koristi u gornjem scenariju …
, naziva se parametar ostatak. Primjere povezane s tim vidjet ćemo u odjeljku primjera.
- Stvaranje / proširivanje niza / iterable:

Primjeri
- Kao odmor
... koristi se kao argument za varijadnu funkciju. Varijadna funkcija je funkcija koja može imati promjenjiv broj parametara.

Ovdje kada vratimo arg, vidimo da vraćamo svoj niz koji smo proslijedili kao zasebne vrijednosti u pozivu. To pokazuje da operator odmora zapravo radi točno suprotno sintaksi širenja. Jedan proširuje, a jedan kondenzira vrijednost.
Još jedna stvar koju treba istaknuti je da u definiciji funkcije nema određenog broja parametara. To znači da upotreba ... funkcija može imati n broj argumenata. Ne moramo prethodno navesti parametre.
Ovo je osobito vrlo fleksibilan način primanja argumenata za funkciju za koju određeni broj argumenata nije određen poput funkcije Math.max i Math.min. To su različite funkcije jer im broj ulaza može biti beskonačan.
Vratimo se na primjer, kako bismo dobili zbroj svih argumenata

Moramo ponoviti niz i dodati sve pojedinačne elemente da bismo dobili rezultat.
- Gurajte elemente u nizu
funkcija push () koristi se za guranje elemenata u niz. Ograničenje guranja je da moramo gurati elemente jedan po jedan (guranje (1,2,3)). Ako postoji niz čiji će elementi biti umetnuti u polje pomoću push-a, dobit ćemo višedimenzionalni niz, koji nismo tražili.

Opet se primijenite na spašavanje

Kao što vidimo da korištenje apply-a ne izgleda baš elegantno i za to nam je potrebna jednostavna i mala sintaksa. Iskoristimo namaz ...

Elegantan!
- Kopiranje niza

Jednostavan!
Isti rezultat može se dobiti pomoću objekta

- Spajanje 2 niza
Spajanje se vrši pomoću funkcije concat

Isto se može postići i pomoću ... operatora

- Pretvaranje niza u niz
To se može učiniti pomoću funkcije razdvajanja i pomoću ... operatora


- Koristite u max i min funkcijama
Isječak u nastavku nastoji pronaći maksimalan element u polju, tako da prosljeđujemo cijeli niz u funkciji, ali rezultat dobivamo kao NaN

Možemo koristiti apply, ali kao što se vidi iz prethodnih primjera, mrzim ga koristiti

Isto za min

Zaključak
Vidjeli smo mnoge situacije u kojima operator širenja dobro dođe i smanjuje naš kôd, a također ga čini super jednostavnim za razumijevanje.
Ako vam se sviđa Clap? i slijediti? za više.
