„JavaScript Spread Operator“

Šioje pamokoje su pavyzdžių pagalba sužinosite apie „JavaScript“ sklaidos operatorių.

Sklaidos operatorius yra naujas „ JavaScript ES6“ versijos funkcijų papildymas .

Sklaidos operatorius

Sklaidos operatorius naudojamas išplėsti arba išplėsti iteruojamą ar masyvą. Pavyzdžiui,

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

Šiuo atveju kodas:

 console.log(… arrValue)

yra lygiavertis:

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

Masyvo kopijavimas naudojant „Spread Operator“

Taip pat galite naudoti išplitimo sintaksę, jei norite nukopijuoti elementus į vieną masyvą. Pavyzdžiui,

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

Klonų masyvas naudojant „Spread Operator“

„JavaScript“ objektai priskiriami pagal nuorodas, o ne pagal reikšmes. Pavyzdžiui,

 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)

Čia abu kintamieji arr1 ir arr2 nurodo tą patį masyvą. Taigi, pasikeitus vienam kintamajam, pasikeičia abu kintamieji.

Tačiau jei norite nukopijuoti masyvus, kad jie nenurodytų to paties masyvo, galite naudoti paskirstymo operatorių. Tokiu būdu vienos masyvo pokytis neatspindi kito. Pavyzdžiui,

 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)

Skleiskite operatorių su objektu

Sklaidos operatorių taip pat galite naudoti su objekto literalais. Pavyzdžiui,

 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)

Čia abu obj1ir obj2savybės pridedamos prie obj3sklaidos operatoriaus naudojimo.

Poilsio parametras

Kai sklaidos operatorius naudojamas kaip parametras, jis yra žinomas kaip likęs parametras.

Taip pat galite priimti kelis argumentus funkcijos iškvietime naudodamiesi likusiu parametru. Pavyzdžiui,

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

Čia

  • Kai funkcijai perduodamas vienas argumentas func(), likęs parametras užima tik vieną parametrą.
  • Kai perduodami trys argumentai, į likusį parametrą įeina visi trys parametrai.

Pastaba : Naudojant parametrą „rest“ argumentai bus perduoti kaip masyvo elementai.

Taip pat galite perduoti kelis argumentus funkcijai naudodami pasklidimo operatorių. Pavyzdžiui,

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

Jei perduodate kelis argumentus naudodamiesi „spread“ operatoriumi, funkcija imasi reikiamų argumentų ir nepaiso likusių.

Pastaba : „Spread“ operatorius buvo pristatytas ES6 . Kai kurios naršyklės gali nepalaikyti sklaidos sintaksės naudojimo. Norėdami sužinoti daugiau, apsilankykite „JavaScript Spread Operator“ palaikymo tarnyboje.

Įdomios straipsniai...