Skip to content

Commit 2cf2ace

Browse files
committed
change expression
1 parent 7f770c1 commit 2cf2ace

File tree

1 file changed

+20
-20
lines changed
  • 1-js/02-first-steps/16-function-expressions

1 file changed

+20
-20
lines changed

1-js/02-first-steps/16-function-expressions/article.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Espressioni di funzione
1+
# Function expression
22

33
In JavaScript, una funzione non è una "struttura magica del linguaggio", ma un valore speciale.
44

@@ -10,7 +10,7 @@ function sayHi() {
1010
}
1111
```
1212

13-
E' disponibile un'altra sintassi per creare una funzione, chiamata *Espressione di Funzione*.
13+
E' disponibile un'altra sintassi per creare una funzione, chiamata *function expression*.
1414

1515
La sintassi:
1616

@@ -65,7 +65,7 @@ Quello che succede, nel dettaglio, è:
6565
Ancora una volta: non ci sono parentesi dopo `sayHi`. Se ci fossero state, allora `func = sayHi()` avrebbe inserito *il risultato della chiamata* `sayHi()`, non *la funzione* `sayHi`.
6666
3. Adesso la funzione può essere richiamata sia con `sayHi()` che con `func()`.
6767

68-
Avremmo anche potuto utilizzare, nella prima riga, un'espressione di funzione per dichiarare `sayHi`:
68+
Avremmo anche potuto utilizzare, nella prima riga, una function expression per dichiarare `sayHi`:
6969

7070
```js
7171
let sayHi = function() {
@@ -80,7 +80,7 @@ Tutto funzionerebbe ugualmente. Risulta anche più chiaro cosa sta succedendo, g
8080

8181

8282
````smart header="Perché c'è un punto e virgola alla fine?"
83-
Vi starete chiedendo perché con l'espressione di funzione bisogna mettere `;` alla fine, mentre con la dichiarazione di funzione non serve:
83+
Vi starete chiedendo perché con la function expression bisogna mettere `;` alla fine, mentre con la dichiarazione di funzione non serve:
8484
8585
```js
8686
function sayHi() {
@@ -94,12 +94,12 @@ let sayHi = function() {
9494
9595
La risposta è semplice:
9696
- Non c'è bisogno di `;` alla fine dei blocchi di codice che utilizzano una sintassi del tipo `if { ... }`, `for { }`, `function f { }` etc.
97-
- Un'espressione di funzione viene utilizzata all'interno di un'istruzione: `let sayHi = ...;`, come valore. Non è un blocco di codice. Quindi il `;` è consigliato al termine dell'istruzione, indipendentemente dal valore. Il punto e virgola non è collegato all'espressione di funzione; più semplicemente, termina un'istruzione.
97+
- Una function expression viene utilizzata all'interno di un'istruzione: `let sayHi = ...;`, come valore. Non è un blocco di codice. Quindi il `;` è consigliato al termine dell'istruzione, indipendentemente dal valore. Il punto e virgola non è collegato alla function expression; più semplicemente, termina un'istruzione.
9898
````
9999

100-
## Funzioni richiamate (*callback functions*)
100+
## *Callback functions* (funzioni richiamate)
101101

102-
Diamo un'occhiata ad ulteriori esempi di passaggio di funzione come valore e utilizzo di espressioni di funzione.
102+
Diamo un'occhiata ad ulteriori esempi di passaggio di funzione come valore e utilizzo della sintassi function expression.
103103

104104
Scriveremo una funzione `ask(question, yes, no)` con tre parametri:
105105

@@ -140,7 +140,7 @@ Queste funzioni possono essere molto utili. La principale differenza tra un'impl
140140

141141
L'idea è di passare una funzione e di "richiamarla" più tardi se necessario. Nel nostro caso `showOk` diventa la callback per la risposta "yes", e `showCancel` per la risposta "no".
142142

143-
Possiamo utilizzare un'espressione di funzione per scrivere la stessa funzione più concisamente:
143+
Possiamo utilizzare una function expression per scrivere la stessa funzione più concisamente:
144144

145145
```js run no-beautify
146146
function ask(question, yes, no) {
@@ -172,7 +172,7 @@ Possiamo passarla tra le variabili ed eseguirla quando vogliamo.
172172
```
173173

174174

175-
## Espressione di Funzioni vs Dichiarazione di Funzioni
175+
## Function expression vs Dichiarazione di Funzioni
176176

177177
Cerchiamo di elencare le differenze chiave tra Dichiarazioni ed Espressioni di Funzione.
178178

@@ -186,18 +186,18 @@ Primo, la sintassi: come distinguerle nel codice.
186186
return a + b;
187187
}
188188
```
189-
- *Espressione di funzione:* una funzione, creata all'interno di un'espressione o all'interno di un altro costrutto. Qui, la funzione è creata alla destra dell' "espressione di assegnazione" `=`:
189+
- *Function expression:* una funzione, creata all'interno di un'espressione o all'interno di un altro costrutto. Qui, la funzione è creata alla destra dell' "espressione di assegnazione" `=`:
190190

191191
```js
192-
// Espressione di funzione
192+
// function expression
193193
let sum = function(a, b) {
194194
return a + b;
195195
};
196196
```
197197

198198
La differenza più subdola è *quando* una funzione viene creata dal motore JavaScript.
199199

200-
**Un'espressione di funzione viene creata quando l'esecuzione la raggiunge ed è utilizzabile solo da quel momento in poi.**
200+
**Una function expression viene creata quando l'esecuzione la raggiunge ed è utilizzabile solo da quel momento in poi.**
201201

202202
Quando il flusso di esecuzione passa alla destra dell'operatore di assegnamento `let sum = function…` , la funzione viene creata e, a partire da questo momento, può essere utilizzata (assegnata, chiamata, etc...).
203203

@@ -225,7 +225,7 @@ function sayHi(name) {
225225

226226
La dichiarazione di funzione `sayHi` viene creata quando JavaScript si sta preparando ad eseguire lo script ed è visibile in ogni suo punto.
227227

228-
...Se fosse stata un'espressione di funzione, non avrebbe funzionato:
228+
...Se fosse stata una function expression, non avrebbe funzionato:
229229

230230
```js run refresh untrusted
231231
*!*
@@ -271,7 +271,7 @@ welcome(); // Errore: welcome non è definita
271271
*/!*
272272
```
273273

274-
Questo accade perché una dichiarazione di funzione è visibile solamente all'interno del blocco di codice in cui è stata definitia.
274+
Questo accade perché una dichiarazione di funzione è visibile solamente all'interno del blocco di codice in cui è stata definita.
275275

276276
Un altro esempio:
277277

@@ -308,7 +308,7 @@ welcome(); // Errore: welcome non è definita
308308

309309
Cosa possiamo fare per rendere visibile `welcome` all'esterno del blocco `if`?
310310

311-
Il giusto approccio è quello di utilizzare un'espressione di funzione ed assegnarla ad una variabile `welcome`, che viene dichiarata all'esterno di `if` ed ha quindi la corretta visibilità.
311+
Il giusto approccio è quello di utilizzare una function expression ed assegnarla ad una variabile `welcome`, che viene dichiarata all'esterno di `if` ed ha quindi la corretta visibilità.
312312

313313
Ora funziona:
314314

@@ -351,7 +351,7 @@ welcome(); // ora funziona
351351
```
352352

353353

354-
```smart header="Quando conviene scegliere una dichiarazione di funzione piuttosto di un'espressione di funzione?"
354+
```smart header="Quando conviene scegliere una dichiarazione di funzione piuttosto di una function expression?"
355355
Come regola fondamentale, quando abbiamo la necessità di dichiarare una funzione, la prima opzione da considerare è la dichiarazione di funzione. Fornisce maggiore libertà per quanto riguarda l'organizzazione del codice, poiché possiamo utilizzare la funzione anche prima della sua dichiarazione.
356356
357357
Risulta anche più facile vedere `function f(…) {…}`, nel codice, piuttosto di `let f = function(…) {…}`. La dichiarazione di funzione è più facile da individuare.
@@ -363,10 +363,10 @@ Risulta anche più facile vedere `function f(…) {…}`, nel codice, piuttosto
363363

364364
- Le funzioni sono valori. Possono essere assegnate, copiate o dichiarate in qualsiasi punto del codice.
365365
- Se la funzione viene dichiarata come un blocco "separato" dal flusso d'esecuzione principale del codice, tale definizione viene chiamata "dichiarazione di funzione".
366-
- Se la funzione viene definita tramite un'espressione, viene chiamata "espressione di funzione".
367-
- Le dichiarazioni di funzione vengono processate prima che il bloco di codice dove sono state definitie sia raggiunto.
368-
- Le espressioni di funzione vengono processate quando il flusso d'esecuzione del codice principale le raggiunge.
366+
- Se la funzione viene definita tramite un'espressione, viene chiamata "function expression".
367+
- Le dichiarazioni di funzione vengono processate prima che il blocco di codice dove sono state definite sia raggiunto.
368+
- Le function expression vengono processate quando il flusso d'esecuzione del codice principale le raggiunge.
369369

370370
Nella maggior parte dei casi, quando abbiamo bisogno di dichiarare una funzione una dichiarazione di funzione è preferibile poiché è visibile anche prima della sua dichiarazione. Questo ci fornisce più flessibilità nell'organizzazione del codice, e solitamente risulta più leggibile.
371371

372-
Dovremmo, quindi, utilizzare un'espressione di funzione solo quando una dichiarazione di funzione non è adatta a un caso specifico. Abbiamo visto un paio di esempi in questo capitolo, e ne vederemo altri in futuro.
372+
Dovremmo, quindi, utilizzare una function expression solo quando una dichiarazione di funzione non è adatta a un caso specifico. Abbiamo visto un paio di esempi in questo capitolo, e ne vederemo altri in futuro.

0 commit comments

Comments
 (0)