Le funzioni in JavaScript

Definire funzioni con la parola chiave function

Definire funzioni alla maniera classica
Definire funzioni alla maniera classica

La sintassi classica per definire una funzione è la seguente:

function prova() {
   console.log("È stata eseguita una funzione di prova");
}

La parte di codice inserita tra parentesi graffe rappresenta il corpo della funzione.

Una funzione è subito disponibile all’interno del blocco in cui è definita, e può essere eseguita chiamandola per nome:

prova(); /// "È stata eseguita una funzione di prova"

Per richiamare una funzione già definita in precedenza è sufficiente invocarne il nome seguito da una coppia di parentesi tonde.

Una funzione può ricevere uno o più parametri, questi vanno inseriti all’interno delle parentesi tonde, sia nella dichiarazione:

function somma(a, b) {
   console.log(a + b);
}

Sia quando la utilizziamo:

somma(5, 7); /// 12

All’interno di una funzione possiamo utilizzare il riferimento arguments per ottenere la lista dei parametri passati alla funzione stessa come se fosse un Array.

function qualcosa(a, b, c) {
    console.log(arguments);
}

qualcosa("ciao", 7, true); /// ["ciao", 7, true]

Se necessario una funzione può restituire un valore, utilizzando la parola return.

Nessuna altra istruzione viene eseguita dopo il return, questa parola rappresenta la fine di tutti i compiti in una funzione.

function doppio(x) {
   return x * 2;
}
var test = doppio(4);

console.log(test); /// 8

Il risultato di una funzione può essere usato direttamente:

console.log( doppio( doppio(4) ) ); /// 16

In ES6 esiste la possibilità di definire valori di default per i parametri di una funzione:

function test(num = 1) {
   console.log(typeof num); /// "number"
}

Questa sintassi non funziona su Internet Explorer, per cui si usa ancora un workaround:

function test(num) {
   if (undefined === num) {
       num = 1;
   }
   console.log(typeof num); /// "number"
}

Questo articolo è parte della collana JavaScript: Guida di riferimento per aspiranti web developer.

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.