Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 7794|Répondre: 0

[JavaScript] Opérateur d’extension es6 Trois points (...) )

[Copié le lien]
Publié sur 19/06/2020 12:31:11 | | |
signification

L’opérateur d’expansion (écartement) est composé de trois points (...) )。 C’est comme l’inverse d’un paramètre REST, transformant un tableau en une séquence de paramètres séparés par des virgules.



Cet opérateur est principalement utilisé pour les appels de fonctions.



Dans le code ci-dessus, array.push(...) items) et add(...) des nombres), qui sont tous deux des appels à des fonctions, et ils utilisent tous deux des opérateurs d’extension. Cet opérateur transforme un tableau en une séquence de paramètres.
Les opérateurs d’extension peuvent être utilisés en combinaison avec des paramètres de fonction normale, ce qui est très flexible.



Méthode d’application pour les tableaux alternatifs

Puisque l’opérateur d’extension peut étendre le tableau, il n’est pas nécessaire d’utiliser la méthode apply pour transformer le tableau en un argument de la fonction.



Voici un exemple pratique d’un opérateur d’extension remplaçant la méthode apply, appliquant Math.max méthode pour simplifier l’écriture du plus grand élément d’un tableau.



Le code ci-dessus indique que, puisque JavaScript ne fournit pas de fonction pour trouver le plus grand élément d’un tableau, vous ne pouvez appliquer qu’Math.max fonction pour transformer le tableau en une séquence de paramètres puis trouver la valeur maximale. Avec l’opérateur d’extension, vous pouvez l’utiliser Math.max directement.
Un autre exemple consiste à ajouter un tableau à la queue d’un autre tableau via la fonction push.



Dans la méthode d’écriture ES5 du code ci-dessus, les paramètres de la méthode push ne peuvent pas être des tableaux, nous devons donc utiliser la méthode push de manière flexible via la méthode apply. Avec l’opérateur d’extension, le tableau peut être passé directement dans la méthode push.
Voici un autre exemple.



Étendre l’application des opérateurs

(1) Tableaux de fusion

L’opérateur d’extension offre une nouvelle façon d’écrire la combinaison de nombres.



(2) combiné avec l’affectation déconstruite

Les opérateurs d’extension peuvent être combinés avec des affectations déconstruites pour générer des tableaux.



Si vous utilisez l’opérateur d’extension pour l’affectation du tableau, il ne peut être placé qu’au dernier chiffre du paramètre, sinon une erreur sera signalée.



(3) La valeur de retour de la fonction

Les fonctions JavaScript ne peuvent retourner qu’une seule valeur, et si plusieurs valeurs doivent être retournées, seulement des tableaux ou des objets. Les opérateurs d’extension proposent une solution de contournement pour résoudre ce problème.



Le code ci-dessus prend une ligne de données de la base de données, étend l’opérateur, et la transmet directement au constructeur Date (Date).

(4) Corde

Les opérateurs d’extension peuvent aussi transformer des chaînes en vrais tableaux.



L’écriture ci-dessus présente un avantage important, à savoir qu’elle peut reconnaître correctement les caractères Unicode 32 bits.



La première façon d’écrire le code ci-dessus, JavaScript reconnaît les caractères Unicode 32 bits comme 2 caractères, et il n’y a pas de problème avec les opérateurs d’extension. Ainsi, la fonction qui retourne correctement la longueur de la chaîne peut s’écrire ainsi :



C’est le problème pour toute fonction impliquant la manipulation de caractères Unicode 32 bits. Il est donc préférable de tous les réécrire avec des opérateurs d’extension.



Dans le code ci-dessus, si vous n’utilisez pas l’opérateur d’extension, l’opération de renversement de chaîne est incorrecte.

(5) Objets qui implémentent l’interface itérateur

Tout objet dans l’interface de l’Itérateur peut être converti en un véritable tableau avec un opérateur d’extension.



Dans le code ci-dessus, la méthode querySelectorAll retourne un objet nodeList. Ce n’est pas un tableau, mais un objet de type array. Dans ce cas, l’opérateur d’extension peut le transformer en un vrai tableau car l’objet NodeList implémente l’interface Iterateur.
Pour les objets de type tableau qui n’ont pas d’interface itéraire déployée, l’opérateur d’extension ne peut pas les transformer en un vrai tableau.



Dans le code ci-dessus, ArrayLike est un objet de type tableau, mais sans déployer l’interface Iterator, l’opérateur d’extension signalera une erreur. Dans ce cas, vous pouvez utiliser la méthode Array.from pour convertir ArrayLike en un vrai tableau à la place.

(6) Structures d’application et d’ensemble, fonctions génératrices

L’opérateur d’extension appelle en interne l’interface itérateur de la structure de données, donc tout objet disposant d’une interface itérateur peut utiliser un opérateur d’extension, tel qu’une structure Map.



Lorsque la fonction Générateur s’exécute, elle retourne un objet traverser, donc des opérateurs d’extension peuvent également être utilisés.



Dans le code ci-dessus, la variable go est une fonction génératrice, et après exécution, elle retourne un objet traverser, et l’exécution d’un opérateur d’extension sur cet objet de traversée convertira les valeurs obtenues lors de la traversée interne en un tableau.
Si vous utilisez un opérateur d’extension pour un objet sans interface itératrice, une erreur sera signalée.





Précédent:Implémentation de Vue+ElementUI
Prochain:Problème de sortie du projet Angular
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com