Le funzioni JavaScript sono definite con la parola chiavefunction
.
È possibile utilizzare una dichiarazione di funzione o un’espressione di funzione.
- Dichiarazioni di Funzione
- Esempio
- Espressioni di funzione
- Esempio
- Esempio
- Il costruttore Function ()
- Esempio
- Esempio
- Funzione di sollevamento
- Funzioni auto-invocanti
- Esempio
- Le funzioni possono essere utilizzate come valori
- Esempio
- Esempio
- Funzioni sono Oggetti
- Esempio
- Esempio
- Funzioni freccia
- Esempio
- Esempio
Dichiarazioni di Funzione
in Precedenza in questa esercitazione, si è appreso che le funzioni sono dichiarate con la seguente sintassi:
// codice da eseguire
}
le funzioni Dichiarate non sono eseguiti immediatamente. Vengono “salvati per un uso successivo” e verranno eseguiti in seguito, quando vengono richiamati (chiamati).
Esempio
restituisce a * b;
}
Provate voi stessi ”
I punti e virgola vengono utilizzati per separare le istruzioni JavaScript eseguibili.
Poiché una dichiarazione di funzione non è un’istruzione eseguibile, non è comune terminarla con un punto e virgola.
Espressioni di funzione
Una funzione JavaScript può anche essere definita utilizzando un’espressione.
Un’espressione di funzione può essere memorizzata in una variabile:
Esempio
Provate voi Stessi ”
Dopo un’espressione di funzione è stato memorizzato in una variabile, la variabile può essere usata come una funzione:
Esempio
var z = x(4, 3);
Provate voi Stessi ”
La funzione di cui sopra è in realtà una funzione anonima (una funzione senza nome).
Le funzioni memorizzate nelle variabili non necessitano di nomi di funzioni. Sono sempre invocati (chiamati) usando il nome della variabile.
La funzione sopra termina con un punto e virgola perché fa parte di un’istruzione eseguibile.
Il costruttore Function ()
Come avete visto negli esempi precedenti, le funzioni JavaScript sono definite con la parola chiave function
.
Le funzioni possono anche essere definite con un costruttore di funzioni JavaScript incorporato chiamato Function()
.
Esempio
var x = myFunction(4, 3);
Provalo tu stesso ”
In realtà non devi usare il costruttore di funzioni. L’esempio sopra è lo stesso della scrittura:
Esempio
var x = myFunction(4, 3);
Provalo tu stesso ”
La maggior parte delle volte, puoi evitare di usare la parola chiave new
in JavaScript.
Funzione di sollevamento
In precedenza in questo tutorial, hai imparato a conoscere “sollevamento” (Sollevamento JavaScript).
Il sollevamento è il comportamento predefinito di JavaScript per spostare le dichiarazioni in cima all’ambito corrente.
Il sollevamento si applica alle dichiarazioni di variabili e alle dichiarazioni di funzioni.
Per questo motivo, le funzioni JavaScript possono essere chiamate prima che vengano dichiarate:
funzione myFunction (y) {
ritorno y * y;
}
Le funzioni definite utilizzando un’espressione non vengono sollevate.
Funzioni auto-invocanti
Le espressioni di funzione possono essere fatte “auto-invocanti”.
Un’espressione auto-invocante viene invocata (avviata) automaticamente, senza essere chiamata.
Le espressioni di funzione verranno eseguite automaticamente se l’espressione è seguita da ().
Non è possibile invocare automaticamente una dichiarazione di funzione.
È necessario aggiungere parentesi attorno alla funzione per indicare che si tratta di un’espressione di funzione:
Esempio
var x = ” Ciao!!”; / / Invocherò me stesso
})();
Provalo tu stesso ”
La funzione sopra è in realtà una funzione anonima auto-invocante (funzione senza nome).
Le funzioni possono essere utilizzate come valori
Le funzioni JavaScript possono essere utilizzate come valori:
Esempio
restituisce a * b;
}
var x = myFunction(4, 3);
Provate voi Stessi ”
funzioni JavaScript può essere utilizzato in espressioni:
Esempio
return a * b;
}
var x = miafunzione(4, 3) * 2;
Provate voi Stessi ”
Funzioni sono Oggetti
Il typeof
operatore in JavaScript restituisce “funzione” per le funzioni.
Ma le funzioni JavaScript possono essere meglio descritte come oggetti.
Le funzioni JavaScript hanno sia proprietà che metodi.
La proprietà arguments.length
restituisce il numero di argomenti ricevuti quando la funzione è stata richiamata:
Esempio
restituisce argomenti.length;
}
Provalo tu stesso ”
Il metodo toString()
restituisce la funzione come stringa:
Esempio
restituisce a * b;
}
var txt = myFunction.toString ();
Provalo tu stesso ”
Una funzione definita come la proprietà di un oggetto, viene chiamato un metodo per l’oggetto.
Una funzione progettata per creare nuovi oggetti, è chiamato un costruttore di oggetti.
Funzioni freccia
Funzioni freccia consente una breve sintassi per la scrittura di espressioni di funzione.
Non hai bisogno della parola chiave function
, della parola chiave return
e delle parentesi graffe.
Esempio
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) = > x * y;
Provalo tu stesso ”
Le funzioni freccia non hanno il loro this
.Non sono adatti per la definizione di metodi oggetto.
Le funzioni freccia non vengono issate. Devono essere definiti prima di essere utilizzati.
Usare const
è più sicuro che usare var
, perché un’espressione di funzione è sempre un valore costante.
È possibile omettere la parola chiave return
e le parentesi graffe solo se la funzione è una singola istruzione. Per questo motivo, potrebbe essere una buona abitudine tenerli sempre:
Esempio
Prova tu stesso ”
Le funzioni Freccia non sono supportate in IE11 o versioni precedenti.