Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 7794|Risposta: 0

[JavaScript] Operatore estensione es6 Tre punti (...) )

[Copiato link]
Pubblicato su 19/06/2020 12:31:11 | | |
significato

L'operatore di espansione (spread) è composto da tre punti (...) )。 È come l'inverso di un parametro di riposo, trasformando un array in una sequenza di parametri separati da virgole.



Questo operatore è principalmente utilizzato per le chiamate di funzione.



Nel codice sopra, array.push(...) oggetti) e add(...) numeri), entrambi chiamate a funzioni, e entrambi utilizzano operatori di estensione. Questo operatore trasforma un array in una sequenza di parametri.
Gli operatori di estensione possono essere usati in combinazione con parametri di funzione normale, il che è molto flessibile.



Metodo di applicazione per array alternativi

Poiché l'operatore di estensione può espandere l'array, non è necessario utilizzare il metodo apply per trasformare l'array in un argomento della funzione.



Ecco un esempio pratico di un operatore di estensione che sostituisce il metodo apply, applicando Math.max metodo per semplificare la scrittura dell'elemento più grande di un array.



Il codice sopra dice che, poiché JavaScript non fornisce una funzione per trovare l'elemento più grande di un array, puoi solo applicare Math.max funzione per trasformare l'array in una sequenza di parametri e poi trovare il valore massimo. Con l'operatore di estensione, puoi usarlo direttamente Math.max.
Un altro esempio è aggiungere un array alla coda di un altro array tramite la funzione push.



Nel metodo di scrittura ES5 del codice sopra, i parametri del metodo push non possono essere array, quindi dobbiamo usare il metodo push in modo flessibile attraverso il metodo apply. Con l'operatore di estensione, l'array può essere passato direttamente nel metodo push.
Ecco un altro esempio.



Estendere l'applicazione degli operatori

(1) Array di fusione

L'operatore di estensione offre un nuovo modo di scrivere la combinazione di numeri.



(2) combinato con l'assegnazione decostruita

Gli operatori di estensione possono essere combinati con assegnazioni decostruite per generare array.



Se usi l'operatore di estensione per l'assegnazione degli array, può essere posizionato solo all'ultima cifra del parametro, altrimenti verrà segnalato un errore.



(3) Il valore di ritorno della funzione

Le funzioni JavaScript possono restituire un solo valore e, se è necessario restituire più valori, solo array o oggetti. Gli operatori di estensione forniscono una soluzione alternativa per risolvere questo problema.



Il codice sopra prende una riga di dati dal database, estende l'operatore e la trasmette direttamente al costruttore Date.

(4) Corda

Gli operatori di estensione possono anche trasformare stringhe in array reali.



La scrittura sopra descritta ha un vantaggio importante, ovvero che può riconoscere correttamente i caratteri Unicode a 32 bit.



Il primo modo per scrivere il codice sopra, JavaScript, riconosce i caratteri Unicode a 32 bit come 2 caratteri, e non ci sono problemi con gli operatori di estensione. Quindi la funzione che restituisce correttamente la lunghezza della stringa può essere scritta così:



Questo è il problema per qualsiasi funzione che coinvolge la manipolazione di caratteri Unicode a 32 bit. Pertanto, è meglio riscriverli tutti con operatori di estensione.



Nel codice sopra, se non usi l'operatore di estensione, l'operazione di inversione della stringa è errata.

(5) Oggetti che implementano l'interfaccia Iterator

Qualsiasi oggetto nell'interfaccia Iterator può essere convertito in un vero array con un operatore di estensione.



Nel codice sopra, il metodo querySelectorAll restituisce un oggetto nodeList. Non è un array, ma un oggetto simile a un array. In questo caso, l'operatore di estensione può trasformarlo in un vero array perché l'oggetto NodeList implementa l'interfaccia Iterator.
Per quegli oggetti simili a array che non hanno un'interfaccia Iterator implementata, l'operatore di estensione non può trasformarli in un array reale.



Nel codice sopra, arrayLike è un oggetto simile a un array, ma senza dispiegare l'interfaccia Iterator, l'operatore di estensione riporterà un errore. In questo caso, puoi usare il metodo Array.from per convertire arrayLike in un array reale invece.

(6) Strutture di mappa e insieme, funzioni di generatore

L'operatore di estensione chiama internamente l'interfaccia Iterator della struttura dati, quindi qualsiasi oggetto con un'interfaccia Iterator può usare un operatore di estensione, come una struttura Map.



Quando la funzione Generator viene eseguita, restituisce un oggetto traverser, quindi possono essere utilizzati anche operatori di estensione.



Nel codice sopra, la variabile go è una funzione Generator e, dopo l'esecuzione, restituisce un oggetto traverser, e l'esecuzione di un operatore di estensione su questo oggetto di traversamento converterà i valori ottenuti dall'attraversamento interno in un array.
Se usi un operatore di estensione per un oggetto senza interfaccia di iterazione, verrà segnalato un errore.





Precedente:Implementazione di Vue+ElementUI
Prossimo:Problema di rilascio del progetto Angular
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com