You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/05-types/article.md
+27-27Lines changed: 27 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
Un valore in JavaScript ha sempre un tipo specifico. Ad esempio, string o number.
4
4
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.
6
6
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:
8
8
9
9
```js
10
10
// nessun errore
@@ -21,13 +21,13 @@ let n = 123;
21
21
n =12.345;
22
22
```
23
23
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.
25
25
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.
27
27
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`.
29
29
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.
31
31
32
32
Possiamo ottenerlo come risultato tramite la divisione per zero:
33
33
@@ -40,13 +40,13 @@ Oltre i normali numeri, ci sono anche i "valori numerici speciali" che apparteng
40
40
```js run
41
41
alert( Infinity ); // Infinity
42
42
```
43
-
-`NaN` rappresenta un errore di calcolo. E' il risultato di unoperazione 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:
44
44
45
45
```js run
46
-
alert( "not a number" / 2 ); // NaN, such division is erroneous
46
+
alert( "not a number" / 2 ); // NaN, è una divisione errata
47
47
```
48
48
49
-
`NaN` è "appiccicoso". Qualsiasi operazione su `NaN` restituirà `NaN`:
49
+
`NaN` è "fisso". Qualsiasi operazione su `NaN` restituirà `NaN`:
50
50
51
51
```js run
52
52
alert( "not a number" / 2 + 5 ); // NaN
@@ -55,9 +55,9 @@ Oltre i normali numeri, ci sono anche i "valori numerici speciali" che apparteng
55
55
Quindi, se è presente un `NaN` da qualche parte nell'operazione matematica, questo si propagherà fino al risultato.
56
56
57
57
```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.
59
59
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.
61
61
```
62
62
63
63
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:
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>.
83
83
84
84
85
85
```smart header="Problemi di compatibilità"
@@ -102,11 +102,11 @@ In JavaScript, ci sono 3 tipi di apici.
102
102
103
103
1. Apici doppi: `"Hello"`.
104
104
2. Apice singolo: `'Hello'`.
105
-
3.Accento grave:<code>`Hello`</code>.
105
+
3. Backtick: <code>`Hello`</code>.
106
106
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.
108
108
109
-
L'accento grave (backticks) sono degli apici per le "funzionalità estese". Ciconsentono 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:
110
110
111
111
```js run
112
112
let name = "John";
@@ -120,7 +120,7 @@ alert( `the result is *!*${1 + 2}*/!*` ); // il risultato è 3
120
120
121
121
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.
122
122
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!
124
124
```js run
125
125
alert( "the result is ${1+2}" ); // il risultato è ${1+2} (le virgolette non fanno nulla)
126
126
```
@@ -130,14 +130,14 @@ Copriremo meglio le stringhe nel capitolo <info:string>.
130
130
```smart header="Non c'è il tipo *carattere*."
131
131
In alcuni linguaggi, c'è un tipo "carattere" per i caratteri singoli. Per esempio, nel linguaggio C ed in Java c'è `char`.
132
132
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.
134
134
```
135
135
136
-
## Tipo booleano (tipo logico)
136
+
## Tipo boolean (tipo logico)
137
137
138
-
Il tipo booleano ha solo due valori: `true` e `false`.
138
+
Il tipo boolean ha solo due valori:`true` e `false`.
139
139
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".
141
141
142
142
Per esempio:
143
143
@@ -168,13 +168,13 @@ let age = null;
168
168
169
169
In JavaScript `null` non è un "riferimento ad un oggetto inesistente" o un "puntatore nullo" come in altri linguaggi.
170
170
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".
172
172
173
173
Il codice sopra indica che `age` è sconosciuto o vuoto per qualche motivo.
174
174
175
175
## Il valore "undefined"
176
176
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`.
178
178
179
179
Il significato di `undefined` è che "il valore non è assegnato".
180
180
@@ -199,11 +199,11 @@ alert(age); // "undefined"
199
199
200
200
...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.
201
201
202
-
## Oggetti e Simboli
202
+
## Object e Symbol
203
203
204
-
Il tipo `object` è speciale.
204
+
Il tipo `object` è un tipo speciale.
205
205
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.
207
207
208
208
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.
Le ultime tre linee potrebbero richiedere una spiegazione ulteriore:
250
250
251
251
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.
0 commit comments