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/05-data-types/01-primitives-methods/article.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,21 +2,21 @@
2
2
3
3
JavaScript ci consente di trattare i tipi primitivi (stringhe, numeri, etc.) come se fossero oggetti.
4
4
5
-
Possiedono dei metodi per fare ciò. Molto presto li studieremo, prima dobbiamo vedere come funzionano, perché ovviamente i tipi primitivi non sono oggetti (cercheremo quindi di fare chiarezza).
5
+
Mette a disposizione diversi metodi per farlo, che molto presto studieremo, prima però dobbiamo capire come funzionano, perché ovviamente i tipi primitivi non sono oggetti (cercheremo quindi di fare chiarezza).
6
6
7
7
Vediamo quali sono i punti chiave che distinguono i tipi primitivi dagli oggetti.
8
8
9
9
Un primitivo
10
10
11
11
- E' un valore di tipo primitivo.
12
-
-Ci sono 6 tipi primitivi: `string`, `number`, `bigint`, `boolean`, `symbol`, `null` e `undefined`.
12
+
-Esistono 6 tipi primitivi: `string`, `number`, `bigint`, `boolean`, `symbol`, `null` e `undefined`.
13
13
14
14
Un oggetto
15
15
16
16
- E' in grado di memorizzare molti valori come proprietà.
17
17
- Può essere creato con `{}`, ad esempio: `{name: "John", age: 30}`. Ci sono altri tipi di oggetto in JavaScript; le funzioni ad esempio sono oggetti.
18
18
19
-
Uno dei migliori vantaggi degli oggetti è che possiamo memorizzarci funzioni come proprietà dello stesso.
19
+
Uno dei principali vantaggi degli oggetti, è che questi possono essere utilizzati per memorizzare funzioni come sue proprietà.
20
20
21
21
```js run
22
22
let john = {
@@ -31,7 +31,7 @@ john.sayHi(); // Hi buddy!
31
31
32
32
In questo esempio abbiamo creato un oggetto `john` con il metodo `sayHi`.
33
33
34
-
Esistono molti oggetti integrati, come quelli per manipolare le date, errori, elementi HTML, etc. Che possiedono diverse proprietà e metodi.
34
+
Esistono diversi oggetti built-in (integrati nel linguaggio), come quelli per dedicati alla manipolazione delle date, degli errori, degli elementi HTML, etc. I quali possiedono diverse proprietà e metodi.
35
35
36
36
Ma tutte queste caratteristiche hanno un costo!
37
37
@@ -41,14 +41,14 @@ Gli oggetti sono più "pesanti" dei tipi primitivi. Richiedono risorse extra per
41
41
42
42
Questo è il paradosso contro cui si è scontato il creatore di JavaScript:
43
43
44
-
-Ci sono molte operazioni che uno vorrebbe fare con i tipi primitivi (come una stringa o un numero). Sarebbe molto bello poterli utilizzare con dei metodi.
44
+
-Esitono molte operazioni che uno sviluppatore vorrebbe poter fare con i diversi tipi primitivi, come una stringa o un numero. Sarebbe molto bello poter utilizzare questi tipi di dato con dei metodi.
45
45
- I tipi primitivi devono essere veloci e il più leggeri possibile.
46
46
47
47
La soluzione sembra un po' strana:
48
48
49
-
1.Le primitive rimangono primitive. Contengono un singolo valore.
49
+
1.I primitivi rimangono primitivi. Contengono un singolo valore.
50
50
2. Il linguaggio consente di accedere alle proprietà e ai metodi di stringhe, numeri, booleani e symbol.
51
-
3. Quando questo accade, viene creato uno speciale "oggetto contenitore" che fornisce le funzionalità extra, successivamente verrà distrutto.
51
+
3. Quando questo accade, viene creato uno speciale "oggetto contenitore" che fornisce le funzionalità extra, successivamente questo verrà distrutto.
52
52
53
53
Gli "oggetti contenitore" sono diversi per ogni primitiva e sono chiamati: `String`, `Number`, `Boolean` e `Symbol`. Questi forniscono diversi insiemi di metodi.
54
54
@@ -68,11 +68,11 @@ Semplice, vero? Questo è quello che accade realmente in `str.toUpperCase()`:
68
68
2. Questo metodo viene eseguito e ritorna una nuova stringa (mostrata da `alert`).
69
69
3. L'oggetto speciale viene distrutto, lasciando solamente la primitiva `str`.
70
70
71
-
In questo modo le primitive possono fornire i vantaggi portati dai metodi, rimanendo allo stesso tempo molto leggere.
71
+
In questo modo i primitivi possono sfruttare i vantaggi forniti dall'utilizzo dei metodi, rimanendo allo stesso tempo molto leggeri.
72
72
73
-
JavaScript cerca di ottimizzare il più possibile questo processo. In alcuni casi riesce ad evitare la creazione di oggetti inutili. Deve comunque aderire e comportarsi come definito dallo standard, quindi deve comportarsi come se ne fosse stato creato uno.
73
+
JavaScript cerca di ottimizzare il più possibile questo processo. In alcuni casi riesce ad evitare la creazione di oggetti inutili. Nonostance ciò, deve comunque aderire alle specifiche, quindi il comportamento deve essere simile a quello che si avrebbe con la creazione di un oggetto.
74
74
75
-
Un numero ha dei propri metodi, ad esempio [toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) che arrotonda il numero alla precisioni richiesta:
75
+
Un variabile di tipo number ha dei propri metodi, ad esempio [toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) che arrotonda il numero alla precisione richiesta:
76
76
77
77
```js run
78
78
let n =1.23456;
@@ -96,7 +96,7 @@ alert( typeof 0 ); // "number"
96
96
alert( typeofnewNumber(0) ); // "object"!
97
97
```
98
98
99
-
Gli oggetti valutati da un `if` sono sempre true, quindi l'alert verrà mostrato:
99
+
Gli oggetti valutati da un `if` sono sempre true, quindi il seguente alert verrà mostrato sempre:
100
100
101
101
```js run
102
102
let zero =newNumber(0);
@@ -106,25 +106,25 @@ if (zero) { // zero è true, perché è un oggetto
106
106
}
107
107
```
108
108
109
-
In altre parole, utilizzare le stesse funzioni con `String/Number/Boolean` senza `new` è completamente sicuro. Poiché le variabili primitive verranno convertite all'oggetto corrispondente: ad una stringa, ad un numero, o ad un bool (primitive).
109
+
In altre parole, utilizzare le stesse funzioni con `String/Number/Boolean` senza `new` è completamente sicuro. Poiché le variabili primitive verranno convertite all'oggetto corrispondente: ad una stringa, ad un numero, o ad un bool.
110
110
111
-
Ad esempio, è corretto fare:
111
+
Ad esempio, il seguente codice è corretto:
112
112
```js
113
113
let num =Number("123"); // converte una string in number
114
114
```
115
115
````
116
116
117
117
118
118
````warn header="null/undefined non hanno metodi"
119
-
Le primitive speciali `null` e `undefined` sono delle eccezioni. Non possiedono degli speciali "oggetti contenitori", quindi non forniscono metodi. In questo senso, sono "molto primitive".
119
+
I primitivi speciali `null` e `undefined` sono delle eccezioni. Non possiedono degli speciali "oggetti contenitori", quindi non forniscono metodi. In questo senso, sono "molto primitivi".
120
120
121
-
Un tentativo di accedere ad una proprietà con questi tipi di valore, lancerà un errore:
121
+
Un tentativo di accedere ad una proprietà con questi tipi di valore, ritornerà un errore:
122
122
123
123
```js run
124
124
alert(null.test); // errore
125
125
````
126
126
127
127
## Riepilogo
128
128
129
-
-Le primitive, ad eccezioni di `null` e `undefined` forniscono molti metodi utili. Li studieremo nei prossimi capitoli.
129
+
-I primitivi, ad eccezione di `null` e `undefined` forniscono molti metodi utili. Li studieremo nei prossimi capitoli.
130
130
- Formalmente, questi metodi lavorano su oggetti temporanei, JavaScript però è ottimizzato per sfruttare al meglio le risorse, non risultano quindi molto "costosi".
0 commit comments