JavaScript Argomenti della funzione, oggetto "argomenti", parametri di pausa e diffusione


Esempio

Le funzioni possono assumere input sotto forma di variabili che possono essere utilizzate e assegnate all'interno del proprio ambito. La seguente funzione accetta due valori numerici e restituisce la loro somma:

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

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

arguments oggetto

L'oggetto arguments contiene tutti i parametri della funzione che contengono un valore non predefinito . Può anche essere utilizzato anche se i parametri non sono esplicitamente dichiarati:

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

Sebbene durante la stampa di arguments l'output sia simile a una matrice, in realtà è un oggetto:

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

Parametri di riposo: function (...parm) {}

In ES6, la sintassi ... quando viene utilizzata nella dichiarazione dei parametri di una funzione trasforma la variabile alla sua destra in un singolo oggetto contenente tutti i parametri rimanenti forniti dopo quelli dichiarati. Ciò consente alla funzione di essere invocata con un numero illimitato di argomenti, che diventeranno parte di questa variabile:

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

Parametri di diffusione: function_name(...varb);

In ES6, la sintassi ... può essere utilizzata anche quando si richiama una funzione posizionando un oggetto / variabile alla sua destra. Ciò consente agli elementi di quell'oggetto di essere passati in quella funzione come un singolo oggetto:

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