V tej vadnici boste s pomočjo primerov izvedeli več o operaterju širjenja JavaScript.
Operater širjenja je nov dodatek k funkcijam, ki so na voljo v različici JavaScript ES6 .
Spread Operator
Operator širjenja …
se uporablja za razširitev ali širjenje iterabila ali polja. Na primer
const arrValue = ('My', 'name', 'is', 'Jack'); console.log(arrValue); // ("My", "name", "is", "Jack") console.log(… arrValue); // My name is Jack
V tem primeru koda:
console.log(… arrValue)
je enakovredno:
console.log('My', 'name', 'is', 'Jack');
Kopiraj polje s pomočjo Spread Operatorja
Sintakso širjenja lahko uporabite tudi …
za kopiranje elementov v eno matriko. Na primer
const arr1 = ('one', 'two'); const arr2 = (… arr1, 'three', 'four', 'five'); console.log(arr2); // Output: // ("one", "two", "three", "four", "five")
Kloniraj polje z uporabo Spread Operatorja
V JavaScript so predmeti dodeljeni s sklicem in ne z vrednostmi. Na primer
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)
Tu se obe spremenljivki arr1 in arr2 nanašata na isto matriko. Zato sprememba ene spremenljivke povzroči spremembo obeh spremenljivk.
Če pa želite kopirati polja tako, da se ne nanašajo na isto matriko, lahko uporabite operator širjenja. Tako se sprememba enega polja ne odraža v drugem. Na primer
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 z objektom
Operator širjenja lahko uporabite tudi z objektnimi literali. Na primer
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)
Tu sta obe obj1
in obj2
lastnosti dodani obj3
uporabi operatorja širjenja.
Parameter počitka
Ko se operater širjenja uporablja kot parameter, je znan kot preostali parameter.
S parametrom rest lahko sprejmete tudi več argumentov v klicu funkcije. Na primer
let func = function(… args) ( console.log(args); ) func(3); // (3) func(4, 5, 6); // (4, 5, 6)
Tukaj,
- Ko se
func()
funkciji posreduje en argument , ostane parameter preostanek samo en parameter. - Ko so posredovani trije argumenti, parameter preostali vzame vse tri parametre.
Opomba : Uporaba parametra rest bo argumente posredovala kot elemente matrike.
Funkciji lahko posredujete tudi več argumentov z operaterjem širjenja. Na primer
function sum(x, y ,z) ( console.log(x + y + z); ) const num1 = (1, 3, 4, 5); sum(… num1); // 8
Če z operaterjem širjenja posredujete več argumentov, funkcija vzame zahtevane argumente, ostale pa prezre.
Opomba : Operator širjenja je bil uveden v ES6 . Nekateri brskalniki morda ne podpirajo uporabe sintakse širjenja. Za več informacij obiščite podporo za operaterja Spread JavaScript.