Skip to content

Commit 609a306

Browse files
authored
Merge pull request #145 from longo-andrea/feature/types
Data types
2 parents c75b2bf + c0ec085 commit 609a306

File tree

2 files changed

+31
-31
lines changed

2 files changed

+31
-31
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

2-
L'accento grave integra espressioni all'interno delle stringhe `${...}`.
2+
Il backtick viene utilizzato per integrare espressioni all'interno delle stringhe `${...}`.
33

44
```js run
55
let name = "Ilya";
66

7-
// the expression is a number 1
7+
// l'espressione è il numero 1
88
alert( `hello ${1}` ); // hello 1
99

10-
// the expression is a string "name"
10+
// l'espressione è la stringa "name"
1111
alert( `hello ${"name"}` ); // hello name
1212

13-
// the expression is a variable, embed it
13+
// l'espressione è una variabile che viene integrata
1414
alert( `hello ${name}` ); // hello Ilya
1515
```

1-js/02-first-steps/05-types/article.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
Un valore in JavaScript ha sempre un tipo specifico. Ad esempio, string o number.
44

5-
Ci sono otto tipi di base in JavaScript. In questo articolo, vedremo i loro aspetti generali, nei prossimi capitoli parleremo di ognuno di essi in dettaglio.
5+
Ci sono otto tipi di base in JavaScript. In questo articolo, vedremo i loro aspetti generali, mentre nei prossimi capitoli parleremo di ognuno di essi in maniera più dettagliata.
66

7-
Una variabile in JavaScript può contenere qualsiasi dato. Una variabile può essere di tipo stringa in un istante e successivamente ricevere un valore numerico:
7+
Una variabile in JavaScript può contenere qualsiasi dato. Quindi è possibile avere una variabile di tipo string ed in un secondo momento potrebbe contenere un valore numerico:
88

99
```js
1010
// nessun errore
@@ -21,13 +21,13 @@ let n = 123;
2121
n = 12.345;
2222
```
2323

24-
Il tipo *numerico* serve sia per i numeri interi che per quelli in virgola mobile.
24+
Il tipo *number* viene utilizzato sia per i numeri interi che per quelli in virgola mobile.
2525

26-
Ci sono varie operazioni disponibili con i numeri, ad esempio la moltiplicazione `*`, la divisione `/`, l'addizione `+`, la sottrazione `-` e molte altre.
26+
Con i valori di tipo number si hanno diverse operazioni a disposizione, ad esempio la moltiplicazione `*`, la divisione `/`, l'addizione `+`, la sottrazione `-` e molte altre.
2727

28-
Oltre i normali numeri, ci sono anche i "valori numerici speciali" che appartengono sempre al tipo numerico: `Infinito`, `-Infinito` e `NaN`.
28+
Oltre a i normali valori numeri, esistono anche i "valori numerici speciali" che appartengono sempre al tipo numerico: `Infinity`, `-Infinity` e `NaN`.
2929

30-
- `Infinito` rappresenta il concetto matematico [Infinito](https://en.wikipedia.org/wiki/Infinity) ∞. E' un valore speciale che è più grande di qualsiasi altro numero.
30+
- `Infinity` rappresenta il concetto matematico [Infinito](https://en.wikipedia.org/wiki/Infinity) ∞. E' un valore speciale che è più grande di qualsiasi altro numero.
3131

3232
Possiamo ottenerlo come risultato tramite la divisione per zero:
3333

@@ -40,13 +40,13 @@ Oltre i normali numeri, ci sono anche i "valori numerici speciali" che apparteng
4040
```js run
4141
alert( Infinity ); // Infinity
4242
```
43-
- `NaN` rappresenta un errore di calcolo. E' il risultato di un operazione non corretta o indefinita, per esempio:
43+
- `NaN` rappresenta un errore di calcolo. E' il risultato di un'operazione non corretta o indefinita, ad esempio:
4444

4545
```js run
46-
alert( "not a number" / 2 ); // NaN, such division is erroneous
46+
alert( "not a number" / 2 ); // NaN, è una divisione errata
4747
```
4848

49-
`NaN` è "appiccicoso". Qualsiasi operazione su `NaN` restituirà `NaN`:
49+
`NaN` è "fisso". Qualsiasi operazione su `NaN` restituirà `NaN`:
5050

5151
```js run
5252
alert( "not a number" / 2 + 5 ); // NaN
@@ -55,9 +55,9 @@ Oltre i normali numeri, ci sono anche i "valori numerici speciali" che apparteng
5555
Quindi, se è presente un `NaN` da qualche parte nell'operazione matematica, questo si propagherà fino al risultato.
5656
5757
```smart header="Le operazioni matematiche sono sicure"
58-
In JavaScript le operazioni matematichstrige sono sicure. Possiamo fare qualsiasi cosa: dividere per zero, trattare stringhe non numeriche come numeri, etc.
58+
In JavaScript le operazioni matematiche sono sicure. Possiamo fare qualsiasi cosa: dividere per zero, trattare stringhe non numeriche come numeri, etc.
5959
60-
Lo script non si interromperà mai con un errore fatale ("die"). Nel peggiore dei casi otterremo un `NaN` come risultato.
60+
Lo script non si interromperà mai con un errore fatale. Nel peggiore dei casi otterremo un `NaN` come risultato.
6161
```
6262
6363
I numeri con valore speciale appartengono formalmente al tipo "numerico". Ovviamente non sono numeri nel vero senso della parola.
@@ -79,7 +79,7 @@ Un valore di tipo `BigInt` viene creato aggiungendo `n` alla fine del numero:
7979
const bigInt = 1234567890123456789012345678901234567890n;
8080
```
8181
82-
Poichè i `BigInt` sono utilizzati raramente, non li analizzeremo in questo articolo, ma li vedremo più in dettaglio nel capitolo dedicato <info:bigint>.
82+
Poiché i `BigInt` sono utilizzati raramente, non li analizzeremo in questo articolo, ma li vedremo più in dettaglio nel capitolo dedicato <info:bigint>.
8383
8484
8585
```smart header="Problemi di compatibilità"
@@ -102,11 +102,11 @@ In JavaScript, ci sono 3 tipi di apici.
102102
103103
1. Apici doppi: `"Hello"`.
104104
2. Apice singolo: `'Hello'`.
105-
3. Accento grave: <code>&#96;Hello&#96;</code>.
105+
3. Backtick: <code>&#96;Hello&#96;</code>.
106106
107-
Gli apici doppi e singoli sono apici "semplici". Non c'e differenza tra di loro in JavaScript.
107+
Gli apici doppi e singoli sono apici "semplici". In JavaScript li tratta allo stesso modo.
108108
109-
L'accento grave (backticks) sono degli apici per le "funzionalità estese". Ci consentono di integrare variabili ed espressioni in una stringa racchiudendole in `${}`, per esempio:
109+
Il backtick è un tipo di apice utilizzato per definire stringhe con "funzionalità estese". Ci consente di integrare variabili ed espressioni in una stringa racchiudendola tra `${…}`, per esempio:
110110
111111
```js run
112112
let name = "John";
@@ -120,7 +120,7 @@ alert( `the result is *!*${1 + 2}*/!*` ); // il risultato è 3
120120
121121
L'espressione all'interno di `${…}` viene valutata ed il risultato diventa parte della stringa. Possiamo metterci qualsiasi cosa: una variabile come `name` oppure un espressione aritmetica come `1 + 2` o qualcosa di più complesso.
122122
123-
Nota che questo è possibile sono tramite l'accento grave. Gli altri apici non lo consentono!
123+
Nota che questo è possibile sono tramite l'uso del backtick. Gli altri apici non lo consentono!
124124
```js run
125125
alert( "the result is ${1 + 2}" ); // il risultato è ${1 + 2} (le virgolette non fanno nulla)
126126
```
@@ -130,14 +130,14 @@ Copriremo meglio le stringhe nel capitolo <info:string>.
130130
```smart header="Non c'è il tipo *carattere*."
131131
In alcuni linguaggi, c'è un tipo "carattere" per i caratteri singoli. Per esempio, nel linguaggio C ed in Java c'è `char`.
132132
133-
In JavaScript, non è presente questo tipo. C'è solamente il tipo: `string`. Una stringa può contenere un solo carattere o più di uno.
133+
In JavaScript, non è presente questo tipo. C'è solamente il tipo: `string`, che può essere utilizzato per contenere un singolo carattere o più di uno.
134134
```
135135

136-
## Tipo booleano (tipo logico)
136+
## Tipo boolean (tipo logico)
137137

138-
Il tipo booleano ha solo due valori: `true` e `false`.
138+
Il tipo boolean ha solo due valori: `true` e `false`.
139139

140-
Questo tipo viene tipicamente utilizzato per memorizzare valori si/no: `true` significa "Si, corretto", e `false` significa "No, scorretto".
140+
Questo tipo viene tipicamente utilizzato per memorizzare valori "si/no": `true` significa "Si, corretto", e `false` significa "No, scorretto".
141141

142142
Per esempio:
143143

@@ -168,13 +168,13 @@ let age = null;
168168

169169
In JavaScript `null` non è un "riferimento ad un oggetto inesistente" o un "puntatore nullo" come in altri linguaggi.
170170

171-
E' solamente un valore speciale che ha il senso di "nulla", "vuoto" o "valore sconosciuto".
171+
E' solamente un valore speciale utilizzato per indicare il valore "nullo", "vuoto" o "valore sconosciuto".
172172
173173
Il codice sopra indica che `age` è sconosciuto o vuoto per qualche motivo.
174174
175175
## Il valore "undefined"
176176
177-
Il valore speciale `undefined` vive a parte. Fa da tipo a se stesso, proprio come `null`.
177+
Il valore speciale `undefined` è un tipo a se stante. Fa da tipo a se stesso, proprio come `null`.
178178
179179
Il significato di `undefined` è che "il valore non è assegnato".
180180
@@ -199,11 +199,11 @@ alert(age); // "undefined"
199199
200200
...Ma non è comunque consigliabile farlo. Normalmente, si utilizza `null` per descrivere un valore "vuoto" o "sconosciuto" della variabile, e `undefined` viene utilizzato solo per i controlli, per verificare se la variabile è stata assegnata.
201201
202-
## Oggetti e Simboli
202+
## Object e Symbol
203203
204-
Il tipo `object` è speciale.
204+
Il tipo `object` è un tipo speciale.
205205
206-
Tutti gli altri tipi descritti sono chiamati "primitivi", perchè i loro valori possono contenere solo una cosa (può essere una stringa, un numero o altro). Invece, gli oggetti vengono utilizzati per memorizzare una collezione di dati ed entità più complesse. Li tratteremo nel capitolo <info:object> dopo avere appreso abbastanza sui tipi primitivi.
206+
Tutti gli altri tipi descritti sono definiti "primitivi", perché i loro valori possono contenere solo una cosa (può essere una stringa, un numero o altro). Invece, gli oggetti vengono utilizzati per memorizzare una collezione di dati ed entità più complesse. Li tratteremo nel capitolo <info:object> dopo avere appreso abbastanza sui tipi primitivi.
207207
208208
Il tipo `symbol` viene utilizzato per creare identificatori unici per gli oggetti. Li abbiamo citati per completezza, ma è meglio studiarli dopo aver compreso gli oggetti.
209209
@@ -249,8 +249,8 @@ typeof alert // "function" (3)
249249
Le ultime tre linee potrebbero richiedere una spiegazione ulteriore:
250250
251251
1. `Math` è un oggetto integrato che fornisce operazioni matematiche avanzate. Lo studieremo nel capitolo <info:number>. Qui ha il semplice scopo di rappresentare un oggetto.
252-
2. Il risultato di `typerisulaof null` è `"object"`. Questo è errato. E' un errore ufficialmente riconosciuto del `typeof`, mantenuto per retro-compatibilità. Ovviamente, `null` non è un oggetto. E' un valore speciale che fa da tipo a se stesso. Quindi, nuovamente, questo è un errore del linguaggio.
253-
3. Il risultato di `typeof alert` è `"function"`, perchè `alert` è una funzione del linguaggio. Studieremo le funzioni nel prossimo capitolo, e vedremo che non c'e nessun tipo "funzione" nel linguaggio. Le funzioni appartengono al tipo oggetto. Ma `typeof` le tratta differentemente. Formalmente, è errato, ma molto utile nella pratica.
252+
2. Il risultato di `typeof null` è `"object"`. Questo è un errore del linguaggio, ufficialmente riconosciuto e mantenuto per retro-compatibilità. Ovviamente, `null` non è un oggetto. E' un valore speciale che fa da tipo a se stesso. Quindi, nuovamente, questo è un errore del linguaggio.
253+
3. Il risultato di `typeof alert` è `"function"`, poiché `alert` è una funzione del linguaggio. Studieremo le funzioni nel prossimo capitolo, e vedremo che non c'e nessun tipo "funzione" nel linguaggio. Le funzioni appartengono al tipo oggetto. Ma `typeof` le tratta differentemente. Formalmente, è errato, ma molto utile nella pratica.
254254
255255
## Riepilogo
256256

0 commit comments

Comments
 (0)