V tomto kurzu se na příkladech dozvíte o operátoru šíření JavaScriptu.
Operátor šíření je novým přírůstkem k funkcím dostupným ve verzi JavaScript ES6 .
Operátor šíření
Operátor šíření …
se používá k rozšíření nebo šíření iterovatelného pole nebo pole. Například,
const arrValue = ('My', 'name', 'is', 'Jack'); console.log(arrValue); // ("My", "name", "is", "Jack") console.log(… arrValue); // My name is Jack
V tomto případě kód:
console.log(… arrValue)
odpovídá:
console.log('My', 'name', 'is', 'Jack');
Zkopírujte pole pomocí operátoru šíření
Syntaxi šíření můžete také použít …
ke zkopírování položek do jednoho pole. Například,
const arr1 = ('one', 'two'); const arr2 = (… arr1, 'three', 'four', 'five'); console.log(arr2); // Output: // ("one", "two", "three", "four", "five")
Clone Array pomocí Spread Operator
V JavaScriptu jsou objekty přiřazovány odkazem, nikoli hodnotami. Například,
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)
Zde obě proměnné arr1 a arr2 odkazují na stejné pole. Proto změna v jedné proměnné vede ke změně v obou proměnných.
Pokud však chcete kopírovat pole tak, aby neodkazovala na stejné pole, můžete použít operátor šíření. Tímto způsobem se změna v jednom poli neprojeví v druhém. Například,
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)
Operátor šíření s objektem
Operátor šíření můžete také použít s literály objektů. Například,
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)
Zde se vlastnosti obj1
a i obj2
vlastnosti přidávají k obj3
použití operátoru šíření.
Klidový parametr
Když je operátor šíření použit jako parametr, je znám jako zbytek.
Můžete také přijmout více argumentů ve volání funkce pomocí parametru rest. Například,
let func = function(… args) ( console.log(args); ) func(3); // (3) func(4, 5, 6); // (4, 5, 6)
Tady,
- Když je funkci předán jeden argument
func()
, parametr rest trvá pouze jeden parametr. - Když jsou předány tři argumenty, zbytek má všechny tři parametry.
Poznámka : Použití parametru rest předá argumenty jako prvky pole.
Funkci můžete také předat více argumentů pomocí operátoru šíření. Například,
function sum(x, y ,z) ( console.log(x + y + z); ) const num1 = (1, 3, 4, 5); sum(… num1); // 8
Pokud předáte více argumentů pomocí operátoru šíření, funkce vezme požadované argumenty a zbytek ignoruje.
Poznámka : Operátor Spread byl představen v ES6 . Některé prohlížeče nemusí podporovat použití syntaxe šíření. Navštivte podporu operátora šíření JavaScriptu a dozvíte se více.