Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 7794|Atsakyti: 0

[JavaScript] es6 Išplėtimo operatorius Trys taškai (...) )

[Kopijuoti nuorodą]
Paskelbta 2020-06-19 12:31:11 | | |
prasmė

Išplėtimo operatorius (spredas) yra trys taškai (...) )。 Tai tarsi atvirkštinis poilsio parametras, paverčiantis masyvą kableliais atskirta parametrų seka.



Šis operatorius daugiausia naudojamas funkciniams skambučiams.



Aukščiau esančiame kode array.push(...) elementus) ir pridėti(...) numeriai), kurie abu yra funkcijų iškvietimai, ir jie abu naudoja plėtinių operatorius. Šis operatorius paverčia masyvą parametrų seka.
Išplėtimo operatoriai gali būti naudojami kartu su įprastais funkcijos parametrais, o tai yra labai lanksti.



Taikyti metodą alternatyviems masyvams

Kadangi plėtinio operatorius gali išplėsti masyvą, nereikia naudoti taikymo metodo, kad masyvas taptų funkcijos argumentu.



Štai praktinis pavyzdys, kaip išplėtimo operatorius pakeičia taikymo metodą, taikydamas Math.max metodą, kad supaprastintų didžiausio masyvo elemento rašymą.



Aukščiau pateiktame kode sakoma, kad kadangi "JavaScript" nesuteikia funkcijos, leidžiančios rasti didžiausią masyvo elementą, galite taikyti tik Math.max funkciją, kad masyvą paverstumėte parametrų seka ir rastumėte maksimalią vertę. Naudodami plėtinio operatorių galite Math.max naudoti tiesiogiai.
Kitas pavyzdys yra masyvo pridėjimas prie kito masyvo uodegos naudojant stūmimo funkciją.



Taikant aukščiau pateikto kodo ES5 rašymo metodą, stūmimo metodo parametrai negali būti masyvai, todėl turime lanksčiai naudoti stūmimo metodą taikydami metodą. Naudojant išplėtimo operatorių, masyvą galima perduoti tiesiai į stūmimo metodą.
Štai dar vienas pavyzdys.



Išplėsti veiklos vykdytojų taikymo sritį

(1) Sulieti masyvus

Išplėtimo operatorius suteikia naują skaičių derinio rašymo būdą.



(2) kartu su dekonstruota užduotimi

Išplėtimo operatoriai gali būti derinami su dekonstruotais priskyrimais, kad būtų generuojami masyvai.



Jei masyvo priskyrimui naudojate plėtinio operatorių, jį galima įdėti tik prie paskutinio parametro skaitmens, kitaip bus pranešta apie klaidą.



(3) Grąžinama funkcijos reikšmė

"JavaScript" funkcijos gali grąžinti tik vieną reikšmę, o jei reikia grąžinti kelias reikšmes, tik masyvus arba objektus. Plėtinių operatoriai pateikia sprendimą, kaip išspręsti šią problemą.



Aukščiau pateiktas kodas paima duomenų eilutę iš duomenų bazės, išplečia operatorių ir perduoda jį tiesiai konstruktoriui Date.

(4) Eilutė

Plėtinių operatoriai taip pat gali paversti eilutes tikrais masyvais.



Aukščiau pateiktas rašymas turi svarbų pranašumą, tai yra, jis gali teisingai atpažinti 32 bitų "Unicode" simbolius.



Pirmasis būdas parašyti aukščiau pateiktą kodą, JavaScript atpažįsta 32 bitų Unicode simbolius kaip 2 simbolius, ir nėra jokių problemų su plėtinių operatoriais. Taigi funkcija, kuri teisingai grąžina eilutės ilgį, gali būti parašyta taip:



Tai yra bet kurios funkcijos, susijusios su manipuliavimu 32 bitų Unicode simboliais, problema. Todėl geriausia juos visus perrašyti su plėtinių operatoriais.



Aukščiau pateiktame kode, jei nenaudojate plėtinio operatoriaus, eilutės atvirkštinė operacija yra neteisinga.

(5) Objektai, kuriuose įdiegta iteratoriaus sąsaja

Bet kurį objektą iteratoriaus sąsajoje galima konvertuoti į tikrą masyvą su plėtinio operatoriumi.



Aukščiau pateiktame kode metodas querySelectorAll grąžina nodeList objektą. Tai ne masyvas, o į masyvą panašus objektas. Tokiu atveju plėtinio operatorius gali jį paversti tikru masyvu, nes "NodeList" objektas įgyvendina "Iterator" sąsają.
Tiems į masyvą panašiems objektams, kurie neturi įdiegtos iteratoriaus sąsajos, plėtinio operatorius negali jų paversti tikru masyvu.



Aukščiau pateiktame kode arrayLike yra į masyvą panašus objektas, tačiau neįdiegęs "Iterator" sąsajos, plėtinio operatorius praneš apie klaidą. Tokiu atveju galite naudoti metodą Array.from, kad konvertuotumėte arrayLike į tikrą masyvą.

(6) Žemėlapio ir nustatymo struktūros, generatoriaus funkcijos

Išplėtimo operatorius viduje iškviečia duomenų struktūros iteratoriaus sąsają, todėl bet kuris objektas, turintis iteratoriaus sąsają, gali naudoti plėtinio operatorių, pvz., žemėlapio struktūrą.



Kai veikia funkcija Generator, ji grąžina traverserio objektą, todėl taip pat galima naudoti išplėtimo operatorius.



Aukščiau pateiktame kode kintamasis go yra generatoriaus funkcija, o po vykdymo jis grąžina traverserio objektą, o vykdant šio perėjimo objekto išplėtimo operatorių, vidinės perėjimo metu gautos reikšmės bus konvertuotos į masyvą.
Jei objektui be iteratoriaus sąsajos naudojate plėtinio operatorių, bus pranešta apie klaidą.





Ankstesnis:Vue+ElementUI diegimas
Kitą:"Angular" projekto išleidimo problema
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com