JavaScript Fonction Arguments, objet "arguments", paramètres de repos et de propagation


Exemple

Les fonctions peuvent prendre des entrées sous la forme de variables pouvant être utilisées et assignées dans leur propre domaine. La fonction suivante prend deux valeurs numériques et renvoie leur somme:

function addition (argument1, argument2){
    return argument1 + argument2; 
}

console.log(addition(2, 3)); // -> 5

objet arguments

L'objet arguments contient tous les paramètres de la fonction qui contiennent une valeur autre que celle par défaut . Il peut également être utilisé même si les paramètres ne sont pas explicitement déclarés:

(function() { console.log(arguments) })(0,'str', [2,{3}]) // -> [0, "str", Array[2]]

Bien que lors de l'impression d' arguments la sortie ressemble à un tableau, c'est en fait un objet:

(function() { console.log(typeof arguments) })(); // -> object

Paramètres de repos: function (...parm) {}

Dans ES6, la ... syntaxe lorsqu'elle est utilisée dans la déclaration des paramètres d'une fonction transforme la variable à son droit en un seul objet contenant tous les autres paramètres fournis après ceux déclarés. Cela permet à la fonction d'être invoquée avec un nombre illimité d'arguments, qui feront partie de cette variable:

(function(a, ...b){console.log(typeof b+': '+b[0]+b[1]+b[2]) })(0,1,'2',[3],{i:4});
// -> object: 123  

Paramètres de propagation: function_name(...varb);

Dans ES6, la syntaxe ... peut également être utilisée lors de l'appel d'une fonction en plaçant un objet / variable à sa droite. Cela permet aux éléments de cet objet d'être passés dans cette fonction en un seul objet:

let nums = [2,42,-1];
console.log(...['a','b','c'], Math.max(...nums)); // -> a b c 42