4.1 Parametri delle funzioni
I parametri delle funzioni in JavaScript permettono di passare valori alle funzioni per elaborarle. Questo rende le funzioni più flessibili e adattabili. In questo argomento esamineremo gli aspetti principali del lavoro con i parametri delle funzioni in JavaScript, escludendo i parametri di default e i parametri rest.
I parametri vengono indicati tra parentesi tonde dopo il nome della funzione. Quando la funzione viene chiamata, i valori di questi parametri vengono passati nelle corrispondenti variabili all'interno della funzione.
Esempio:
Nella funzione greet()
sono definiti due parametri: name
e age
. Quando la funzione viene chiamata, i valori Alice
e 30
vengono passati a questi parametri.
function greet(name, age) {
return `Hello, ${name}! You are ${age} years old.`;
}
console.log(greet('Alice', 30)); // "Hello, Alice! You are 30 years old."
Gestione dei parametri non definiti
Se un parametro non viene passato quando si chiama la funzione, il suo valore sarà undefined
. Questo può causare errori se con questo parametro si effettuano operazioni che non supportano undefined
.
Esempio:
Nella funzione greet()
si controlla se il parametro name
è stato passato. Se no, viene utilizzata la stringa Guest
.
function greet(name) {
if (name === undefined) {
return 'Hello, Guest!';
}
return `Hello, ${name}!`;
}
console.log(greet()); // "Hello, Guest!"
console.log(greet('Bob')); // "Hello, Bob!"
4.2 Parametri di default
I parametri di default permettono di impostare valori che verranno utilizzati se un argomento non viene passato quando si chiama la funzione o viene passato come undefined
. Questo è particolarmente utile per creare funzioni con parametri opzionali.
Sintassi:
function name (arg1 = value1, arg2 = value2) {
// function body
}
Esempio 1: Funzione semplice con parametri di default
In questo esempio, la funzione greet()
ha un parametro name con il valore di default Guest
. Se l'argomento non viene passato, verrà utilizzato il valore di default.
function greet(name = 'Guest') {
return `Hello, ${name}!`;
}
console.log(greet('Alice')); // Output: Hello, Alice!
console.log(greet()); // Output: Hello, Guest!
Esempio 2: Parametri di default con espressioni
In questo esempio, il parametro tax
di default viene calcolato come il 20% di price
se non è stato passato un altro argomento.
function calculatePrice(price, tax = price * 0.2) {
return price + tax;
}
console.log(calculatePrice(100)); // Output: 120
console.log(calculatePrice(100, 15)); // Output: 115
Esempio 3: Parametri di default che dipendono da altri parametri
In questo esempio, i parametri di default permettono di creare un utente con ruoli e stati predefiniti.
function createUser(name, role = 'user', isActive = true) {
return { name, role, isActive };
}
console.log(createUser('Alice')); // Output: { name: 'Alice', role: 'user', isActive: true }
console.log(createUser('Bob', 'admin')); // Output: { name: 'Bob', role: 'admin', isActive: true }
console.log(createUser('Charlie', 'moderator', false)); // Output: { name: 'Charlie', role: 'moderator', isActive: false }
4.3 Parametri rest
I parametri rest permettono a una funzione di accettare un numero qualsiasi di argomenti e di raccoglierli in un array. Questo è utile per creare funzioni che possono lavorare con un numero arbitrario di argomenti.
Sintassi:
function name (arg1, arg2, ...argArray) {
// function body
}
Esempio 1: Somma di tutti gli argomenti passati
In questo esempio, la funzione sumAll()
utilizza i parametri rest per sommare tutti gli argomenti passati.
function sumAll(...numbers) {
return numbers.reduce((sum, num) => sum + num, 0);
}
console.log(sumAll(1, 2, 3)); // Output: 6
console.log(sumAll(4, 5, 6, 7, 8)); // Output: 30
Esempio 2: Funzione con parametri fissi e rest
In questo esempio, la funzione showItems()
accetta un parametro fisso firstItem
e un numero indefinito di altri argomenti raccolti in un array otherItems
.
function showItems(firstItem, ...otherItems) {
console.log(`Primo elemento: ${firstItem}`);
console.log(`Altri elementi: ${otherItems.join(', ')}`);
}
showItems('apple', 'banana', 'cherry', 'date');
// Output:
// Primo elemento: apple
// Altri elementi: banana, cherry, date
Esempio 3: Funzione con argomenti dinamici
In questo esempio, la funzione createMessage()
accetta il primo argomento messageType
e raccoglie tutti gli altri parametri in un array messages
per creare un messaggio.
function createMessage(messageType, ...messages) {
return `[${messageType.toUpperCase()}]: ${messages.join(' ')}`;
}
console.log(createMessage('info', 'This', 'is', 'an', 'informational', 'message'));
// Output: [INFO]: This is an informational message
console.log(createMessage('error', 'An', 'error', 'occurred'));
// Output: [ERROR]: An error occurred
GO TO FULL VERSION