JavaScript Spread Operator

U ovom ćete uputstvu uz primjere naučiti o JavaScript operateru širenja.

Operator širenja novi je dodatak značajkama dostupnim u verziji JavaScript ES6 .

Operater širenja

Operator širenja koristi se za proširivanje ili širenje iterabila ili niza. Na primjer,

 const arrValue = ('My', 'name', 'is', 'Jack'); console.log(arrValue); // ("My", "name", "is", "Jack") console.log(… arrValue); // My name is Jack

U ovom slučaju, kôd:

 console.log(… arrValue)

ekvivalentno je:

 console.log('My', 'name', 'is', 'Jack');

Kopirajte niz pomoću Spread Operator

Sintaksu širenja možete koristiti i za kopiranje stavki u jedan niz. Na primjer,

 const arr1 = ('one', 'two'); const arr2 = (… arr1, 'three', 'four', 'five'); console.log(arr2); // Output: // ("one", "two", "three", "four", "five")

Kloniranje niza pomoću operatora širenja

U JavaScriptu se objekti dodjeljuju referencom, a ne vrijednostima. Na primjer,

 let arr1 = ( 1, 2, 3); let arr2 = arr1; console.log(arr1); // (1, 2, 3) console.log(arr2); // (1, 2, 3) // append an item to the array arr1.push(4); console.log(arr1); // (1, 2, 3, 4) console.log(arr2); // (1, 2, 3, 4)

Ovdje se obje varijable arr1 i arr2 odnose na isti niz. Stoga promjena jedne varijable rezultira promjenom obje varijable.

Međutim, ako želite kopirati nizove tako da se ne odnose na isti niz, možete koristiti operator širenja. Na taj se način promjena u jednom nizu ne odražava u drugom. Na primjer,

 let arr1 = ( 1, 2, 3); // copy using spread syntax let arr2 = (… arr1); console.log(arr1); // (1, 2, 3) console.log(arr2); // (1, 2, 3) // append an item to the array arr1.push(4); console.log(arr1); // (1, 2, 3, 4) console.log(arr2); // (1, 2, 3)

Spread Operator s objektom

Operator širenja također možete koristiti s objektnim literalima. Na primjer,

 const obj1 = ( x : 1, y : 2 ); const obj2 = ( z : 3 ); // add members obj1 and obj2 to obj3 const obj3 = (… obj1,… obj2); console.log(obj3); // (x: 1, y: 2, z: 3)

Ovdje se oba obj1i obj2svojstva dodaju obj3korištenju operatora širenja.

Parametar odmora

Kada se operater širenja koristi kao parametar, poznat je kao parametar ostatka.

Također možete prihvatiti više argumenata u pozivu funkcije pomoću parametra rest. Na primjer,

 let func = function(… args) ( console.log(args); ) func(3); // (3) func(4, 5, 6); // (4, 5, 6)

Ovdje,

  • Kada se func()funkciji proslijedi jedan argument , parametar rest uzima samo jedan parametar.
  • Kad se prosljede tri argumenta, parametar rest uzima sva tri parametra.

Napomena : Korištenje parametra rest prosljeđivat će argumente kao elemente niza.

Također možete proslijediti više argumenata funkciji pomoću operatora širenja. Na primjer,

 function sum(x, y ,z) ( console.log(x + y + z); ) const num1 = (1, 3, 4, 5); sum(… num1); // 8

Ako proslijedite više argumenata pomoću operatora širenja, funkcija uzima potrebne argumente, a ostatak ignorira.

Napomena : Operator širenja uveden je u ES6 . Neki preglednici možda ne podržavaju upotrebu sintakse širenja. Posjetite podršku za JavaScript Spread Operator da biste saznali više.

Zanimljivi članci...