Fermer

mars 9, 2021

Simplifier les paramètres de repos dans JavaScript


Cet article explique les paramètres de repos en JavaScript, qui vous permettent de transmettre soit un plus petit nombre d'arguments, soit un plus grand nombre d'arguments que le paramètre formel spécifié. Les paramètres de repos sont un objet tableau, toujours représenté comme le dernier argument formel de la fonction.

Pour comprendre les paramètres de repos en JavaScript, commençons par créer une fonction pour ajouter deux nombres.

 fonction [19659004] addNumbers  ( num1  num2 )   {
     let  res  =  num1  +  num2 ; 
     return  res ; 
} 

 let  result  =   addNumbers  ( 7 [19659015] 2 ) ; 
console .  log  ( result ) ;  

La fonction ci-dessus prend deux arguments d'entrée et renvoie l'addition des arguments passés. Donc, si vous passez deux nombres, la fonction addNumbers renverra la somme de ces deux nombres.

Cependant, de par leur conception, toutes les fonctions JavaScript sont surchargées ce qui signifie que vous pouvez passer :

  • Arguments supplémentaires à la fonction
  • Moins d'arguments à la fonction

Dans la définition de la fonction surchargée, vous pouvez ignorer les types, car JavaScript est un langage sans type . Passons moins d'arguments à la fonction addNumbers:

 function   addNumbers  ( num1  num2 )   {
     let  res  =  num1  +  num2 ;  
     return  res ; 
} 
 let  result  =   addNumbers  ( 7 ) ; 
console .  log  ( result ) ;  

Comme vous le voyez, JavaScript ne se plaint pas de moins d'arguments et renvoie NaN comme un résultat. Ensuite, passez plus d'arguments à la fonction addNumbers:

 function   addNumbers  ( num1  num2 )   {[19659007] let  res  =  num1  +  num2 ; 
     return  res ; 
} 
 let  result  =   addNumbers  ( 7   2   4   9   1  ]  6 ) ; 
console .  log  ( result ) ;  

Encore une fois, JavaScript ne se plaint pas d'arguments supplémentaires et attribue les deux premiers arguments à num1 et num2

Maintenant, vous pouvez avoir quelques questions concernant les arguments supplémentaires de la fonction:

  • JavaScript ignore-t-il les arguments supplémentaires?
  • Existe-t-il un moyen d'accéder à des arguments supplémentaires à l'intérieur de la fonction?

La réponse aux questions ci-dessus est paramètres de repos . JavaScript n'ignore pas les arguments supplémentaires et les représente dans la fonction en utilisant les paramètres de repos .

Les paramètres de repos représentent un nombre inconnu d'arguments sous forme de tableau à l'intérieur de la fonction.
Quelques caractéristiques des autres paramètres sont:

• Il représente les arguments supplémentaires passés dans la fonction.
• Il est toujours défini comme le dernier paramètre formel de la fonction.
• Il est toujours précédé de trois points . Un paramètre de repos avec le nom «foo» est représenté par … foo .

Dans la fonction addNumbers un paramètre de repos peut être ajouté comme indiqué ci-après dans la liste de codes suivante: [19659003] function addNumbers ( num1 num2 ep ) {
console . log ( ep . length ) ;
let res = num1 + num2 ;
return res ;
}
let result = addNumbers ( 7 2 4 9 1 6 ) ;
console . log ( result ) ;

Maintenant, la fonction addNumbers a un paramètre de repos avec le nom ep . Vous pouvez donner n'importe quel nom au paramètre rest. Comme les paramètres rest représentent des arguments supplémentaires passés à la fonction, vous obtenez 4 en sortie lors de l'impression de sa longueur.

Le paramètre rest est un ** objet tableau **, ce qui signifie que vous pouvez effectuer des opérations telles que push, pop, length, sort, map etc. Vous pouvez effectuer diverses opérations de tableau sur le paramètre rest comme indiqué dans la liste de codes suivante:

 function   addNumbers  ( num1  num2   ...  ep )   {
    console .  log  ( ep .  length ) ; 
    ep .  push  ( 9 ) ; 
    ep  [ 0 ]   =   10 ; 
    console .  log  ( ep .  length ) ; 
    console .  log  ( ep .  sort  () ) ;  
     let  res  =  num1  +  num2 ; 
     return  res ; 
} 
 let  result  =   addNumbers  ( 7   2   4   9   1   6 [19659005]) ; 
console .  log  ( result ) ;  

Une chose importante à garder à l'esprit est que le paramètre rest doit toujours être le dernier paramètre formel du fonction. Le code ci-dessous génère une erreur:

 function   addNumbers  ( num1  ...  ep  num2 )  {
     let  res  =  num1  +  num2 ; 
     return  res ;  
  } [19659169] Pour la fonction ci-dessus, JavaScript devrait générer une erreur indiquant que le paramètre  Rest doit être le dernier paramètre formel.  

Vous pouvez utiliser le paramètre normal et le paramètre repos ensemble pour répondre à une exigence particulière. Dans l'exemple suivant, la fonction multiplie tous les paramètres supplémentaires par le paramètre formel et renvoie le tableau.

 function   multiplyNumbers  ( num   ...  ep )   {
     let  res  =  ep .  map  ( e  =>   { 
         return  num  *  e ; 
    } ) ; 

     return  res ; 
} [19659033] let  résultat  =   multiplierNombres  ( 7   2   4   9   1   6 ) ; 
console .  log  ( result ) ;  

Différence entre les paramètres de repos et l'objet d'arguments

Outre les paramètres de repos, vous pouvez également utiliser le arguments object pour travailler avec des arguments supplémentaires passés à une fonction. Chaque fois que vous appelez une fonction, JavaScript lui transmet l'objet arguments.

 function   addNumbers  ( num1  num2 )  {
    console .  log  ( arguments .  length ) ;  
     let  res  =  num1  +  num2 ; 
     return  res ;  
  } 

 let  res  =   addNumbers  ( 7  5  8  9  2 ) ; 

Contrairement aux paramètres de repos, le arguments object contient tous les arguments passés à la fonction - c'est pourquoi vous obtenez 5 lors de l'impression de la longueur de l'objet arguments. Certaines des différences significatives entre les paramètres de repos et l'objet arguments sont les suivantes:

  • Les paramètres de repos représentent le nombre inconnu d'arguments à l'intérieur de la fonction, alors que l'objet arguments représente tous les arguments passés à la fonction.
  • Les paramètres de repos sont purs
  • Puisque les paramètres de repos sont des instances d'un tableau, des méthodes telles que sort, pop, push, etc. peuvent être appliquées à cela. Cependant, l'application de ces méthodes sur l'objet arguments génère une erreur.

Donc, pour le code suivant, JavaScript générera une erreur:

 function   addNumbers  ( num1  num2 )  {
    console .  log  ( arguments .  length ) ; 
    arguments .  sort  () ; 
    arguments .  pop  () ; 
     let  res  =  num1  +  num2 ; [19659007] return  res ;  
  } 

 let  res  =   addNumbers  ( 7  5  ,  8  9  2 ) ; 

In Nested Functions

Chaque fonction a son propre objet d'arguments ]donc si vous voulez accéder à l'objet arguments de la fonction parent à l'intérieur d'une fonction enfant, ce n'est pas directement possible. Comme vous le voyez dans le code ci-dessous, la fonction display et la fonction addNumbers ont toutes deux un objet arguments .

 function   addNumbers  ( num1  num2 )  {
    
    console .  log  ( arguments .  length ) ; 
    console .  log  ( arguments  [ 0 ] ) ;  

      function   display  ([19659005])  {
         
         console .  log  ( arguments .  length ) ; 
         console .  log  ( arguments  [ 0 ] ) ;      
     } 

      display  ([19659013] 1  9 ) ; 
 } 

 let  res  =   addNumbers  ( 7  ,  5  8  9  2 ) ; 

Cependant, une fonction enfant peut accéder directement au reste paramètre de la fonction parent, comme indiqué dans le code ci-dessous:

 function   addNumbers  ( num1  num2  ...  ep )  {
    
    console .  log  ( ep .  length ) ;  

      function   display  () [19659005] {
         console .  log  ( ep .  length ) ;  
     } 

      display  ( 1 [19659005] 9 ) ; 
 } 

 let  res  =   addNumbers  ( 7  5  8  9  2 ) ; 

Ainsi, quand il s'agit de travailler avec des fonctions imbriquées, les paramètres de repos sont une meilleure option qu'un objet arguments.

Résumé

En résumé, vous devez connaître les points suivants sur les paramètres de repos:

  • Ils représentent les arguments supplémentaires passés dans la fonction à l'intérieur d'un tableau.
  • Ils sont toujours défini comme le dernier paramètre formel de la fonction et précédé de trois points.
  • Toutes les opérations de tableau telles que push, pop, map, sort, length, etc. peuvent être effectuées sur des paramètres de repos.

J'espère que vous trouverez cet article utile. Merci d'avoir lu.




Source link