JavaScript/Funzioni definite dall'utente
Come molti linguaggi di programmazione, anche JavaScript da la possibilità di creare le proprie funzioni personalizzate.
Come è stato già accenato in precedenza, una funzione è un sottoprogramma identificato da una sequenza di caratteri che può accettare o meno nessuno o più parametri e può restituire un valore.
Creare le proprie funzioni: una panoramica
modificaLa sintassi per la creazione di una nuova funzione è la seguente:
function nome_funzione (arg1, arg2, argN...) {
''codice''
}
Ad esempio:
function benvenuto (nome) {
alert("Benvenuto, " + nome);
}
Se vogliamo eseguire il codice contenuto nella funzione dobbiamo richiamarla (o invocarla). Ad esempio:
var n = prompt("Come ti chiami?");
if (n != "")
benvenuto (n);
Con questo breve spezzone chiediamo all'utente di inserire il nome e, se non risponde con una stringa vuota e non ha premuto Annulla, gli porge il benvenuto (si noti che il metodo prompt
restituisce una stringa vuota se l'utente fa clic su "Annulla").
Usare i parametri
modificaCome abbiamo visto, è possibile prevedere che l'utente possa passare alcuni parametri alla funzione. Dando una sguardo alla funzione di benvenuto creata precedentemente, vediamo che il parametro nome
della funzione diventa poi automaticamente una variabile; se quando viene chiamata la funzione viene omesso, il parametro assumerà un valore nullo (che diventa 0 per i numeri, una stringa vuota per i valori alfanumerici, falso per i valori booleani).
Impostare un valore di ritorno
modificaImpostare un valore di ritorno di una funzione è molto semplice, basta seguire la sintassi:
return valore;
Quando incontra l'istruzione return
, JavaScript interrompe l'esecuzione della funzione e restituisce il valore indicato. Ad esempio:
function somma (a, b)
{ //una semplice funzione
return a+b;
}
var c = somma(3,5); //c assumerà il valore 8
somma(4,12); //in questo caso non succede nulla
Una funzione può anche essere utilizzata prima che ne venga dichiarato il contenuto. Il codice precedente e quello riportato qui sotto sono infatti entrambi validi
var c = somma(3,5); //la funzione somma non esiste ancora!
function somma (a, b)
{ //una semplice funzione
return a+b;
}