Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 7794|Odpoveď: 0

[JavaScript] es6 Operátor rozšírenia Tri bodky (...) )

[Kopírovať odkaz]
Zverejnené 19. 6. 2020 12:31:11 | | |
význam

Expanzný operátor (spread) sú tri bodky (...) )。 Je to ako inverz pokojového parametra, ktorý premení pole na sekvenciu parametrov oddelenú čiarkou.



Tento operátor sa používa najmä na volania funkcií.



V kóde vyššie, array.push(...) položky) a pridávať(...) čísla), ktoré sú volaním funkcií a používajú rozšírené operátory. Tento operátor premení pole na postupnosť parametrov.
Rozšírené operátory môžu byť použité v kombinácii s normálnymi funkčnými parametrami, čo je veľmi flexibilné.



Aplikovať metódu pre alternatívne polia

Keďže rozšírený operátor môže pole rozširovať, nie je potrebné použiť metódu apply na premenu poľa na argument funkcie.



Tu je praktický príklad rozširujúceho operátora, ktorý nahrádza metódu aplikovať a aplikuje Math.max metódu na zjednodušenie zápisu najväčšieho prvku poľa.



Vyššie uvedený kód hovorí, že keďže JavaScript neposkytuje funkciu na nájdenie najväčšieho prvku poľa, môžete použiť Math.max funkciu len na premenenie poľa na sekvenciu parametrov a potom nájsť maximálnu hodnotu. S operátorom rozšírenia môžete Math.max používať priamo.
Ďalším príkladom je pridanie poľa na chvost iného poľa pomocou funkcie push.



V ES5 metóde písania vyššie uvedeného kódu nemôžu byť parametre push metódy poľami, takže musíme použiť push metódu flexibilne cez metódu apply. Pomocou rozširovacieho operátora môže byť pole priamo odoslané do push metódy.
Tu je ďalší príklad.



Rozšíriť použitie operátorov

(1) Zlúčenie polí

Operátor rozšírenia poskytuje nový spôsob zápisu kombinácie čísel.



(2) v kombinácii s dekonštruovaným priradením

Rozšírené operátory je možné kombinovať s dekonštruovanými priradeniami na generovanie polí.



Ak použijete rozšírený operátor na priraďovanie poľa, môže byť umiestnený len na poslednú číslicu parametra, inak sa zobrazí chyba.



(3) Návratová hodnota funkcie

JavaScriptové funkcie môžu vrátiť len jednu hodnotu, a ak je potrebné vrátiť viac hodnôt, len polia alebo objekty. Operátory rozšírenia poskytujú obchádzku na riešenie tohto problému.



Vyššie uvedený kód vezme riadok dát z databázy, rozšíri operátor a odovzdá ho priamo konštruktorovi Date.

(4) Struna

Rozšírené operátory dokážu tiež premeniť reťazce na reálne polia.



Vyššie uvedený zápis má dôležitú výhodu, a to že dokáže správne rozpoznať 32-bitové Unicode znaky.



Prvý spôsob, ako napísať vyššie uvedený kód, je JavaScript, ktorý rozpoznáva 32-bitové Unicode znaky ako 2 znaky, a s rozšírenými operátormi nie je problém. Funkciu, ktorá správne vráti dĺžku reťazca, možno zapísať takto:



Toto je problém pre akúkoľvek funkciu, ktorá zahŕňa manipuláciu s 32-bitovými Unicode znakmi. Preto je najlepšie prepísať ich všetky pomocou rozšírených operátorov.



V uvedenom kóde, ak nepoužijete extension operátor, operácia reverzného reťazca je nesprávna.

(5) Objekty, ktoré implementujú rozhranie Iteratora

Každý objekt v rozhraní Iterátora je možné previesť na skutočné pole pomocou rozšíreného operátora.



V uvedenom kóde metóda querySelectorAll vracia objekt nodeList. Nie je to pole, ale objekt podobný poľu. V tomto prípade môže operátor rozšírenia premeniť rozhranie na reálne pole, pretože objekt NodeList implementuje rozhranie Iterator.
Pre objekty podobné poľu, ktoré nemajú nasadené rozhranie Iteratora, operátor rozšírenia ich nemôže premeniť na skutočné pole.



V uvedenom kóde je arrayLike objekt podobný poľu, ale bez nasadenia rozhrania Iteratora operátor rozšírenia nahlási chybu. V takom prípade môžete použiť metódu Array.from na konverziu arrayLike na skutočné pole.

(6) Mapovacie a množinové štruktúry, generátorové funkcie

Operátor rozšírenia interne volá rozhranie Iterátora dátovej štruktúry, takže akýkoľvek objekt s rozhraním Iterátora môže používať operátor rozšírenia, napríklad štruktúru Map.



Keď sa spustí funkcia generátora, vráti objekt prechádzača, takže je možné použiť aj rozšírené operátory.



V uvedenom kóde je premenná go funkciou generátora a po vykonaní vráti objekt pre prechádzanie, pričom vykonanie rozšíreného operátora na tomto objekte prevedie hodnoty získané z interného prechádzania do poľa.
Ak použijete rozšírený operátor pre objekt bez iterátorového rozhrania, bude nahlásená chyba.





Predchádzajúci:Implementácia Vue+ElementUI
Budúci:Problém s uvoľnením projektu Angular
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com