⊗jsPmROInr 294 of 505 menu

Аператар rest у JavaScript

Даны ўрок пачнем з некаторага тлумачэння. Усе папярэднія ўрокі данага раздзела я не казаў вам усёй праўды пра аператар ...

На самой справе гэты аператар у залежнасці ад месца ў кодзе можа называцца альбо аператарам spread, альбо аператарам rest.

Як вы ўжо ведаеце, калі аператар spread стоіць перад масівам альбо радком, ён падзяляе іх на асобныя значэнні. Аператар rest, хоць і мае такі ж сінтаксіс у выглядзе ..., але прызначаны для іншага.

Зараз будзем разабрацца, для чаго. Хай у нас ёсць функцыя, якая прымае два параметры:

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

Вы ўжо павінны ведаць, што калі ў функцыю перадаць лішнія параметры, гэта не прывядзе да памылкі:

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

Аператар rest дазваляе атрымаць усе лішнія параметры ў выглядзе масіва. Для гэтага ў функцыю дадаецца яшчэ адзін параметр (абавязкова апошнім), перад якім пішуцца 3 кропкі:

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

Гэтыя тры кропкі і ёсць аператар rest, а імя зменнай можа мець любую назву, але звычайна таксама прынята называць яго rest.

Давайце выклічэм нашу функцыю з лішняй колькасцю параметраў і паглядзім, што трапляе ў параметры a і b, а што - у астатак rest:

func(1, 2, 3, 4, 5); function func(a, b, ...rest) { console.log(a); // выведзе 1 console.log(b); // выведзе 2 console.log(rest); // выведзе [3, 4, 5] }

Калі лішніх параметраў не будзе, то ў зменную rest запішацца пусты масіў:

func(1, 2); function func(a, b, ...rest) { console.log(a); // выведзе 1 console.log(b); // выведзе 2 console.log(rest); // выведзе [] }

У функцыі наогул можа не быць параметраў, але пры гэтым у яе можна дадаць rest. У гэтым выпадку функцыю можна будзе выклікаць з любой колькасцю параметраў і ўсе яны будуць трапляць у масіў rest:

function func(...rest) { console.log(rest); }
Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικά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
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць