Parametri della funzione JavaScript
Un JavaScript function
non esegue alcun controllo sui valori dei parametri (argomenti).
Parametri e argomenti di funzione
In precedenza in questo tutorial, hai appreso che le funzioni possono avere parametri :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
I parametri della funzione sono i nomi elencati nella definizione della funzione.
Gli argomenti della funzione sono i valori reali passati (e ricevuti da) la funzione.
Regole dei parametri
Le definizioni delle funzioni JavaScript non specificano i tipi di dati per i parametri.
Le funzioni JavaScript non eseguono il controllo del tipo sugli argomenti passati.
Le funzioni JavaScript non controllano il numero di argomenti ricevuti.
Parametri predefiniti
Se una funzione viene chiamata con argomenti mancanti (minori di quelli dichiarati), i valori mancanti vengono impostati su
undefined
.
A volte questo è accettabile, ma a volte è meglio assegnare un valore predefinito al parametro:
Esempio
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015 consente valori di parametro predefiniti nella dichiarazione della funzione:
function myFunction(x, y = 2) {
// function code
}
L'oggetto Argomenti
Le funzioni JavaScript hanno un oggetto integrato chiamato oggetto argomenti.
L'oggetto argomento contiene un array degli argomenti utilizzati quando la funzione è stata chiamata (richiamata).
In questo modo puoi semplicemente usare una funzione per trovare (ad esempio) il valore più alto in un elenco di numeri:
Esempio
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Oppure crea una funzione per sommare tutti i valori di input:
Esempio
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Se una funzione viene chiamata con troppi argomenti (più di quelli dichiarati), questi argomenti possono essere raggiunti utilizzando gli argomenti oggetto .
Gli argomenti sono passati per valore
I parametri, in una chiamata di funzione, sono gli argomenti della funzione.
Gli argomenti JavaScript vengono passati per valore : la funzione conosce solo i valori, non le posizioni dell'argomento.
Se una funzione modifica il valore di un argomento, non cambia il valore originale del parametro.
Le modifiche agli argomenti non sono visibili (riflette) all'esterno della funzione.
Gli oggetti vengono passati per riferimento
In JavaScript, i riferimenti agli oggetti sono valori.
Per questo motivo, gli oggetti si comporteranno come se fossero passati per riferimento:
Se una funzione modifica una proprietà di un oggetto, cambia il valore originale.
Le modifiche alle proprietà dell'oggetto sono visibili (riflettete) al di fuori della funzione.