Aperçu
Underscore.js est une bibliothèque très légère, seulement 4 Ko compressés. Il fournit des dizaines de méthodes de programmation fonctionnelles, ce qui facilite grandement la programmation Javascript. Le framework MVC backbone.js est basé sur cette bibliothèque.
Il définit un objet de trait de soulignement (_), et toutes les méthodes de la bibliothèque de fonctions appartiennent à cet objet. Ces méthodes peuvent être grossièrement divisées en cinq catégories : collection, tableau, fonction, objet et utilitaire.
Installer sous node.js
Underscore.js peut être utilisé non seulement dans les environnements de navigateur, mais également dans node.js. La commande d'installation est la suivante :
Méthodes liées aux collections
La collecte de données en langage Javascript comprend deux structures : les tableaux et les objets. Les méthodes suivantes s'appliquent aux deux structures.
carte
Cette méthode effectue tour à tour certaines opérations sur chaque membre de la collection et stocke la valeur renvoyée dans un nouveau tableau.
chacun
Cette méthode est similaire à map, qui effectue tour à tour certaines opérations sur chaque membre de la collection, mais ne renvoie pas de valeur.
réduire
Cette méthode effectue une sorte d'opération sur chaque membre de l'ensemble à tour de rôle, puis accumule les résultats de l'opération sur une certaine valeur initiale. Une fois toutes les opérations terminées, la valeur accumulée est renvoyée.
Cette méthode accepte trois paramètres. Le premier paramètre est la collection en cours de traitement, le deuxième paramètre est la fonction qui opère sur chaque membre et le troisième paramètre est la variable utilisée pour l'accumulation.
_.reduce([1, 2, 3], function(memo, num){ return memo num; }, 0);
Le deuxième paramètre de la méthode de réduction est la fonction d'opération, qui accepte elle-même deux paramètres. Le premier est la variable utilisée pour l'accumulation et le second est la valeur de chaque membre de l'ensemble.
filtrer et rejeter
La méthode de filtrage effectue tour à tour certaines opérations sur chaque membre de la collection et renvoie uniquement les membres dont le résultat de l'opération est vrai.
La méthode each effectue une opération sur chaque membre de la collection à tour de rôle. Si les résultats de l'opération de tous les membres sont vrais, elle renvoie vrai, sinon elle renvoie faux.
trouver
Cette méthode effectue une opération sur chaque membre de la collection tour à tour et renvoie le premier membre dont le résultat de l'opération est vrai. Si le résultat de l'opération de tous les membres est faux, undefined est renvoyé.
contient
Si une valeur est dans la collection, cette méthode renvoie vrai, sinon elle renvoie faux.
countBy
Cette méthode effectue une sorte d'opération sur chaque membre de l'ensemble à tour de rôle, compte les membres avec les mêmes résultats d'opération comme une catégorie et renvoie enfin un objet indiquant le nombre de membres correspondant à chaque résultat d'opération.
mélanger
Cette méthode renvoie une collection mélangée.
taille
Cette méthode renvoie le nombre de membres de la collection.
Méthodes liées aux objets
versArray
Cette méthode convertit l'objet en tableau.
arracher
Cette méthode extrait la valeur d'un certain attribut de plusieurs objets dans un tableau.
Méthodes liées aux fonctions
lier
Cette méthode lie le contexte d'exécution de la fonction et le renvoie en tant que nouvelle fonction.
bindAll
Cette méthode lie toutes les méthodes d'un objet (sauf indication contraire) à l'objet.
partiel
Cette méthode de liaison lie une fonction à des paramètres, puis la renvoie en tant que nouvelle fonction.
mémoriser
Cette méthode met en cache les résultats d'exécution d'une fonction pour un certain paramètre.
retard
Cette méthode peut reporter l'exécution de la fonction pendant une durée spécifiée.
différer
Cette méthode peut reporter l'exécution de la fonction jusqu'à ce que le nombre de tâches à exécuter atteigne 0, similaire à l'effet de setTimeout retardant l'exécution de 0 seconde.
accélérateur
Cette méthode renvoie une nouvelle version de la fonction. Lors de l'appel continu de cette nouvelle version de la fonction, vous devez attendre un certain temps avant de déclencher l'exécution suivante.
anti-rebond
Cette méthode renvoie également une nouvelle version d'une fonction. Chaque fois que cette nouvelle version de la fonction est appelée, il doit y avoir un certain temps entre l'appel précédent, sinon elle sera invalide. Son application typique est d'empêcher les utilisateurs de double-cliquer sur un bouton, ce qui entraînerait la soumission du formulaire deux fois.
une fois
Cette méthode renvoie une nouvelle version de la fonction afin que cette fonction ne puisse être exécutée qu'une seule fois. Principalement utilisé pour l'initialisation d'objets.
après
Cette méthode renvoie une nouvelle version de la fonction. Cette fonction ne s'exécutera qu'après avoir été appelée un certain nombre de fois. Elle est principalement utilisée pour confirmer qu'un ensemble d'opérations est terminé avant de réagir.
enveloppement
Cette méthode prend une fonction comme paramètre, la passe dans une autre fonction et renvoie finalement une nouvelle version de la première.
composer
Cette méthode accepte une série de fonctions comme paramètres et les exécute dans l'ordre de l'arrière vers l'avant. Le résultat de l'exécution de la fonction précédente est utilisé comme paramètre d'exécution de la fonction suivante. En d’autres termes, convertissez la forme de f(g(),h()) en f(g(h())).
Méthodes d'outils
modèle
Cette méthode est utilisée pour compiler des modèles HTML. Il accepte trois paramètres.
templateString : chaîne de modèle
data : saisir les données du modèle
paramètres : paramètres
templateString
La chaîne de modèle templateString est un langage HTML ordinaire, dans lequel les variables sont insérées sous la forme <%= ... %>; l'objet de données est chargé de fournir la valeur de la variable.
<%= mot %>
Les commandes JavaScript peuvent être insérées sous la forme <% … %>. Ce qui suit est un exemple de déclaration de jugement.
données
Toutes les variables de templateString sont des attributs internes de l'objet obj, et l'objet obj fait référence au deuxième objet de données de paramètre. Les deux affirmations suivantes sont équivalentes.