JavaScript introduzione


Esempio

In JavaScript, le funzioni possono essere definite in modo anonimo usando la sintassi "arrow" ( => ), che a volte viene chiamata espressione lambda a causa delle somiglianze del Common Lisp .

La forma più semplice di una funzione freccia ha i suoi argomenti sul lato sinistro di => e il valore di ritorno sul lato destro:

item => item + 1 // -> function(item){return item + 1}

Questa funzione può essere invocata immediatamente fornendo un argomento all'espressione:

(item => item + 1)(41) // -> 42

Se una funzione freccia richiede un singolo parametro, le parentesi attorno a quel parametro sono facoltative. Ad esempio, le seguenti espressioni assegnano lo stesso tipo di funzione a variabili costanti :

const foo = bar => bar + 1;
const bar = (baz) => baz + 1;

Tuttavia, se la funzione freccia non accetta parametri o più di un parametro, una nuova serie di parentesi deve racchiudere tutti gli argomenti:

(() => "foo")() // -> "foo"

((bow, arrow) => bow + arrow)('I took an arrow ', 'to the knee...')
// -> "I took an arrow to the knee..."

Se il corpo della funzione non è costituito da una singola espressione, deve essere racchiuso tra parentesi e utilizzare un'istruzione di return esplicita per fornire un risultato:

(bar => {
  const baz = 41;
  return bar + baz;
})(1); // -> 42

Se il corpo della funzione di freccia è costituito solo da un oggetto letterale, questo oggetto letterale deve essere racchiuso tra parentesi:

(bar => ({ baz: 1 }))(); // -> Object {baz: 1}

Le parentesi aggiuntive indicano che le parentesi di apertura e chiusura fanno parte dell'oggetto letterale, ovvero non sono delimitatori del corpo della funzione.