Simplifier les paramètres de repos dans JavaScript

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