Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 7794|Svar: 0

[JavaScript] es6 Extension Operator Tre punkter (...) )

[Kopiera länk]
Publicerad på 2020-06-19 12:31:11 | | |
betydelse

Expansionsoperatorn (spreaden) är tre prickar (...) )。 Det är som inversen av en viloparameter, som förvandlar en array till en komma-separerad sekvens av parametrar.



Denna operator används främst för funktionsanrop.



I koden ovan, array.push(...) föremål) och lägga till(...) nummer), båda anrop till funktioner, och båda använder förlängningsoperatorer. Denna operator omvandlar en array till en sekvens av parametrar.
Extensionsoperatorer kan användas i kombination med normalfunktionsparametrar, vilket är mycket flexibelt.



Tillämpa metoden för alternativa arrayer

Eftersom extensionsoperatorn kan expandera arrayen finns det inget behov av att använda apply-metoden för att omvandla arrayen till ett argument till funktionen.



Här är ett praktiskt exempel på en extensionsoperator som ersätter apply-metoden, och applicerar Math.max metod för att förenkla skrivandet av det största elementet i en array.



Ovanstående kod säger att eftersom JavaScript inte tillhandahåller en funktion för att hitta det största elementet i en array, kan du bara använda Math.max funktion för att omvandla arrayen till en sekvens av parametrar och sedan hitta det maximala värdet. Med förlängningsoperatören kan du använda Math.max direkt.
Ett annat exempel är genom att lägga till en array på svansen av en annan array via push-funktionen.



I ES5-skrivmetoden i ovanstående kod kan parametrarna för push-metoden inte vara arrayer, så vi måste använda push-metoden flexibelt genom apply-metoden. Med extension-operatorn kan matrisen skickas direkt in i push-metoden.
Här är ett annat exempel.



Utöka tillämpningen av operatorer

(1) Sammanfoga arrayer

Extensionoperatorn ger ett nytt sätt att skriva kombinationen av tal.



(2) kombinerat med dekonstruerad tilldelning

Extensionsoperatorer kan kombineras med dekonstruerade tilldelningar för att generera arrayer.



Om du använder extensionsoperatorn för array-tilldelning kan den bara placeras på sista siffran i parametern, annars rapporteras ett fel.



(3) Funktionens returvärde

JavaScript-funktioner kan bara returnera ett värde, och om flera värden behöver returneras, endast arrayer eller objekt. Extension-operatorer ger en lösning för att lösa detta problem.



Ovanstående kod tar en rad data från databasen, utökar operatorn och skickar den direkt till konstruktören Date.

(4) Sträng

Extensionsoperatorer kan också omvandla strängar till reella arrayer.



Ovanstående skrift har en viktig fördel, nämligen att den korrekt kan känna igen 32-bitars Unicode-tecken.



Det första sättet att skriva ovanstående kod är JavaScript, som känner igen 32-bitars Unicode-tecken som 2 tecken, och det finns inga problem med extensionsoperatorer. Så funktionen som korrekt returnerar strängens längd kan skrivas så här:



Detta är problemet för alla funktioner som involverar manipulation av 32-bitars Unicode-tecken. Därför är det bäst att skriva om dem alla med extensionsoperatorer.



I koden ovan, om du inte använder extension-operatorn, är strängomvändningsoperationen felaktig.

(5) Objekt som implementerar Iteratorgränssnittet

Vilket objekt som helst i Iterator-gränssnittet kan konverteras till en sann array med en extensionsoperator.



I koden ovan returnerar querySelectorAll-metoden ett nodeList-objekt. Det är inte en array, utan ett array-liknande objekt. I detta fall kan extensionsoperatorn omvandla det till en reell array eftersom objektet NodeList implementerar Iterator-gränssnittet.
För de array-liknande objekt som inte har ett Iterator-gränssnitt kan tilläggsoperatören inte omvandla dem till en riktig array.



I koden ovan är arrayLike ett array-liknande objekt, men utan att distribuera Iterator-gränssnittet kommer tilläggsoperatören att rapportera ett fel. I det här fallet kan du använda metoden Array.from för att konvertera arrayLike till en verklig array istället.

(6) Mapp- och mängdstrukturer, generatorfunktioner

Extension-operatorn anropar internt Iterator-gränssnittet för datastrukturen, så att vilket objekt som helst med Iterator-gränssnitt kan använda en extension-operator, såsom en Map-struktur.



När generatorfunktionen körs returnerar den ett traverserobjekt, så extensionsoperatorer kan också användas.



I koden ovan är variabeln go en generatorfunktion, och efter exekvering returnerar den ett traverseringsobjekt, och om en extension operator på detta traverseringsobjekt exekveras kommer de värden som erhållits från intern traversering till en array.
Om du använder en tilläggsoperator för ett objekt utan iteratorgränssnitt rapporteras ett fel.





Föregående:Vue+ElementUI-implementering
Nästa:Problem med Utsläpp av Angular-projektet
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com