Skip to content

Commit bb40348

Browse files
authored
Merge pull request #299 from pasor1/sync
Sincronizzazione periodica con la repository in inglese
2 parents 67ccf23 + f0ab4a7 commit bb40348

File tree

14 files changed

+56
-44
lines changed

14 files changed

+56
-44
lines changed

1-js/02-first-steps/15-function-basics/article.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ showMessage('Ann', "What's up?"); // Ann: What's up? (**)
154154
155155
Quando la funzione viene chiamata nelle righe `(*)` e `(**)`, il valore passato viene copiato nelle variabili locali `from` e `text`, che verranno utilizzate nella chiamata ad `alert`.
156156
157-
Guardiamo un altro esempio: abbiamo una variabile `from` e la passiamo a una funzione. Da notare: la funzione cambia `from`, ma il cambiamento non è visibile all'esterno perchè la funzione usa sempre una copia del valore passato:
157+
Guardiamo un altro esempio: abbiamo una variabile `from` e la passiamo a una funzione. Da notare: la funzione cambia `from`, ma il cambiamento non è visibile all'esterno perché la funzione usa sempre una copia del valore passato:
158158
159159
160160
```js run
@@ -232,7 +232,7 @@ function showMessage(text) {
232232
showMessage(); // empty message
233233
```
234234
235-
...Oppure utilizare l'operatore `||`:
235+
...Oppure utilizzare l'operatore `||`:
236236

237237
```js
238238
function showMessage(from, text) {
@@ -342,7 +342,7 @@ Per espressioni lunghe dopo la direttiva `return`, si potrebbe essere tentati da
342342
return
343343
(some + long + expression + or + whatever * f(a) + f(b))
344344
```
345-
Questo non funziona, perchè JavaScript interpreta un punto e virgola dopo `return`. E' come se dopo `return` ci fosse scritto:
345+
Questo non funziona, perché JavaScript interpreta un punto e virgola dopo `return`. E' come se dopo `return` ci fosse scritto:
346346

347347
```js
348348
return*!*;*/!*
@@ -370,7 +370,7 @@ Esempi di nomi:
370370

371371
```js no-beautify
372372
showMessage(..) // mostra un messaggio
373-
getAge(..) // ritonra l'età (prendendola da qualche parte)
373+
getAge(..) // ritorna l'età (prendendola da qualche parte)
374374
calcSum(..) // calcola la somma e ritorna il risultato
375375
createForm(..) // crea un form (e solitamente lo ritorna)
376376
checkPermission(..) // controlla i permessi, ritorna true/false
@@ -397,14 +397,14 @@ Funzioni che vengono utilizzate *molto spesso* potrebbero avere nomi molto corti
397397

398398
Ad esempio il framework [jQuery](http://jquery.com) definisce una funzione con `$`. La libreria [Lodash](http://lodash.com/) ha nel *core* una funzione denominata `_`.
399399

400-
Queste sono eccezioni. Generalmente i nomi delle funzioni sono precisi e descrittivi.
400+
Queste sono eccezioni. Generalmente i nomi delle funzioni dovrebbero essere concisi e descrittivi.
401401
```
402402

403403
## Funzioni == Commenti
404404

405405
Le funzioni dovrebbero essere brevi ed eseguire un solo compito. Se invece risultano lunghe, forse varrebbe la pena spezzarle in funzioni più piccole. Qualche volta può non essere semplice seguire questa regola, anche se sarebbe la cosa migliore.
406406

407-
Una funzione separata non è solo semplice da testare e debuggare -- la sua stessa esistenza è un commento!
407+
Una funzione separata non è solo semplice da testare e correggere -- la sua stessa esistenza è un commento!
408408

409409
Ad esempio, osserviamo le due funzioni `showPrimes(n)` sotto . Entrambe ritornano i [numeri primi](https://en.wikipedia.org/wiki/Prime_number) fino a `n`.
410410

1-js/03-code-quality/05-testing-mocha/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ Il `describe` annidato definisce un nuovo "sotto-gruppo" di test. Nell'output po
259259
260260
[iframe height=250 src="pow-4" edit border="1"]
261261
262-
In futuro potremmo aggiungere più `it` e `describe` allo stesso livello, ognugo di questi avrà le proprie funzioni di supporto ma non potranno vedere `makeTest`.
262+
In futuro potremmo aggiungere più `it` e `describe` allo stesso livello, ognuno di questi avrà le proprie funzioni di supporto ma non potranno vedere `makeTest`.
263263
264264
````smart header="`before/after` and `beforeEach/afterEach`"
265265
Possiamo impostare le funzione `before/after` (prima/dopo) che vengono eseguite prima/dopo i test, o addirittura le funzioni `beforeEach/afterEach` (prima di ogni/dopo di ogni) che verranno eseguite prima di *ogni* `it`.

1-js/03-code-quality/06-polyfills/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ I moderni 'bundler' utilizzati per 'assemblare' progetti, come [webpack](http://
4848
4949
Nuove caratteristiche di un linguaggio possono riguardare, oltre alla sintassi, operatori e costrutti, anche funzioni integrate.
5050
51-
Ad esempio, `Math.trunc(n)` è una funziona che "tronca" la parte decimale di un numero, es. `Math.trunc(1.23) = 1`.
51+
Ad esempio, `Math.trunc(n)` è una funziona che "tronca" la parte decimale di un numero, es. `Math.trunc(1.23)` ritorna `1`.
5252
5353
In alcuni (vecchissimi) motori JavaScript, non esiste `Math.trunc`, quindi il codice non funzionerebbe.
5454

1-js/04-object-basics/04-object-methods/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ user = {
8181
// la sintassi più breve risulta più carina
8282
user = {
8383
*!*
84-
sayHi() { // equivalente a "sayHi: function()"
84+
sayHi() { // equivalente a "sayHi: function(){...}"
8585
*/!*
8686
alert("Hello");
8787
}

1-js/05-data-types/08-weakmap-weakset/article.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Ad esempio:
66
```js
77
let john = { name: "John" };
88

9-
// l'oggetto è accessibilie, john è un suo riferimento
9+
// l'oggetto è accessibile, john è un suo riferimento
1010

1111
// sovrascriviamo il riferimento
1212
john = null;
@@ -99,7 +99,7 @@ Confrontiamolo con l'esempio di `Map` visto sopra. Ora, se `john` esiste solo co
9999
- `weakMap.delete(key)`
100100
- `weakMap.has(key)`
101101

102-
Perché questa limitazione? Per ragioni tecniche. Se un oggetto ha perso tutti i riferimenti (come `john` nel codice sopra), allora verrà automaticamente eliminato. Ma tecnicamente non è specificato esattamente *quando averrà la pulizia*.
102+
Perché questa limitazione? Per ragioni tecniche. Se un oggetto ha perso tutti i riferimenti (come `john` nel codice sopra), allora verrà automaticamente eliminato. Ma tecnicamente non è specificato esattamente *quando avverrà la pulizia*.
103103

104104
Sarà il motore JavaScript a deciderlo. Potrebbe decidere di effettuare subito la pulizia della memoria oppure aspettare più oggetti per eliminarli in blocco. Quindi, tecnicamente il numero degli elementi di una `WeakMap` non è conosciuto. Il motore potrebbe già aver effettuato la pulizia oppure no, o averlo fatto solo parzialmente. Per questo motivo, i metodi che accedono a `WeakMap` per intero non sopo supportati.
105105

@@ -120,7 +120,7 @@ weakMap.set(john, "secret documents");
120120

121121
Proviamo a guardare un esempio.
122122

123-
Immaginiamo di avere del codice che tiene nota del numero di visite per ogni utente. L'informazioni viene memorizzata in un map: l'utente è la chiave, mentre il conteggio delle visite è il valore. Quando l'utente esce, vogliamo smettere di mantenere in memoria il conteggio delle visite.
123+
Immaginiamo di avere del codice che tiene nota del numero di visite per ogni utente. L'informazione viene memorizzata in un map: l'utente è la chiave, mentre il conteggio delle visite è il valore. Quando l'utente esce, vogliamo smettere di mantenere in memoria il conteggio delle visite.
124124

125125
Qui vediamo un esempio di conteggio utilizzando `Map`:
126126

@@ -188,7 +188,7 @@ function process(obj) {
188188
}
189189

190190
*!*
191-
// Ora utilizzaimo process() in un altro file:
191+
// Ora utilizziamo process() in un altro file:
192192
*/!*
193193

194194
// 📁 main.js
@@ -205,7 +205,7 @@ obj = null;
205205
alert(cache.size); // 1 (Ouch! L'oggetto è ancora in cache, sta occupando memoria!)
206206
```
207207

208-
Per chiamate multiple di `process(obj)` con lo stesso oggetto, il risultato viene calcolato solamente la prima volta, le successive chiamate lo prenderanno dalla `cache`. Il lato negatico è che dobbiamo ricordarci di pulire la `cache` quando non è più necessaria.
208+
Per chiamate multiple di `process(obj)` con lo stesso oggetto, il risultato viene calcolato solamente la prima volta, le successive chiamate lo prenderanno dalla `cache`. Il lato negativo è che dobbiamo ricordarci di pulire la `cache` quando non è più necessaria.
209209

210210
Se sostituiamo `Map` con `WeakMap`, il problema si risolve. I risultati in cache vengono automaticamente rimossi una volta che l'oggetto viene ripulito dal garbage collector.
211211

@@ -232,10 +232,10 @@ let obj = {/* un oggetto */};
232232
let result1 = process(obj);
233233
let result2 = process(obj);
234234

235-
// ...più tadi, quando non abbiamo più bisogno dell'oggetto
235+
// ...più tardi, quando non abbiamo più bisogno dell'oggetto
236236
obj = null;
237237

238-
// Non possiamo ottenere la dimensione della cache, poichè è una WeakMap,
238+
// Non possiamo ottenere la dimensione della cache, poiché è una WeakMap,
239239
// ma è 0 oppure lo sarà presto
240240
// Quando un oggetto viene ripulito dal garbage collector, anche i dati associati vengono ripuliti
241241
```

1-js/05-data-types/09-keys-values-entries/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,5 @@ let doublePrices = Object.fromEntries(
9999
alert(doublePrices.meat); // 8
100100
```
101101

102-
Ad un primo sguardo potrebbe risultare complesso, ma diventa molto più familiare dopo un paio di utilizzi.
102+
Ad un primo sguardo potrebbe risultare complesso, ma diventa molto più familiare dopo un paio di utilizzi. In questo modo possono essere create potenti catene per la trasformazione.
103103

1-js/11-async/02-promise-basics/article.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,19 @@ La funzione passata a `new Promise` è chiamata *esecutore (executor)*. Quando l
2424

2525
I suoi argomenti `resolve` e `reject` sono delle callback fornite da JavaScript stesso. Il nostro codice sta solamente dentro l'esecutore.
2626

27-
![](promise-resolve-reject.svg)
27+
- `resolve(value)` — se il processo termina correttamente, col risultato `value`.
28+
- `reject(error)` — se si verifica un errore, `error` è l'oggetto errore.
29+
30+
Ricapitolando: l'esecutore parte automaticamente e tenta di eseguire un compito. Quando l'esecuzione termina, viene invocato `resolve` in caso di successo, oppure `reject` in caso di errore.
2831

29-
L'oggetto `promise` risultante ha queste proprietà interne:
32+
L'oggetto `promise` restituito ha le seguenti proprietà interne:
3033

31-
- `state` — inizialmente "pending", poi cambia con "fulfilled" o "rejected",
32-
- `result`un valore arbitrario di tua scelta, inizialmente `undefined`.
34+
- `state` — inizialmente "pending", poi cambia in "fulfilled" se viene invocato `resolve` o in "rejected" se viene invocato `reject`.
35+
- `result`inizialmente `undefined`, poi cambia in `value` se viene invocato `resolve(value)` o in `error` se viene invocato `reject(error)`.
3336

34-
Quando l'esecutore finisce il lavoro (job), dovrebbe chiamare una delle funzioni che riceve come argomento:
37+
Quindi l'esecutore, alla fine, mette la promise in uno di questi stati:
3538

36-
- `resolve(value)` — per indicare che il lavoro è finito con successo:
37-
- imposta `state` come `"fulfilled"`,
38-
- imposta `result` come `value`.
39-
- `reject(error)` — per indicare che si è verificato un errore:
40-
- imposta `state` come `"rejected"`,
41-
- imposta `result` come `error`.
39+
![](promise-resolve-reject.svg)
4240

4341
Più avanti vedremo come questi cambiamenti diventano noti ai "fan".
4442

1-js/11-async/07-microtask-queue/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Come detto nella [specifica](https://tc39.github.io/ecma262/#sec-jobs-and-job-qu
3030
- La coda è primo-dentro-primo-fuori: i task messi in coda per primi sono eseguiti per primi.
3131
- L'esecuzione di un task è iniziata solo quando nient'altro è in esecuzione.
3232

33-
Oppure, per dirla in modo semplice, quando una promise è pronta, i suoi gestori `.then/catch/finally` sono messi nella coda. Non sono ancora eseguiti. Il motore JavaScript prende un task dalla coda e lo esegue, quando diventa libero dal codice corrente.
33+
Oppure, per dirla in modo semplice, quando una promise è pronta, i suoi gestori `.then/catch/finally` sono messi nella coda. Non vengono ancora eseguiti. Il motore JavaScript prende un task dalla coda e lo esegue, quando diventa libero dal codice corrente.
3434

3535
Questo è il motivo per cui "codice finito" nell'esempio sopra viene mostrato prima.
3636

@@ -40,7 +40,7 @@ I gestori delle promise passano sempre da quella coda interna.
4040

4141
Se c'è una catena con diversi `.then/catch/finally`, allora ognuno di essi viene eseguito in modo asincrono. Cioè, viene prima messo in coda ed eseguito quando il codice corrente è completo e i gestori messi in coda precedentemente sono finiti.
4242

43-
**Che cosa succede se per noi l'ordine è importante? Come possiamo far funzionare `codice finito` dopo `promise completa`?**
43+
**Che cosa succede se per noi l'ordine è importante? Come possiamo far funzionare `code finished` dopo `promise done`?**
4444

4545
Facile, basta metterlo in coda con `.then`:
4646

1-js/12-generators-iterators/2-async-iterators-generators/article.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,8 @@ Un esempio di utilizzo (visualizza gli autori delle commit nella console):
353353
}
354354
}
355355
})();
356+
357+
// Note: If you are running this in an external sandbox, you'll need to paste here the function fetchCommits described above
356358
```
357359
358360
Questo è esattamente quello che volevamo. I meccanismi interni delle richieste paginate sono invisibili dall'esterno. Per noi non è altro che un generatore asincrono che ritorna delle commit.

2-ui/1-document/10-size-and-scroll-window/article.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ alert('Scorrimento corrente da sinistra: ' + window.pageXOffset);
7373
7474
Queste proprietà sono in sola lettura.
7575
76+
```smart header="`scrollX` e `scrollY` disponibili anche come proprietà di `window`"
77+
Per ragioni storiche, esistono entrambe le proprietà, ma sono identiche:
78+
- `window.pageXOffset` è un alias di `window.scrollX`.
79+
- `window.pageYOffset` è un alias di `window.scrollY`.
80+
```
81+
7682
## Lo scorrimento con scrollTo, scrollBy, scrollIntoView [#window-scroll]
7783
7884
```warn

0 commit comments

Comments
 (0)