Skip to content

Commit 2899955

Browse files
authored
Merge pull request #144 from longo-andrea/feature/variables
Review ' Variables' article
2 parents 9a296fa + 9d0650a commit 2899955

File tree

2 files changed

+39
-18
lines changed

2 files changed

+39
-18
lines changed

1-js/02-first-steps/04-variables/2-declare-variables/solution.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ let ourPlanetName = "Earth";
88

99
Nota che avremmo anche potuto usare un nome più corto, come `planet`, ma potrebbe non essere ovvio a cosa si rifrisce. E' una buona cosa essere un pò più descrittivi. Almeno finche le variabili nonDiventanoTroppoLunghe.
1010

11+
# Il nome del visitatore attuale
12+
13+
```js
1114
let currentUserName = "John";
15+
```
1216

1317
Di nuovo, potremmo accorciare il nome con `userName`, se fossimo sicuri che quell'utente sia quello corrente.
1418

1-js/02-first-steps/04-variables/article.md

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Variabili
22

3-
La maggior parte delle volte, le applicazioni JavaScript necessitano d'informazione per poter lavorare. Vediamo due esempi:
3+
La maggior parte delle volte, le applicazioni JavaScript necessitano di lavorare con informazioni. Vediamo due esempi:
44
1. Un negozio online -- le informazioni possono riguardare i beni venduti e il carrello.
55
2. Un applicazione di messaggistica -- le informazioni possono riguardare utenti, messaggi e molto altro.
66

77
Le variabili vengono utilizzate per memorizzare informazioni.
88

99
## Variabile
1010

11-
Una variabile [variable](https://en.wikipedia.org/wiki/Variable_(computer_science)) è un "memorizzatore con nome" per i dati. Possiamo usare le variabile per memorizzare informazioni extra, visitatori e altri dati.
11+
Una [variabile](https://en.wikipedia.org/wiki/Variable_(computer_science)) è uno "spazio di memoria con nome" utilizzato per salvare dati. Possiamo usare le variabili per memorizzare informazioni extra, visitatori e altri dati.
1212

1313
Per creare una variabile in JavaScript, dobbiamo utilizzare la parola chiave `let`.
1414

15-
L'istruzione sotto crea(in altre parole: *dichiara* o *definisce*) una variabile identificata dal nome "messaggio":
15+
L'istruzione sotto crea (in altre parole: *dichiara*) una variabile identificata dal nome "messaggio":
1616

1717
```js
1818
let message;
1919
```
2020

21-
Adesso possiamo inserirci dati utilizzando l'operatore di assegnazione `=`:
21+
Adesso possiamo inserirci dei dati utilizzando l'operatore di assegnazione `=`:
2222

2323
```js
2424
let message;
@@ -53,7 +53,7 @@ Possiamo anche dichiarare più variabili in una riga:
5353
let user = 'John', age = 25, message = 'Hello';
5454
```
5555

56-
Questo potrebbe risultare più breve, ma è sconsigliato. Per mantenere una migliore leggibilità è meglio utilizzare una riga per ogni variabile.
56+
Questo potrebbe risultare più breve, ma è sconsigliato. Per mantenere una migliore leggibilità è meglio dichiarare solamente una variabile per riga.
5757

5858
L'alternativa a più righe è un po più lunga, ma più facile da leggere:
5959

@@ -70,7 +70,7 @@ let user = 'John',
7070
message = 'Hello';
7171
```
7272

73-
...O anche con la virgola nella nuova riga:
73+
...O anche con la virgola su nuova riga:
7474

7575
```js no-beautify
7676
let user = 'John'
@@ -92,9 +92,9 @@ La parola chiave `var` è *quasi* la stessa cosa di `let`. Dichiara comunque una
9292
Ci sono delle sottili differenze tra `let` e `var`, ma per ora non hanno importanza. Le copriremo in dettaglio più avanti, nel capitolo <info:var>.
9393
````
9494
95-
## Un analogia con il mondo reale
95+
## Un'analogia con il mondo reale
9696
97-
Possiamo comprendere meglio il concetto di "variabile" se la immaginiamo come una scatola per i dati, con appiccicata un etichetta univoca.
97+
Possiamo comprendere meglio il concetto di "variabile" se la immaginiamo come una scatola per dati, con appiccicata un'etichetta univoca.
9898
9999
Per esempio, la variabile `message` può essere immaginata come una scatola con etichetta `"message"` con il valore `"Hello!"` al suo interno:
100100
@@ -134,12 +134,26 @@ alert(hello); // Hello world!
134134
alert(message); // Hello world!
135135
```
136136
137+
````warn header="Dichiarare una variabile più di una volta farà scattare un errore"
138+
Una variabile dovrebbe essere dichiarata una volta sola.
139+
140+
La ripetizioni della dichiarazione di una stessa variabile porterà ad un errore:
141+
142+
```js run
143+
let message = "This";
144+
145+
// 'let' ripetuto genererà un errore
146+
let message = "That"; // SyntaxError: 'message' has already been declared
147+
```
148+
Quindi, dovremmo dichiarare una variabile una volta sola, e farne riferimento senza la parola chiave `let`.
149+
````
150+
137151
```smart header="Linguaggi funzionali"
138152
Può essere interessante sapere che esistono anche linguaggi di programmazione [funzionale](https://en.wikipedia.org/wiki/Functional_programming) che vietano di cambiare il valore di una variabile. Per esempio, [Scala](http://www.scala-lang.org/) o [Erlang](http://www.erlang.org/).
139153
140154
In questo tipo di linguaggi, una volta che il valore viene memorizzato "dentro la scatola", ci rimane per sempre. Se abbiamo bisogno di memorizzare qualcos altro, il linguaggio ci forza a creare una nuova scatola (dichiarare una nuova variabile). Non possiamo quindi riutilizzare quelle vecchie.
141155
142-
Anche se potrebbero sembrare un strano a prima vista, questi linguaggi sono veramente capaci di sviluppare grandi cose. Inoltre, ci sono certe situazioni come calcoli paralleli in cui questi limiti portano dei benefici. Studiare un linguaggio di questo tipo (anche se non abbiamo intenzione di utilizzarlo a breve) è consigliato per allargare le proprie conoscenze.
156+
Anche se potrebbero sembrare un po' strano a prima vista, questi linguaggi sono veramente capaci di sviluppare grandi cose. Inoltre, ci sono certe situazioni come calcoli paralleli in cui questi limiti portano dei benefici. Studiare un linguaggio di questo tipo (anche se non abbiamo intenzione di utilizzarlo a breve) è consigliato per allargare le proprie conoscenze.
143157
```
144158

145159
## Nomi delle variabili [#variable-naming]
@@ -189,11 +203,11 @@ let имя = '...';
189203
let 我 = '...';
190204
```
191205
192-
Tecnicamente, non ci sono errori, questo tipo di nomi sono permessi, ma la tradizione internazionale è di utilizzare l'alfabeto inglese per il nome delle variabili. Anche se stiamo scrivendo un piccolo script, potrebbe infatti avere una lunga vita. Persone di altre nazionalità potrebbero aver bisogno di leggerlo.
206+
Tecnicamente, non ci sono errori, questo tipo di nomi sono permessi, ma la tradizione internazionale è di utilizzare l'alfabeto inglese per il nome delle variabili. Anche se stiamo scrivendo un piccolo script, questo potrebbe infatti avere una lunga vita. Persone di altre nazionalità potrebbero aver bisogno di leggerlo.
193207
````
194208

195209
````warn header="Nomi riservati"
196-
C'e una [lista di parole riservate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords), che non possono essere utilizzare come nomi di variabili, perchè vengono utilizzate dal linguaggio stesso.
210+
C'e una [lista di parole riservate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords), che non possono essere utilizzare come nomi di variabili, perché vengono utilizzate dal linguaggio stesso.
197211
198212
Per esempio, le parole `let`, `class`, `return`, `function` sono riservate.
199213
@@ -228,7 +242,7 @@ num = 5; // errore: num non è definita
228242
```
229243
````
230244
231-
## Constanti
245+
## Costanti
232246
233247
Per dichiarare una variabile costante (immutabile), dobbiamo utilizzare `const` invece di `let`:
234248
@@ -243,7 +257,9 @@ const myBirthday = '18.04.1982';
243257
244258
myBirthday = '01.01.2001'; // errore, non è possibile riassegnare la costante!
245259
```
246-
Quando il programmatore è sicuro che il valore della variabile non cambierà mai, può utilizzare `const` per soddisfare questa esigenza, e metterlo anche in mostra a tutti gli altri.
260+
261+
Quando il programmatore è sicuro che il valore della variabile non cambierà mai, può utilizzare `const` per soddisfare questa esigenza, rendendolo cosi esplicito.
262+
247263
248264
### Le costanti maiuscole
249265
@@ -272,24 +288,25 @@ Benefici:
272288
273289
Quando dovremmo utilizzare lettere maiuscole per una costante, e quando invece trattarle come normali variabili? Facciamo un pò di chiarezza.
274290
275-
Essere una "costante" significa che il valore non potrà mai cambiare. Ci sono costanti che sono note prima dell'esecuzione (come la codifia esadecimale del colore rosso), e ci sono quelle che vengono *calcolate* durante l'esecuzione, ma non cambieranno più dopo che gli sarà stato assegnato un valore.
291+
Essere una "costante" significa che il valore non potrà mai cambiare. Ci sono costanti che sono note prima dell'esecuzione (come la codifica esadecimale del colore rosso), e ci sono quelle che vengono *calcolate* durante l'esecuzione, ma non cambieranno più dopo che gli sarà stato assegnato un valore.
276292
277293
Per esempio:
278294
```js
279295
const pageLoadTime = /* tempo necessario da una pagina web per caricare */;
280296
```
281-
Il valore di `pageLoadTime` non è noto prima del caricamento della pagina, quindi viene trattato come una normale variabile. Ma rimane comunque una costante, perchè non potrà più cambiare dopo che gli sarà stato assegnato un valore.
297+
298+
Il valore di `pageLoadTime` non è noto prima del caricamento della pagina, quindi viene trattato come una normale variabile. Ma rimane comunque una costante, perché non potrà più cambiare dopo che gli sarà stato assegnato un valore.
282299
283300
In altre parole, i nomi delle costanti in maiuscolo vengono utilizzati con variabili dal valore noto prima dell'esecuzione.
284301
285302
## Dare i giusti nomi alle cose
286303
287304
Parlando di variabili, c'è un'altra cosa estremamente importante.
288305
289-
Per favore, utilizzate i nomi delle variabili con sensibilità. Prendetevi del tempo per pensare se necessario.
306+
Il nome di una variabile dovrebbe sempre essere pulito, ovvio e descrittivo del suo contenuto.
290307
291308
Dare i giusti nomi alle variabili è una delle abilità più importanti (e difficili) nella programmazione.
292-
Una rapida occhiata ai nomi delle variabili può rivelare se il codice è stato scritto da un beginner o da uno sviluppatore esperto.
309+
Una rapida occhiata ai nomi delle variabili può rivelare se il codice è stato scritto da un principiante o da uno sviluppatore esperto.
293310
294311
In un progetto reale, la maggior parte del tempo lo si perde a modificare ed estendere del codice già esistente, piuttosto che riscriverne uno nuovo. E quando ritorneremo sul codice, dopo aver fatto qualcos'altro, sarà molto pù facile trovare informazioni se sono ben descritte. In altre parole, quando le variabili utilizzano dei nomi efficaci.
295312
@@ -311,7 +328,7 @@ Il risultato che si ottiene, è che le variabili sono come delle scatole in cui
311328
312329
Questo genere di programmatori risparmiano qualche bit nella dichiarazione delle variabili ma perdono dieci volte il tempo risparmiato per fare debugging del codice.
313330
314-
Una variable in più va bene, non sono il diavolo.
331+
Una variabile in più non è necessariamente un male.
315332
316333
I browser moderni e JavaScript minimizzano ed ottimizzano il codice abbastanza bene, quindi non ci saranno problemi di performance. Usare variabili differenti, per valori differenti può addirittura aiutare il motore JavaScript nell'ottimizzazione.
317334
```

0 commit comments

Comments
 (0)