Skip to content

Commit ad3dcc0

Browse files
authored
Merge branch 'master' into master
2 parents 6a19b4b + 69469bf commit ad3dcc0

File tree

653 files changed

+11472
-6236
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

653 files changed

+11472
-6236
lines changed

1-js/01-getting-started/1-intro/article.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,29 @@ Vediamo cosa rende JavaScript così speciale, cosa è possibile ottenere tramite
44

55
## Cos'è JavaScript?
66

7-
*JavaScript* è stato creato con lo scopo di *"dare vita alle pagine web"*.
7+
*JavaScript* è stato creato con lo scopo di "dare vita alle pagine web".
88

99
I programmi che sfruttano questo linguaggio vengono chiamati *script*. Possono essere scritti direttamente nel documento HTML ed eseguiti in automatico al caricamento della pagina.
1010

1111
Gli script vengono scritti ed eseguiti come testo semplice. Infatti non richiedono particolari conoscenze, ne di essere compilati per poterli eseguire.
1212

1313
In questo aspetto, JavaScript è molto differente da un altro linguaggio chiamato [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
1414

15-
```smart header="Perchè <u>Java</u>Script?"
16-
In origine JavaScript aveva un altro nome: "Live Script". In quel periodo Java era molto popolare, per questo si è pensato che identificare questo linguaggio come il suo "fratello minore" di Java potesse aiutare.
15+
```smart header="Perchè si chiama <u>Java</u>Script?"
16+
In origine JavaScript aveva un altro nome: "LiveScript". In quel periodo Java era molto popolare, per questo si è pensato che identificare questo linguaggio come il "fratello minore" di Java potesse aiutare nella sua diffusione.
1717
1818
Evolvendosi, JavaScript è diventato un linguaggio completamente indipendente, con delle specifiche personali chiamate [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), e adesso non ha quasi nulla in comune con Java.
1919
```
2020

21-
Attualmente, JavaScript può essere eseguito non solo nei browser, ma anche nei server web e in alcuni dispositivi che supportano uno speciale programma chiamato [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
21+
Attualmente, JavaScript può essere eseguito non solo nei browser, ma anche nei server web e in altri ambienti che supportano il [motore JavaScript](https://en.wikipedia.org/wiki/JavaScript_engine) (JavaScript engine).
2222

23-
Il browser ha un suo motore JavaScript integrato, chiamato "JavaScript virtual machine".
23+
Il browser ha un suo motore JavaScript integrato, chiamato "JavaScript Virtual machine".
2424

25-
Ci sono altri motori con differenti "codenames", tra cui:
25+
Esistono altri motori JavaScript, tra cui:
2626

2727
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- per Chrome e Opera.
2828
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- per Firefox.
29-
- ...Ci sono altri codenames come "Trident" e "Chakra" compatibili cond diverse versioni di IE, "ChakraCore" specifico per Microsoft Edge, "Nitro" e "SquirrelFish" per Safari, etc.
29+
- ...Ci sono altri codenames come "Chakra" per IE, "ChakraCore" specifico per Microsoft Edge, "Nitro" e "SquirrelFish" per Safari, etc.
3030

3131
I nomi citati sopra possono essere utili da ricordare, poichè si possono trovare spesso in articoli che trattano di sviluppo web. Anche noi li useremo. Ad esempio, se "una caratteristica X è supportata da V8", probabilmente funzioneranno senza problemi in Chrome e Opera.
3232

@@ -39,12 +39,12 @@ Il funzionamento di questi motori è complicato, ma i concetti alla base sono se
3939
2. Successivamente convertono ("compilano") lo script in linguaggio macchina.
4040
3. Infine il codice macchina viene eseguito, molto rapidamente.
4141
42-
Il motore applica ottimizzazioni ad ogni passo del processo. Anche durante l'esecuzione dello script già compilato, il motore analizza il flusso dati e applica ottimizzazioni al codice macchina. Nonostante tutto lo script risulta molto veloce.
42+
Il motore applica ottimizzazioni ad ogni passo del processo. Anche durante l'esecuzione dello script già compilato, analizza il flusso dati e applica ottimizzazioni al codice macchina. Nonostante tutto l'esecuzione dello script risulta essere molto veloce.
4343
```
4444

4545
## Cosa può fare JavaScript a livello browser?
4646

47-
Il JavaScript al giorno d'oggi è un linguaggio di programmazione "sicuro". Non consente alcun accesso a basso livello alla memoria o alla CPU, questo perchè è stato creato con lo scopo di funzionare nei browser, che non richiedono questo tipo di privilegi.
47+
JavaScript al giorno d'oggi è un linguaggio di programmazione "sicuro". Non consente alcun accesso di basso livello alla memoria o alla CPU, questo perchè è stato creato con lo scopo di funzionare nei browser, che non richiedono questo tipo di privilegi.
4848

4949
Le capacità di JavaScript dipendono molto dall'ambiente in cui lo si esegue. Ad esempio, [Node.js](https://wikipedia.org/wiki/Node.js) supporta funzioni che consentono a JavaScript di scrivere/leggere file, eseguire richieste web, etc.
5050

@@ -55,34 +55,34 @@ Ad esempio, è possibile:
5555
- Aggiungere HTML alla pagina, cambiare il contenuto esistente, modificare lo stile.
5656
- Reagire alle azioni dell'utente, click del mouse, movimenti del cursore, input da tastiera.
5757
- Inviare richieste al server tramite la rete, caricare e scaricare file (con l'ausilio di[AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) e [COMET](https://en.wikipedia.org/wiki/Comet_(programming))).
58-
- Prelevare e Impostare cookies, interrogare l'utente e mostrare messaggi.
59-
- Memorizzare i dati client-side("memorizzazione locale").
58+
- Prelevare e impostare cookies, interrogare l'utente e mostrare messaggi.
59+
- Memorizzare i dati client-side ("memorizzazione locale").
6060

6161
## Cosa NON può fare JavaScript a livello browser?
6262

6363
Le possibilità di JavaScript nel browser sono limitate per la sicurezza dell'utente. L'intento è di prevenire che una pagina "maligna" tenti di accedere alle informazioni personali o di danneggiare i dati degli utenti.
6464

6565
Degli esempi di queste restrizioni possono essere:
6666

67-
- JavaScript in una pagina web non può leggere o scrivere in qualsiasi file nell'hard disk, ne copiare o eseguire programmi. Non ha accesso diretto alle funzioni di sistema.
67+
- JavaScript in una pagina web non può leggere o scrivere in qualsiasi file nell'hard disk, ne copiare o eseguire programmi. Non ha accesso diretto alle funzioni di sistema operativo.
6868

6969
I moderni browser gli consentono di lavorare con i file, sempre con un accesso limitato e comunque solo se il comando proviene da utente, come il "dropping" di un file nella finestra del browser, o con la selezione tramite il tag `<input>`.
7070

7171
Ci sono anche funzionalità che consentono di interagire con la camera/microfono e altri dispositivi, ma in ogni caso richiedono il permesso esplicito dell'utente. Quindi una pagina con JavaScript abilitato non può attivare la web-cam di nascosto, osservare i nostri comportamenti e inviare le informazioni all' [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
72-
- Pagine o Schede diverse generalmente non sono a conoscenza dell'esistenza delle altre. In certi casi può però capitare, ad esempio quando una finestra ne apre un'altra tramite JavaScript. Ma anche in questo caso, il codice JavaScript non può accedere all'altra pagina se non appartiene allo stesso sito(stesso dominio, protocollo o porta).
72+
- Pagine o schede diverse generalmente non sono a conoscenza dell'esistenza delle altre. In certi casi può però capitare, ad esempio che una finestra ne apra un'altra tramite JavaScript. Ma anche in questo caso, il codice JavaScript non può accedere all'altra pagina se non appartiene allo stesso sito (stesso dominio, protocollo o porta).
7373

7474
Questa viene definita la "Politica di Appartenenza alla Stessa Origine". Per poter aggirare questo limite, *entrambe le pagine* devono contenere uno speciale codice JavaScript che consente di gestire lo scambio di dati.
7575

76-
Questa limitazione è sempre dovuta alla sicurezza dell'utente. Una pagina proveniente da `http://anysite.com` che è stata aperta da un utente, non deve essere in grado di accedere ad un altra Scheda del browser con l'URL `http://gmail.com` (per esempio) e rubare le informazioni.
77-
- JavaScript può facilmente comunicare con il server da cui la pagina proviene. Ma la sua abilità di ricevere dati da altri siti/domini è limitata. Sebbene sia possibile, richiede delle richieste esplicite(passate tramite HTTP headers) dall'indirizzo remoto. Ancora una volta, queste sono limitazioni dovute alla sicurezza.
76+
Questa limitazione è sempre dovuta alla sicurezza dell'utente. Una pagina proveniente da `http://anysite.com` che è stata aperta da un utente, non deve essere in grado di accedere ad un altra scheda del browser con l'URL `http://gmail.com` (per esempio) e rubare le informazioni.
77+
- JavaScript può facilmente comunicare con il server da cui la pagina proviene. Ma la sua abilità di ricevere dati da altri siti/domini è limitata. Sebbene sia possibile, effettuare delle richieste esplicite (passate tramite HTTP headers) dall'indirizzo remoto. Ancora una volta, queste sono limitazioni dovute alla sicurezza.
7878

7979
![](limitations.svg)
8080

8181
Queste limitazioni non esistono se JavaScript viene eseguito fuori dal browser, ad esempio in un server. I browser moderni permettono l'installazione di plugin ed estensioni che consentono di aumentare i permessi.
8282

8383
## Cosa rende JavaScript unico?
8484

85-
Ci sono almeno *tre* cose che rendono grande JavaScript:
85+
Ci sono almeno *tre* cose che rendono JavaScript cosi unico:
8686

8787
```compare
8888
+ Completa integrazione con HTML/CSS.
@@ -91,8 +91,6 @@ Ci sono almeno *tre* cose che rendono grande JavaScript:
9191
```
9292
JavaScript è l'unica tecnologia in ambiente browser che combina queste tre caratteristiche.
9393

94-
Queste tre caratteristiche combinate esistono solo in JavaScript e in nessun'altra tecnologia web.
95-
9694
Questo rende JavaScript unico. Ed è il motivo per cui è lo strumento più diffuso per creare interfacce web.
9795

9896
Quando si ha in programma di imparare una nuova tecnologia, è fondamentale verificare le sue prospettive. Quindi diamo uno sguardo alle nuove tendenze che includono nuovi linguaggi e tecnologie.
@@ -103,16 +101,17 @@ La sintassi di JavaScript non soddisfa le necessità di tutti. Alcune persone ne
103101

104102
Questo è prevedibile, poichè i progetti e i requisiti sono diversi di persona in persona.
105103

106-
Quindi recentemente una elevata quantità di nuovi linguaggi è apparsa, che vengono *convertiti* in JavaScript prima di essere eseguite nel browser.
104+
Quindi recentemente un'elevata quantità di nuovi linguaggi è apparsa, che vengono *convertiti* in JavaScript prima di essere eseguite nel browser.
107105

108-
Gli strumenti moderni rendono la conversione molto veloce e pulita, consentendo agli sviluppatori di programmare in un altro linguaggio e di auto-convertirlo "di nascosto".
106+
Gli strumenti moderni rendono la conversione molto veloce e pulita, consentendo agli sviluppatori di programmare in un altro linguaggio e di auto-convertirlo "sotto il cofano".
109107

110108
Esempi di alcuni linguaggi:
111109

112110
- [CoffeeScript](http://coffeescript.org/) è un linguaggio con sintassi "leggera" per JavaScript, introduce una sintassi più breve, consente di scirvere codice più pulito e preciso. Amato dagli sviluppatori provenienti da Ruby.
113-
- [TypeScript](http://www.typescriptlang.org/) si occupa di aggiungere "tipizzazione dei dati", per semplificare lo sviluppo e supportare sistemi più complessi. E' stato sviluppato da Microsoft.
111+
- [TypeScript](http://www.typescriptlang.org/) si occupa di aggiungere la "tipizzazione", per semplificare lo sviluppo e supportare sistemi più complessi. E' stato sviluppato da Microsoft.
114112
- [Flow](http://flow.org/) anche'esso aggiunge la tipizzazione dei dati, ma in un modo differente. Sviluppato da Facebook.
115113
- [Dart](https://www.dartlang.org/) è un linguaggio autonomo che possiede il suo motore che esegue in ambienti esterni al browser (come mobile apps). E' stato introdotto da Google come alternativa a JavaScript, ma attualmente, i browser richiedono la conversione in JavaScript, proprio come i precedenti.
114+
- [Brython](https://brython.info/) è un traduttore, che codice scritto in Python in codice JavaScript, consente quindi di scrivere applicazioni in Python senza utilizzare JavaScript.
116115

117116
Ce ne sono molti altri. Ovviamente se utilizziamo uno di questi linguaggi, dovremmo almeno conoscere JavaScript, per comprendere cosa stiamo facendo.
118117

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11

2-
# Manuals and specifications
2+
# Manuali e Specifiche
33

4-
This book is a *tutorial*. It aims to help you gradually learn the language. But once you're familiar with the basics, you'll need other sources.
4+
Questo libro è un *tutorial*. L'obiettivo è quello di aiutarti ad apprender il linguaggio gradualmente. Una volta che avrai familiarizzato con le basi avrai bisogno di ulteriori risorse.
55

6-
## Specification
6+
## Specifiche
77

8-
**The ECMA-262 specification** contains the most in-depth, detailed and formalized information about JavaScript. It defines the language.
8+
[La specifica ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) contiene informazioni più dettagliate, approfondite e formalizzate riguardo JavaScript. E' la definizione stessa del linguaggio.
99

10-
But being that formalized, it's difficult to understand at first. So if you need the most trustworthy source of information about the language details, the specification is the right place. But it's not for everyday use.
10+
Iniziare a studiare dalla formalizzazione può risultare difficile all'inizio. Quindi se avete bisogno di una sorgente affidabile e formale riguardo i dettagli del linguaggio, la specifica è il posto in cui cercare. Ma non è una risorsa comoda da consultare per i problemi di tutti i giorni.
1111

12-
The latest draft is at <https://tc39.es/ecma262/>.
12+
Ogni anno viene rilasciata una nuova specifica. Fra questi rilasci, è possibile trovare l'ultima bozza a <https://tc39.es/ecma262/>.
1313

14-
To read about new bleeding-edge features, including those that are "almost standard" (so-called "stage 3"), see proposals at <https://github.com/tc39/proposals>.
14+
Per leggere delle più recenti caratteristiche, incluse quelle considerate "quasi standard" (definite "stage 3"), potete consultare <https://github.com/tc39/proposals>.
1515

16-
Also, if you're in developing for the browser, then there are other specs covered in the [second part](info:browser-environment) of the tutorial.
16+
Inoltre, se state sviluppando in ambiente browser, ci sono ulteriori specifiche che verranno analizzate nella [seconda parte](info:browser-environment) del tutorial.
1717

18-
## Manuals
18+
## Manuali
1919

20-
- **MDN (Mozilla) JavaScript Reference** is a manual with examples and other information. It's great to get in-depth information about individual language functions, methods etc.
20+
- **MDN (Mozilla) JavaScript Reference** è un manuale con esempi ed altre informazioni utili. E' ottimo per avere informazioni dettagliate riguardo le funzioni e i metodi del linguaggio.
2121

22-
One can find it at <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
22+
Può essere consultato al link <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
2323

24-
Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. <https://google.com/search?q=MDN+parseInt> to search for `parseInt` function.
24+
Anche se, è meglio eseguire una ricerca internet. E' sufficiente inserire il termine "MDN" nella stringa da ricercare, e.g. <https://google.com/search?q=MDN+parseInt> per ricercare la funzione `parseInt`.
2525

2626

27-
- **MSDN** – Microsoft manual with a lot of information, including JavaScript (often referred to as JScript). If one needs something specific to Internet Explorer, better go there: <http://msdn.microsoft.com/>.
27+
- **MSDN**Manuale Microsoft con molte informazioni, incluso JavaScript (a cui viene fatto riferimento con il termine JScript). Se si ha bisongo di ottenere qualche informazione specifica per Internet Explorer, meglio consultare la guida: <http://msdn.microsoft.com/>.
2828

29-
Also, we can use an internet search with phrases such as "RegExp MSDN" or "RegExp MSDN jscript".
29+
Possiamo anche effettuare una ricerca online con frasi come "RegExp MSDN" o "RegExp MSDN jscript".
3030

31-
## Compatibility tables
31+
## Tabelle di compatibilità
3232

33-
JavaScript is a developing language, new features get added regularly.
33+
JavaScript è un linguaggio in via di sviluppo, per questo nuove funzionalità vengono aggiunte regolarmente.
3434

35-
To see their support among browser-based and other engines, see:
35+
Per verificare il loro supporto da parte dei browser, si possono consultare:
3636

37-
- <http://caniuse.com> - per-feature tables of support, e.g. to see which engines support modern cryptography functions: <http://caniuse.com/#feat=cryptography>.
38-
- <https://kangax.github.io/compat-table> - a table with language features and engines that support those or don't support.
37+
- <http://caniuse.com> - per visualizzare tabelle di supporto per ogni caratteristica, ad esempio per visualizzare le funzioni di crittografia: <http://caniuse.com/#feat=cryptography>.
38+
- <https://kangax.github.io/compat-table> - una tabella con le caratteristiche del linguaggio e i motori che le supportano.
3939

40-
All these resources are useful in real-life development, as they contain valuable information about language details, their support etc.
40+
Tutte le risorse elencate finora sono utili nella sviluppo di tutti i giorni, in quanto contengono ottime informazioni riguardo i dettagli del linguaggio, il loro support etc.
4141

42-
Please remember them (or this page) for the cases when you need in-depth information about a particular feature.
42+
Ti consiglio quindi di ricordartele (in alternativa puoi consultare questa pagina), nel caso dovessi avere bisogno di informazioni dettagliate riguardo qualche caratteristica particolare.

1-js/01-getting-started/3-code-editors/article.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Nella pratica, gli editor semplici possono avere molti plugin tra cui sintassi a
3434
Meritano attenzione le seguenti opzioni:
3535

3636
- [Atom](https://atom.io/) (multi-piattaforma, gratuito).
37+
- [Visual Studio Code](https://code.visualstudio.com/) (multi-piattaforma, gratuito).
3738
- [Sublime Text](http://www.sublimetext.com) (multi-piattaforma, con prova gratuita).
3839
- [Notepad++](https://notepad-plus-plus.org/) (Windows, gratuito).
3940
- [Vim](http://www.vim.org/) e [Emacs](https://www.gnu.org/software/emacs/) sono particolarmente carini se si sanno utilizzare.

1-js/01-getting-started/4-devtools/article.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ Sotto il messaggio d'errore, c'e un simbolo blu `>`. Questo indica la "riga di c
3434

3535
Adesso possiamo visualizzare gli errori, ed è già abbastanza come inizio. Ritorneremo sugli strumenti di sviluppo più avanti e analizzeremo il debugging più in profondità nel capitolo <info:debugging-chrome>.
3636

37+
```smart header="Multi-line input"
38+
Usually, when we put a line of code into the console, and then press `key:Enter`, it executes.
39+
40+
To insert multiple lines, press `key:Shift+Enter`. This way one can enter long fragments of JavaScript code.
41+
```
3742

3843
## Firefox, Edge, and others
3944

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!DOCTYPE html>
2+
<html>
3+
4+
<body>
5+
6+
<script>
7+
alert( "I'm JavaScript!" );
8+
</script>
9+
10+
</body>
11+
12+
</html>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
[html src="index.html"]

1-js/02-first-steps/01-hello-world/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ E' anche possibile fornire un percorso relativo a partire dalla pagina corrente.
7272
Possiamo anche fornire un URL. Per esempio:
7373

7474
```html
75-
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.2.0/lodash.js"></script>
75+
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
7676
```
7777

7878
Per integrare più script, utilzzate più volte il tag:

1-js/02-first-steps/03-strict-mode/article.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ Nel caso in cui non funzioni, la miglior strada da seguire è quella di assicura
7272
})()
7373

7474

75-
7675
## Utilizzare sempre "use strict"
7776

7877
Le differenze tra `"use strict"` contro la modalità di "default" non è ancora stata spiegata.

0 commit comments

Comments
 (0)