Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 7794|Odpověď: 0

[JavaScript] es6 Operátor rozšíření Tři tečky (...) )

[Kopírovat odkaz]
Zveřejněno 19.06.2020 12:31:11 | | |
význam

Operátor rozpínání (spread) jsou tři tečky (...) )。 Je to jako inverze parametru klidu, kdy se pole mění na sekvenci parametrů oddělenou čárkou.



Tento operátor se používá především pro volání funkcí.



V kódu výše je array.push(...) položky) a přidáváme(...) čísla), obě jsou voláním funkcí a oba používají operátory rozšíření. Tento operátor přeměňuje pole na posloupnost parametrů.
Rozšiřující operátory lze použít v kombinaci s normálními funkčními parametry, což je velmi flexibilní.



Aplikovat metodu pro alternativní pole

Protože rozšiřující operátor může pole rozšířit, není třeba použít metodu apply k přeměně pole na argument funkce.



Zde je praktický příklad rozšiřovacího operátoru, který nahrazuje metodu aplikace a aplikuje Math.max metodu ke zjednodušení zápisu největšího prvku pole.



Výše uvedený kód říká, že protože JavaScript neposkytuje funkci pro nalezení největšího prvku pole, můžete použít Math.max pouze k tomu, aby pole převedlo na sekvenci parametrů a pak našli maximální hodnotu. S operátorem rozšíření můžete Math.max používat přímo.
Dalším příkladem je přidání pole na konec jiného pole pomocí funkce push.



V metodě zápisu ES5 výše uvedeného kódu nemohou být parametry push metody polem, takže musíme použít push metodu flexibilně přes aplikační metodu. Pomocí rozšiřovacího operátoru lze pole předat přímo do push metody.
Tady je další příklad.



Rozšiřte využití operátorů

(1) Sloučení polí

Operátor rozšíření poskytuje nový způsob zápisu kombinace čísel.



(2) v kombinaci s dekonstruovaným přiřazením

Rozšiřující operátory lze kombinovat s dekonstruovanými přiřazeními pro generování polí.



Pokud použijete rozšiřující operátor pro přiřazení pole, lze jej umístit pouze na poslední číslici parametru, jinak bude hlášena chyba.



(3) Návratová hodnota funkce

JavaScriptové funkce mohou vracet pouze jednu hodnotu, a pokud je potřeba vrátit více hodnot, pouze pole nebo objekty. Operátory rozšíření poskytují řešení tohoto problému.



Výše uvedený kód vezme řádek dat z databáze, rozšíří operátor a předá jej přímo konstruktoru Date.

(4) Struna

Rozšiřující operátory mohou také převádět řetězce na reálná pole.



Výše uvedené psaní má důležitou výhodu, totiž že dokáže správně rozpoznávat 32bitové Unicode znaky.



Prvním způsobem, jak napsat výše uvedený kód, je JavaScript, který rozpoznává 32bitové Unicode znaky jako 2 znaky, a s operátory rozšíření není problém. Funkci, která správně vrací délku řetězce, lze zapsat takto:



Toto je problém u jakékoli funkce, která zahrnuje manipulaci s 32bitovými Unicode znaky. Proto je nejlepší je všechny přepsat pomocí extension operátorů.



V uvedeném kódu, pokud nepoužíváte operátor rozšíření, je operace s obrácením řetězce nesprávná.

(5) Objekty, které implementují rozhraní Iteratoru

Každý objekt v rozhraní Iteratoru lze převést na skutečné pole pomocí operátoru rozšíření.



V uvedeném kódu metoda querySelectorAll vrací objekt nodeList. Není to pole, ale objekt podobný poli. V tomto případě může operátor rozšíření přeměnit toto pole na skutečné pole, protože objekt NodeList implementuje rozhraní Iterator.
U těch objektů podobných poli, které nemají nasazené rozhraní Iteratoru, operátor rozšíření je nemůže přeměnit na skutečné pole.



V uvedeném kódu je arrayLike objekt podobný poli, ale bez nasazení rozhraní Iteratoru operátor rozšíření nahlásí chybu. V tomto případě můžete použít metodu Array.from k převodu arrayLike na skutečné pole.

(6) Struktury zobrazení a množin, generátorové funkce

Operátor rozšíření interně volá rozhraní Iteratoru datové struktury, takže jakýkoli objekt s rozhraním Iteratoru může používat operátor rozšíření, například strukturu Map.



Když funkce generátor běží, vrátí objekt pro procházení, takže lze použít i rozšiřující operátory.



V uvedeném kódu je proměnná go funkcí generátoru a po vykonání vrátí objekt pro procházení, přičemž vykonáním rozšiřujícího operátoru na tomto objektu se hodnoty získané z interního procházení převedou do pole.
Pokud použijete rozšířený operátor pro objekt bez rozhraní iterátoru, bude nahlášena chyba.





Předchozí:Implementace Vue+ElementUI
Další:Problém s uvolněním projektu Angular
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com