Skip to content

Commit 355b255

Browse files
authored
Merge pull request #218 from pasor1/sync
Sync
2 parents 35ccebe + 1de6e5e commit 355b255

File tree

16 files changed

+52
-41
lines changed

16 files changed

+52
-41
lines changed

1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ true + false = 1
99
"$" + 4 + 5 = "$45"
1010
"4" - 2 = 2
1111
"4px" - 2 = NaN
12-
7 / 0 = Infinity
1312
" -9 " + 5 = " -9 5" // (3)
1413
" -9 " - 5 = -14 // (4)
1514
null + 1 = 1 // (5)

1-js/02-first-steps/08-operators/3-primitive-conversions-questions/task.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ true + false
1616
"$" + 4 + 5
1717
"4" - 2
1818
"4px" - 2
19-
7 / 0
2019
" -9 " + 5
2120
" -9 " - 5
2221
null + 1

1-js/02-first-steps/11-logical-operators/article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Operatori logici
22

3-
In JavaScript ci sono tre operatori logici: `||` (OR), `&&` (AND), e `!` (NOT).
3+
In JavaScript ci sono quattro operatori logici: `||` (OR), `&&` (AND), e `!` (NOT), `??` (Nullish Coalescing). Qui abbiamo trattato i primi tre, l'operatore `??` sarà approfondito nel prossimo articolo.
44

55
Nonostante si chiamino "logici", possono essere applicati a valori di qualsiasi tipo, non solo ai booleani (i risultati stessi possono essere di qualunque tipo).
66

@@ -103,7 +103,7 @@ Questo ci permette alcuni utilizzi interessanti rispetto al "puro e classico OR
103103

104104
Immaginiamo di avere diverse variabili, `firstName`, `lastName` e `nickName`, tutte opzionali (possono quindi essere *undefined* o avere valori falsi).
105105

106-
Possiamo utilizzare OR `||` per selezionare quella che contiene un valore e mostrarlo (oppure mostrare `"Anonymous"` se nessua variabile è definita):
106+
Possiamo utilizzare OR `||` per selezionare quella che contiene un valore e mostrarlo (oppure mostrare `"Anonymous"` se nessuna variabile è definita):
107107

108108
```js run
109109
let firstName = "";
@@ -139,7 +139,7 @@ L'operatore AND viene rappresentato con `&&`:
139139
result = a && b;
140140
```
141141
142-
Nella programmazione classica AND ritorna `true` se entrambri gli operandi sono veri, altrimenti ritorna `false`:
142+
Nella programmazione classica AND ritorna `true` se entrambi gli operandi sono veri, altrimenti ritorna `false`:
143143
144144
```js run
145145
alert( true && true ); // true
@@ -219,7 +219,7 @@ Quindi il codice `a && b || c && d` è analogo all'espressione: `(a && b) || (c
219219
````
220220

221221
````warn header="Non rimpiazzate `if` con `||` o `&&`"
222-
Talvolta, le persone utilizzano l'operatore AND `&&` come una "scorcatoia" dell'espressione `if`".
222+
Talvolta, le persone utilizzano l'operatore AND `&&` come una "scorciatoia" dell'espressione `if`".
223223
Proprio come l'OR, anche AND `&&` può qualche volta rimpiazzare `if`.
224224
225225
Ad esempio:
@@ -232,7 +232,7 @@ let x = 1;
232232
233233
Le azioni nella parte destra di `&&` vengono eseguite solamente se la valutazione non si ferma prima. Cioè: solo se `(x > 0)` è vera.
234234
235-
Il codie sopra è sostanzialmente analogo a:
235+
Il codice sopra è sostanzialmente analogo a:
236236
237237
```js run
238238
let x = 1;

1-js/02-first-steps/12-nullish-coalescing-operator/article.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
Il *nullish coalescing operator* è rappresentato da due punti di domanda `??`.
66

7+
Siccome trattiamo `null` e `undefined` in modo simile, avremo bisogno di una definizione particolare. In questo articolo, diremo che un'espressione è "definita" quando non è né `null``undefined`.
8+
79
Il risultato di `a ?? b` è:
810
- se `a` è definito, allora `a`,
911
- se `a` non è definito, allora `b`.
1012

11-
(In questo articolo, diremo che un'espressione è "definita" quando non è né `null``undefined`.)
12-
1313
In altre parole, tra due operatori `??` ritorna il primo se questo non è `null/undefined`; altrimenti, ritorna il secondo.
1414

1515
Il nullish coalescing operator non è qualcosa di completamente nuovo. È solo un modo più elegante per recuperare il primo valore "definito" tra due operatori.
@@ -27,15 +27,15 @@ Per esempio, qui mostriamo `Anonymous` se `user` non è definito:
2727
```js run
2828
let user;
2929

30-
alert(user ?? "Anonymous"); // Anonymous
30+
alert(user ?? "Anonymous"); // Anonymous (user not defined)
3131
```
3232
3333
Ovviamente, se `user` ha un qualsiasi valore eccetto `null/undefined`, allora vedremo quel valore:
3434
3535
```js run
3636
let user = "John";
3737

38-
alert(user ?? "Anonymous"); // John
38+
alert(user ?? "Anonymous"); // John (user defined)
3939
```
4040
4141
Possiamo anche usare una sequenza di `??` per selezionare, da una lista, il primo valore che non sia `null/undefined`.

1-js/02-first-steps/17-arrow-functions-basics/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ Esiste un'altra sintassi molto semplice e concisa per creare funzioni e che spes
55
E' chiamata "arrow functions", perché si presenta in questo modo:
66

77
```js
8-
let func = (arg1, arg2, ...argN) => expression
8+
let func = (arg1, arg2, ..., argN) => expression
99
```
1010

1111
Questo codice crea una funzione `func` che accetta gli argomenti `arg1..argN` e li utilizza per valutare `expression` e restituirne il risultato.
1212

1313
In altre parole è una versione abbreviata di:
1414

1515
```js
16-
let func = function(arg1, arg2, ...argN) {
16+
let func = function(arg1, arg2, ..., argN) {
1717
return expression;
1818
};
1919
```

1-js/04-object-basics/02-object-copy/article.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ let clone = Object.assign({}, user);
189189
190190
Vengono copiate tutte le proprietà di `user` nell'oggetto vuoto, il quale, poi, viene restituito.
191191
192+
Esistono anche altri modi per clonare un oggetto, ad esempio usando lo [spread operator](info:rest-parameters-spread) `clone = {...user}`, che verrà trattato più avanti in questo tutorial.
192193
## Clonazione nidificata
193194
194195
Finora abbiamo assunto che le proprietà di `user` fossero primitive. Ma le proprietà possono anche essere riferimenti ad altri oggetti. Come si fa in questo caso?

1-js/04-object-basics/04-object-methods/8-chain-calls/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ let ladder = {
2121
return this;
2222
*/!*
2323
}
24-
}
24+
};
2525

2626
ladder.up().up().down().up().down().showStep(); // 1
2727
```

1-js/04-object-basics/07-optional-chaining/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ Questo è il risultato che ci si aspetta. JavaScript funziona in questo modo. Se
2525

2626
Nella maggior parte dei casi, preferiremmo avere `undefined` piuttosto di un errore (in questo caso con il significato "nessuna via").
2727

28-
... Un altro esempio. Il metodo `document.querySelector('.elem')` ritorna un oggetto che corrisponde ad un elemento della pagina web, che ritorna `null` quando l'elemento non esite.
28+
... Un altro esempio. Il metodo `document.querySelector('.elem')` ritorna un oggetto che corrisponde ad un elemento della pagina web, che ritorna `null` quando l'elemento non esiste.
2929

3030
```js run
3131
// document.querySelector('.elem') è null se non esiste l'elemento
3232
let html = document.querySelector('.elem').innerHTML; // errore se è null
3333
```
3434

35-
Di nuovo, se un elemente non esiste, otterremo un errore nel tentativo di accedere a `.innerHTML` di `null`. In alcuni casi, in cui l'assenza di un elemento è normale, vorremo evitare l'errore e accettare come risultato `html = null`.
35+
Di nuovo, se un elemento non esiste, otterremo un errore nel tentativo di accedere a `.innerHTML` di `null`. In alcuni casi, in cui l'assenza di un elemento è normale, vorremo evitare l'errore e accettare come risultato `html = null`.
3636

3737
Come possiamo farlo?
3838

@@ -63,7 +63,7 @@ Ci sarebbe un modo migliore per riscriverlo, utilizzando l'operatore `&&`:
6363
```js run
6464
let user = {}; // l'utente non ha address
6565

66-
alert( user.address && user.address.street && user.address.street.name ); // undefined (nessune errore)
66+
alert( user.address && user.address.street && user.address.street.name ); // undefined (nessun errore)
6767
```
6868

6969
Concatenare con `&&` l'intero percorso verso la proprietà ci assicura che tutti i componenti esistano (in caso contrario, la valutazione si interrompe), ma non è comunque l'ideale.

1-js/05-data-types/10-destructuring-assignment/6-max-salary/_js.view/solution.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ function topSalary(salaries) {
44
let maxName = null;
55

66
for(const [name, salary] of Object.entries(salaries)) {
7-
if (max < salary) {
7+
if (maxSalary < salary) {
88
maxSalary = salary;
99
maxName = name;
1010
}

1-js/05-data-types/10-destructuring-assignment/article.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Assegnamento di destrutturazione
22

3-
Le due strutture dati più utilizzate in JavaScritp sono `Object` e `Array`.
3+
Le due strutture dati più utilizzate in JavaScript sono `Object` e `Array`.
44

55
- Gli oggetti ci consentono di creare un'unica entità che memorizza elementi nel formato chiave-valore
66
- Gli array ci consentono di raccogliere elementi in elenchi ordinati.
77

8-
A volte, quando li passiamo ad una funzione, potebbe non èssere necessario tutto l'oggetto/array, ma solo una parte di esso.
8+
A volte, quando li passiamo ad una funzione, potrebbe non èssere necessario tutto l'oggetto/array, ma solo una parte di esso.
99

10-
*L'assegnamento di destrutturazione (Destructuring assignment)* è una speciale sintassi che ci consente di "spacchettare" oggetti o array in un gruppi di variabili, questo a volte risulta molto convenente.
10+
*L'assegnamento di destrutturazione (Destructuring assignment)* è una speciale sintassi che ci consente di "spacchettare" oggetti o array in un gruppi di variabili, questo a volte risulta molto conveniente.
1111

1212
La destrutturazione funziona alla grande anche con funzioni complesse che hanno molti parametri, valori predefiniti e così via. Presto lo vedremo.
1313

@@ -79,7 +79,7 @@ let [a, b, c] = "abc"; // ["a", "b", "c"]
7979
let [one, two, three] = new Set([1, 2, 3]);
8080
```
8181
82-
Funziona, perchè internamente un'assegnazione di destrutturazione lavora iterando sul valore di destra. E' una specie di "zucchero sintattico" per chiamare `for..of` sul valore a destra di `=` assegnando i valori.
82+
Funziona, perché internamente un'assegnazione di destrutturazione lavora iterando sul valore di destra. E' una specie di "zucchero sintattico" per chiamare `for..of` sul valore a destra di `=` assegnando i valori.
8383
````
8484

8585
````smart header="Assegna a qualsiasi cosa ci sia dalla parte sinistra"
@@ -101,7 +101,7 @@ alert(user.surname); // Smith
101101
102102
Nel capitolo precedente abbiamo visto il metodo [Object.entries(obj)](mdn:js/Object/entries).
103103
104-
Possiamo utilizzarlo con la destrutturazione per eseguire cicli su chaivi/valore di un oggetto:
104+
Possiamo utilizzarlo con la destrutturazione per eseguire cicli su chiave/valore di un oggetto:
105105
106106
```js run
107107
let user = {
@@ -135,7 +135,7 @@ for (let [key, value] of user) {
135135
````
136136

137137

138-
```smart header="Il trucco dello scambio di varibili"
138+
```smart header="Il trucco dello scambio di variabili"
139139
c'è un trucco molto conosciuto per scambiare i valori di due variabili usando l'assegnamento di destrutturazione:
140140
141141
@@ -233,7 +233,7 @@ alert(name); // Julius (dall'array)
233233
alert(surname); // qualsiasi cosa provenga dal prompt
234234
```
235235

236-
Attenzione: la funzione `prompt` verrà eseguita solo per il valore vancante (`surname`).
236+
Attenzione: la funzione `prompt` verrà eseguita solo per il valore mancante (`surname`).
237237

238238
## Destrutturazione di oggetti
239239

@@ -322,7 +322,7 @@ alert(height); // 200
322322

323323
Proprio come nel caso degli array o dei parametri di funzione, i valori di default possono essere espressioni più complesse o chiamate a funzioni. Questi verranno valutati solo nel caso in cui il valore non verrà fornito.
324324

325-
Il codice richiederà tramite `prompt` la `width` (larghezzza), ma non il `title` (titolo):
325+
Il codice richiederà tramite `prompt` la `width` (larghezza), ma non il `title` (titolo):
326326

327327
```js run
328328
let options = {
@@ -368,7 +368,7 @@ let { title } = options;
368368
alert(title); // Menu
369369
```
370370

371-
### Il modelo rest "..."
371+
### Il modello rest "..."
372372

373373
Cosa succede se l'oggetto possiede più proprietà delle variabili da noi fornite? Possiamo prendere solamente alcune ed assegnare tutto ciò che avanza da un'altra parte?
374374

@@ -465,7 +465,7 @@ alert(item2); // Donut
465465
466466
L'intero oggetto `options` ad eccezione di `extra` il quale non viene menzionato, viene assegnato alle corrispondenti variabili.
467467
468-
Note that `size` and `items` itself is not destructured.
468+
Nota che `size` e `items` stesso non è destrutturato.
469469
470470
![](destructuring-complex.svg)
471471

0 commit comments

Comments
 (0)