Definizione delle funzioni JavaScript

Le funzioni JavaScript sono definite tramite function parola chiaveDefinire.

Puoi utilizzare la funzionedichiarazioneo funzioneEspressione

dichiarazione della funzione

In questo tutorial, in precedenza, hai imparato la sintassi seguentedichiarazioneFunzione:

function nomeDellaFunzione(parametri) {
   Codice da eseguire
}

Le funzioni dichiarate non vengono eseguite direttamente. Vengono "salvate per un uso futuro" e vengono eseguite in futuro, quando vengono chiamate.

Esempio

function myFunction(a, b) {
     return a * b;
}

Prova da solo

Il punto e virgola viene utilizzato per separare le statement eseguibili JavaScript.

Poiché la funzionedichiarazioneNon è una statement eseguibile e non è comune terminarla con un punto e virgola.

espressione di funzione

Le funzioni JavaScript possono anche utilizzareEspressioneper definire.

L'espressione della funzione può essere salvata in una variabile:

Esempio

var x = function (a, b) {return a * b};

Prova da solo

Dopo aver salvato l'espressione della funzione in una variabile, questa variabile può essere utilizzata come funzione:

Esempio

var x = function (a, b) {return a * b};
var z = x(4, 3);

Prova da solo

la funzione sopra è in realtà unaFunzione anonima(funzione senza nome)。

Le funzioni salvate in una variabile non necessitano di un nome. Vengono sempre chiamate utilizzando il nome della variabile.

La funzione sopra è terminata con un punto e virgola perché fa parte di una parte eseguibile della statement.

costruttore Function()

Come visto nei precedenti esempi, le funzioni JavaScript sono definite tramite function definito da una parola chiave.

Le funzioni possono anche essere definite tramite un nome Function() funzione costruttrice integrata di JavaScript per definire.

Esempio

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);

Prova da solo

in realtà non hai bisogno dell'espressione costruttore di funzione. Ecco come può essere scritto anche l'esempio sopra:

Esempio

var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);

Prova da solo

in molti casi, puoi evitare di utilizzare in JavaScript new parola chiave.

sollevamento delle funzioni

nella lezione di questo tutorial, hai già imparato "sollevamento" (hoisting).

Il sollevamento è il modo in cui JavaScriptdichiarazionecomportamento predefinito di spostamento al vertice dell'ambito corrente.

Il sollevamento (hoisting) viene applicato alle dichiarazioni di variabili e funzioni.

Ecco perché le funzioni JavaScript possono essere chiamate prima della loro dichiarazione:

myFunction(5);
 function myFunction(y) {
     return y * y;
}

Le funzioni definite con espressioni non vengono sollevate.

funzione autoesecutiva

L'espressione di funzione può essere utilizzata come "autoesecutiva".

l'espressione autoesecutiva viene chiamata automaticamente (iniziata), senza effettuare la chiamata.

L'espressione di funzione viene eseguita automaticamente, se esiste ()

Non puoi eseguire una dichiarazione di funzione in modo autoesecutivo.

Devi aggiungere parentesi intorno alla funzione per indicare che è un'espressione di funzione:

Esempio

(function () {
    var x = "Hello!!";      // Mi chiamerò io stesso
})();

Prova da solo

la funzione sopra è in realtà unafunzione autoeseguita anonima(funzione senza nome)。

funzione come valore

le funzioni possono essere utilizzate come valori:

Esempio

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3);

Prova da solo

le funzioni JavaScript possono essere utilizzate in espressioni:

Esempio

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3) * 2;

Prova da solo

le funzioni sono oggetti

nelle funzioni di JavaScript typeof l'operatore restituirà "function"。

ma è meglio descrivere le funzioni JavaScript come oggetti.

tutte le funzioni JavaScript hannoproprietàemetodo

arguments.length restituirà il numero di argomenti ricevuti quando la funzione viene chiamata:

Esempio

function myFunction(a, b) {
    return arguments.length;
}

Prova da solo

toString() metodo che restituisce una stringa come funzione:

Esempio

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

Prova da solo

Le funzioni definite come proprietà degli oggetti sono chiamate metodi degli oggetti.

Le funzioni progettate per creare nuovi oggetti sono chiamate costruttori di oggetti (costruttori di oggetti).

Funzioni arrow

Le funzioni arrow permettono di scrivere espressioni di funzione con una sintassi breve.

Non è necessario il nome della funzione, la parola chiave return e le parentesi graffe.

Esempio

// ES5
var x = function(x, y) {
  return x * y;
}
// ES6
const x = (x, y) => x * y;

Prova da solo

Le funzioni arrow non hanno il proprio this. Non sono adatte per definire metodi degli oggetti.

Le funzioni arrow non vengono elevate. Devono essere definite prima di essere utilizzate.

Usare const è più sicuro rispetto a var perché l'espressione della funzione è sempre un valore costante.

Se la funzione è un singolo comando, è possibile saltare la parola chiave return e le parentesi graffe. Pertanto, mantenere queste cose potrebbe essere una buona abitudine:

Esempio

const x = (x, y) => { return x * y };

Prova da solo

IE11 e versioni precedenti non supportano le funzioni arrow.