Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 7794|Vastaus: 0

[JavaScript] es6 Laajennusoperaattori Kolme pistettä (...) )

[Kopioi linkki]
Julkaistu 19.6.2020 12.31.11 | | |
merkitys

Laajennusoperaattori (spread) on kolme pistettä (...) )。 Se on kuin lepoparametrin käänteinen, joka muuttaa taulukon pilkulla erotetuksi parametrijonoksi.



Tätä operaattoria käytetään pääasiassa funktiokutsuihin.



Yllä olevassa koodissa array.push(...) items) ja add(...) numerot), jotka molemmat ovat kutsuja funktioihin, ja molemmat käyttävät laajennusoperaattoreita. Tämä operaattori muuttaa taulukon parametrijonoksi.
Laajennusoperaattoreita voidaan käyttää yhdessä normaalifunktioparametrien kanssa, mikä on hyvin joustavaa.



Apply method vaihtoehtoisille taulukoille

Koska laajennusoperaattori voi laajentaa taulukon, ei ole tarpeen käyttää apply-metodia muuttaakseen taulukon argumentiksi funktioon.



Tässä on käytännöllinen esimerkki laajennusoperaattorista, joka korvaa soveltamismetodin, soveltaen Math.max menetelmää yksinkertaistamaan taulukon suurimman alkion kirjoittamista.



Yllä oleva koodi sanoo, että koska JavaScript ei tarjoa funktiota taulukon suurimman alkion löytämiseen, voit vain käyttää Math.max funktiota muuttaaksesi taulukon parametrisarjaksi ja sitten löytää maksimiarvon. Laajennusoperaattorin avulla voit käyttää Math.max suoraan.
Toinen esimerkki on lisätä taulukko toisen taulukon hänään push-funktion avulla.



Edellä mainitun koodin ES5-kirjoitusmenetelmässä push-metodin parametreja ei voi olla taulukoita, joten meidän on käytettävä push-metodia joustavasti apply-menetelmän kautta. Laajennusoperaattorin avulla taulukko voidaan siirtää suoraan push-menetelmään.
Tässä toinen esimerkki.



Operaattoreiden soveltamisen laajentaminen

(1) Yhdistä taulukot

Laajennusoperaattori tarjoaa uuden tavan kirjoittaa lukujen yhdistelmä.



(2) yhdistettynä purettuun määrittelyyn

Laajennusoperaattoreita voidaan yhdistää dekonstruktoituihin jaetuksiin taulukoiden generoimiseksi.



Jos käytät laajennusoperaattoria taulukon määrittämiseen, se voidaan sijoittaa vain parametrin viimeiseen numeroon, muuten virhe raportoidaan.



(3) Funktion palautusarvo

JavaScript-funktiot voivat palauttaa vain yhden arvon, ja jos tarvitaan useita arvoja, vain taulukoita tai objekteja. Laajennusoperaattorit tarjoavat kiertotien tämän ongelman ratkaisemiseksi.



Yllä oleva koodi ottaa tietorivin tietokannasta, laajentaa operaattoria ja välittää sen suoraan rakentajalle Date.

(4) Kieli

Laajennusoperaattorit voivat myös muuttaa merkkijonot reaalisiksi taulukoiksi.



Yllä olevalla kirjoituksella on tärkeä etu: se tunnistaa oikein 32-bittiset Unicode-merkit.



Ensimmäinen tapa kirjoittaa yllä mainittu koodi on JavaScript, joka tunnistaa 32-bittiset Unicode-merkit kahdeksi merkiksi, eikä laajennusoperaattoreissa ole ongelmia. Joten funktio, joka palauttaa merkkijonon pituuden oikein, voidaan kirjoittaa näin:



Tämä on ongelma kaikissa funktioissa, joissa käsitellään 32-bittisiä Unicode-merkkejä. Siksi on parasta kirjoittaa ne kaikki uudelleen laajennusoperaattoreilla.



Yllä olevassa koodissa, jos et käytä laajennusoperaattoria, merkkijonon käänteinen operaatio on väärä.

(5) Oliot, jotka toteuttavat Iterator-rajapinnan

Mikä tahansa olio Iterator-rajapinnassa voidaan muuntaa aidoksi taulukoksi, jossa on laajennusoperaattori.



Yllä olevassa koodissa querySelectorAll-metodi palauttaa nodeList-objektin. Se ei ole taulukko, vaan taulukon kaltainen objekti. Tässä tapauksessa laajennusoperaattori voi muuttaa sen todelliseksi taulukoksi, koska NodeList-objekti toteuttaa Iterator-rajapinnan.
Niille taulukkomaisille objekteille, joissa ei ole Iterator-rajapintaa, laajennusoperaattori ei voi muuttaa niitä oikeaksi taulukoksi.



Yllä olevassa koodissa arrayLike on taulukkomainen objekti, mutta ilman Iterator-rajapinnan käyttöönottoa laajennusoperaattori raportoi virheen. Tässä tapauksessa voit käyttää Array.from-metodia muuntaaksesi arrayLike-tiedoston oikeaksi taulukoksi sen sijaan.

(6) Kartta- ja joukkorakenteet, generaattorifunktiot

Laajennusoperaattori kutsuu sisäisesti tietorakenteen Iterator-rajapintaa, joten mikä tahansa olio, jolla on Iterator-rajapinta, voi käyttää laajennusoperaattoria, kuten karttarakennetta.



Kun generaattorifunktio käynnistyy, se palauttaa kulkurin objektin, joten laajennusoperaattoreita voidaan käyttää myös.



Yllä olevassa koodissa muuttuja go on generaattorifunktio, ja suorituksen jälkeen se palauttaa traverser-objektin, ja laajennusoperaattorin suorittaminen tälle traversal-objektille muuntaa sisäisestä läpikäynnistä saadut arvot taulukoksi.
Jos käytät laajennusoperaattoria objektille ilman iteraattorirajapintaa, virhe raportoidaan.





Edellinen:Vue+ElementUI toteutus
Seuraava:Angular-projektin julkaisuongelma
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com