Nella lezione precedente, abbiamo parlato delle funzioni: blocchi di codice che svolgono determinate istruzioni. Ma ci sono alcune cose ancora da approfondire. In questa lezione, vediamo cosa è e come usare return
e le variabili all'interno di una funzione.
Le variabili nelle funzioni
Come abbiamo visto nella lezione precedente, i parametri di una funzione sono visibili solamente all'interno del blocco, e non fuori.
function messaggio(parola) {
alert(parola); // Risultato: "ciao"
}
alert(parola); // Errore
messaggio("ciao");
alert(parola); // Errore
Lo stesso comportamento hanno le variabili dichiarate all'interno delle funzioni: non sono visibili all'esterno. Questo accade perché, terminata la funzione, vengono distrutte tutte le variabili dichiarate.
function calcola() {
const numero = 2;
alert(numero * 3);
}
alert(numero); // Errore
calcola();
alert(numero); // Errore
Tuttavia, le variabili dichiarate all'esterno della funzione (ma prima della chiamata alla funzione) sono visibili:
function calcola() {
alert(numero * 3);
}
const numero = 2;
calcola();
Come salvare le variabili: chiamate alle funzioni e return
Come abbiamo visto, tutte le variabili all'interno della funzione vengono distrutte. Per salvare una variabile o un valore, si utilizza l'istruzione return
seguita dalla variabile o dal valore.
function calcolaSomma(a, b) {
somma = a + b;
return somma;
}
calcolaSomma(3, 6);
Nell'esempio, viene restituito il valore di somma
. Tuttavia, per trasferire il valore somma
(con return
) ad una variabile esterna, dobbiamo utilizzare una chiamata alla funzione diversa.
La sintassi da usare per la chiamata alla funzione è: variabile
nome_funzione=
(
parametri)
. Vediamo un esempio.
function calcolaSomma(a, b) {
somma = a + b;
return somma;
}
let risultato = calcolaSomma(3, 6);
alert(risultato); // Risultato: 9
In questo caso, il valore di somma
viene trasferito, grazie al return
, dalla funzione a risultato
.
Il return
può trasferire qualsiasi tipo di valore: stringhe, numeri, array, oggetti e valori booleani (true
e false
). Inoltre, il return
esce sempre dalla funzione, come il break
per i cicli di for.
Esempio di funzione
Ora che abbiamo appreso tutto l'essenziale per le funzioni, vediamo un esempio concreto.
Dobbiamo chiedere all'utente, tramite prompt
, una password. Questa password deve avere almeno 8 caratteri. Utilizziamo il ciclo di while
per effettuare una nuova richiesta in caso di password errata.
// Funzione
function verificaPassword(password) {
// Verifica la lunghezza della password
if (password.length < 8) {
// La password non rispetta i requisiti
return false; // Viene restituito false
}
// Se si arriva qui, significa che la password ha almeno 8 caratteri
return true; // Viene restituito true
}
let passwordValida = false;
// Il ciclo richiede la password finché non è valida
while (passwordValida == false) {
const passwordUtente = prompt("Inserisci la tua password:");
// Chiamata alla funzione
passwordValida = verificaPassword(passwordUtente);
// Se la password è valida, esci dal ciclo while
if (passwordValida) {
alert("Password valida!");
} else {
alert("La password non rispetta i requisiti. Riprova.");
}
}