See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 7794|Vastuse: 0

[JavaScript] es6 laiendusoperaator Kolm punkti (...) )

[Kopeeri link]
Postitatud 19.06.2020 12:31:11 | | |
tähendus

Laiendusoperaator (spread) on kolm punkti (...) )。 See on nagu puhkeparameetri pöörd, mis muudab massiivi komadega eraldatud parameetrite jadaks.



Seda operaatorit kasutatakse peamiselt funktsioonikutsete jaoks.



Ülaltoodud koodis, array.push(...) esemed) ja lisa(...) numbrid), mis mõlemad kutsuvad funktsioone ning mõlemad kasutavad laiendusoperaatoreid. See operaator muudab massiivi parameetrite jadaks.
Laiendusoperaatoreid saab kasutada koos normaalfunktsiooni parameetritega, mis on väga paindlik.



Rakenda meetodit alternatiivsete massiivide jaoks

Kuna laiendusoperaator saab massiivi laiendada, ei ole vaja kasutada rakendusmeetodit, et muuta massiivi funktsiooni argumendiks.



Siin on praktiline näide laiendusoperaatorist, mis asendab rakendusmeetodi, rakendades Math.max meetodit, et lihtsustada massiivi suurima elemendi kirjutamist.



Ülaltoodud kood ütleb, et kuna JavaScript ei paku funktsiooni massiivi suurima elemendi leidmiseks, saab Math.max funktsiooni rakendada ainult selleks, et massiivi muuta parameetrite jada ja seejärel leida maksimaalne väärtus. Laiendusoperaatoriga saad Math.max otse kasutada.
Teine näide on massiivi lisamine teise massiivi sabasse push-funktsiooni kaudu.



Ülaltoodud koodi ES5 kirjutamismeetodis ei saa push-meetodi parameetrid olla massiivid, seega peame push-meetodit kasutama paindlikult läbi rakendusmeetodi. Laiendusoperaatoriga saab massiivi otse push-meetodile edasi anda.
Siin on veel üks näide.



Operaatorite rakendamise laiendamine

(1) Massiivide ühendamine

Laiendusoperaator pakub uut viisi arvude kombinatsiooni kirjutamiseks.



(2) kombineeritud dekonstrueeritud määramisega

Laiendusoperaatoreid saab kombineerida dekonstrueeritud määratustega, et genereerida massiivisid.



Kui kasutad massiivi määramiseks laiendusoperaatorit, saab selle paigutada ainult parameetri viimasele numbrile, vastasel juhul teatatakse veast.



(3) Funktsiooni tootlusväärtus

JavaScripti funktsioonid suudavad tagastada ainult ühe väärtuse, ja kui on vaja mitut väärtust, siis ainult massiivid või objektid. Laiendusoperaatorid pakuvad lahendust selle probleemi lahendamiseks.



Ülaltoodud kood võtab andmebaasist andmerea, laiendab operaatorit ja edastab selle otse konstruktorile Date.

(4) Keel

Laiendusoperaatorid võivad muuta stringe ka reaalseteks massiivideks.



Ülaltoodud kirjutisel on oluline eelis, nimelt suudab see korrektselt ära tunda 32-bitiseid Unicode'i märke.



Esimene viis ülaltoodud koodi kirjutamiseks on JavaScript, mis tuvastab 32-bitised Unicode märgid kahe tähemärgina ning laiendusoperaatoritega probleeme ei ole. Seega saab funktsiooni, mis õigesti tagastab stringi pikkuse, kirjutada nii:



See on probleem iga funktsiooni puhul, mis nõuab 32-bitiste Unicode'i märkide manipuleerimist. Seetõttu on kõige parem need kõik ümber kirjutada laiendusoperaatoritega.



Ülaltoodud koodis, kui sa ei kasuta laiendusoperaatorit, on stringi pöördoperatsioon vale.

(5) Objektid, mis rakendavad Iteratori liidest

Iga objekt Iteratori liideses saab teisendada tõeliseks massiiviks laiendusoperaatoriga.



Ülaltoodud koodis tagastab querySelectorAll meetod nodeList objekti. See ei ole massiivi, vaid massiivilaadne objekt. Sellisel juhul saab laiendusoperaator muuta selle reaalseks massiiviks, kuna NodeList objekt rakendab Iteratori liidest.
Nende massiivilaadsete objektide puhul, millel pole Iteratori liidest paigaldatud, ei saa laiendusoperaator neid päris massiiviks muuta.



Ülaltoodud koodis on arrayLike massiivilaadne objekt, kuid ilma Iteratori liidest juurutamata teatab laienduse operaator veast. Sellisel juhul saad kasutada Array.from meetodit, et teisendada arrayLike reaalseks massiiviks.

(6) Kaardi- ja hulgastruktuurid, generaatorifunktsioonid

Laiendusoperaator kutsub sisemiselt andmestruktuuri Iteratori liidest, nii et iga objekt, millel on Iteratori liides, saab kasutada laiendusoperaatorit, näiteks Map struktuuri.



Kui generaatori funktsioon töötab, tagastab see traverser-objekti, seega saab kasutada ka laiendusoperaatoreid.



Ülaltoodud koodis on muutuja go generaatori funktsioon ning pärast täitmist tagastatakse traverser objekt ning laiendusoperaatori käivitamine sellel läbimisobjektil teisendab sisemisest läbimisest saadud väärtused massiiviks.
Kui kasutad objekti jaoks laiendusoperaatorit, millel pole iteraatori liidest, teatatakse veast.





Eelmine:Vue+ElementUI implementatsioon
Järgmine:Angulari projekti väljalaske probleem
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com