domenica 29 settembre 2013

Come creare una funzione con parametri in JavaScript?

Nell'ultimo articolo ti ho spiegato come creare una funzione in JavaScript. Le funzioni in JavaScript possono accettare dei parametri, che possono essere utilizzati per influenzare il comportamento della funzione.

Come passare dei parametri ad una funzione?

Ti basta dichiarare i parametri tra le parentesi tonde alla dichiarazione della funzione. All'invocazione, passa i valori che vuoi utilizzare:

function saluta(nome) {
    return "Ciao, " + nome;
}

saluta("Giustino");
// "Ciao, Giustino"

Passaggio dei parametri - Approfondimento

I parametri sono un modo per passare dei dati all'interno di una funzione. Sono separati da virgole e racchiusi nelle parentesi tonde che seguono il nome della funzione:

function saluta(nome, cognome) {
    return "Ciao, " + nome + " " + cognome;
}

var nome = "Giustino";
var cognome = "Borzacchiello";

saluta(nome, cognome);
// "Ciao, Giustino Borzacchiello"

In questa funzione concateniamo le stringhe necessarie per formare il messaggio voluto.

Questo messaggio viene poi restituito tramite l'operatore return, di cui ti parlerò in un altro post.

Ogni funzione può avere più parametri, ma un solo valore di ritorno. Inoltre i parametri possono essere di qualsiasi tipo: stringhe, numeri, array, oggetti e perfino altre funzioni.

Validare i dati

A meno che tu non sia sicuro del tipo di dati che sono passati ad una funzione (e non si è mai sicuri di questo fatto), avrai bisogno di validare i dati, assicurarti cioè che siano del tipo adatto alla funzione.

Creiamo, ad esempio, una funzione che somma due numeri:

function sommaNumeri(a, b) {
    return a + b;
}

sommaNumeri(3, 4); // 7

Vista così, sembra perfetta. Cosa succederebbe però nel seguente caso?

sommaNumeri(2, "test"); // "2test"

Otteniamo una concatenazione dei due parametri che, visto il nome della funzione, non è voluto.

Dobbiamo quindi verificare che i due parametri passati siano effettivamente numeri, utilizzando l'operatore typeof:

function sommaNumeri(a, b) {
    if( typeof a === 'number' && typeof b === 'number') {
        return a + b;
    }
}

In questo modo siamo sicuri che il valore restituito sia sempre un numero, oppure undefined se il tipo dei parametri non è quello corretto.

Nessun commento :

Posta un commento