aboutsummaryrefslogtreecommitdiff
path: root/files/it/web/javascript/cosè_javascript/index.html
blob: c850023b92992e109762ed6cb751827a9c566d79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
title: Cos'è JavaScript
slug: Web/JavaScript/Cosè_JavaScript
translation_of: Web/JavaScript/About_JavaScript
---
<div>{{JsSidebar}}</div>

<h2 id="Cos'è_JavaScript">Cos'è JavaScript?</h2>

<p><strong>JavaScript</strong><sup>®</sup> (spesso abbreviato con <strong>JS</strong>) è un linguaggio di programmazione, interpretato, orientato agli oggetti  con  <a href="https://en.wikipedia.org/wiki/First-class_functions" title="https://en.wikipedia.org/wiki/First-class_functions">first-class functions</a>,  ed è meglio conosciuto come linguaggio di scripting client-side per pagine web, nonostante questo è anche utilizzato in molte applicazioni<a class="external" href="https://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages">non solamente basate sul web</a>. Il linguaggio è <a class="mw-redirect" href="https://en.wikipedia.org/wiki/Prototype-based_programming" title="Prototype-based">prototype-based</a>,  è  dinamico, imperativo, e il offre uno stile di programmazione funzionale.</p>

<p>JavaScript viene eseguito direttamente lato "client-side" della pagina web e può essere utilizzato per dare un design e stabilire il comportamento delle pagine web quando viene scatenato una particolare evento da parte dell'utente. JavaScript è semplice da apprendere e nello stesso tempo rappresenta un linguaggio che permette un controllo quasi totale sulla pagina web.</p>

<p>Contrariamente alla concezione popolare, JavaScript non è "Java Interpretato". JavaScript è un linguaggio di scripting dinamico che supporta la costruzione degli oggetti basata su <a href="/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages" title="en-US/docs/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages">prototype</a>. La sintassi base è intenzionalmente basata su entrambi i maggiori e più conosciuti linguaggi, C++ e Java e questo ha permesso la riduzione di nuovi concetti per lo studio del linguaggio. Costrutti del linguaggio come if, cicli <code>for </code>e  <code>while, </code><code>switch </code>e <code>blocchi</code> <code>try ... catch </code>hanno il medesimo significato in questi linguaggi.</p>

<p>JavaScript permette di programmare sia in modo <a href="https://en.wikipedia.org/wiki/Procedural_programming">procedurale</a> sia in <a href="/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">orientato agli oggetti</a>. Gli oggetti vengono creati a livello di programmazione in JavaScript, allegando metodi e proprietà agli oggetti altrimenti vuoti in fase di esecuzione, in contrasto con le definizioni di classe sintattiche comuni linguaggi compilati come C ++ e Java. Una volta che un oggetto è stato costruito può essere utilizzato come modello (o prototipo) per creare oggetti simili.</p>

<p>JavaScript permette la costruzione a runtime di oggetti, elenchi di parametri, funzioni come variabili, pemette la creazione di script dinamici (tramite <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval">eval</a></code>), permette di esaminare a runtime tipo e proprietà di un oggetto (tramite <code>for ... in</code>), e il recupero del codice sorgente ( i programmi JavaScript possono decompilare parti di funzione e mostrarne il codice sorgente all'interno del codice sorgente stesso).</p>

<p>Per una più esaustiva trattazione del linguaggio JavaScript consulta il seguente link <a href="#JavaScript_resources">JavaScript resources</a>.</p>

<h2 id="Quali_implementazioni_del_linguaggio_JavaScript_sono_disponibili">Quali implementazioni del linguaggio JavaScript sono disponibili?</h2>

<p>Il progetto Mozilla fornisce due implementazioni JavaScript. Il primo JavaScript è stato creato da Brendan Eich a Netscape, e da allora è stato aggiornato per conformarsi alle ECMA-262 Edition 5 e versioni successive. Questo motore, nome in codice <a href="/en-US/docs/Mozilla/Projects/SpiderMonkey" title="en-US/docs/SpiderMonkey">SpiderMonkey</a>, è implementato in C / C ++. Il motore di <a href="/en-US/docs/Rhino" title="en-US/docs/Rhino">Rhino</a>, creati principalmente da Norris Boyd (anche lui a Netscape) è una implementazione JavaScript scritto in Java. Come SpiderMonkey, Rhino è ECMA-262 Edition 5 compatibile.</p>

<p>Diverse ed importanti ottimizzazioni sono state aggiunte, come TraceMonkey (Firefox 3.5), JägerMonkey (Firefox 4) e IonMonkey al motore SpiderMonkey JavaScript nel corso del tempo. Il lavoro è sempre in corso per migliorare le prestazioni di esecuzione di JavaScript.</p>

<p>Oltre alle implementazioni di cui sopra, ci sono molti altri popolari motori JavaScript, quali: -</p>

<ul>
 <li><a class="external" href="https://code.google.com/p/v8/" title="https://code.google.com/p/v8/">V8</a> di Google, che viene utilizzato nel browser Google Chrome e nelle versioni recenti del browser Opera. <a class="external" href="https://code.google.com/p/v8/" title="https://code.google.com/p/v8/">V8</a> è anche il motore utilizzato per <a href="http://nodejs.org">Node.js</a>.</li>
 <li><a class="external" href="https://www.webkit.org/projects/javascript/index.html" title="https://www.webkit.org/projects/javascript/index.html">JavaScriptCore</a>(SquirrelFish / Nitro) utilizzato in alcuni browser WebKit, come Safari di Apple.</li>
 <li><a class="external" href="http://my.opera.com/ODIN/blog/carakan-faq" title="http://my.opera.com/ODIN/blog/carakan-faq">Carakan</a> nelle vecchie versioni di Opera.</li>
 <li><a class="external" href="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29" title="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29">Chakra</a> utilizzato in Internet Explorer (anche se il linguaggio che implementa è formalmente chiamato "JScript" al fine di evitare problemi legati al marchio).</li>
</ul>

<p>Ognuno dei motori JavaScript di Mozilla espone una API pubblica per gli sviluppatori e questa viene utilizzata per integrare JavaScript nella loro software. Di gran lunga, l'ambiente host più comune per JavaScript e lo stesso browser web. I browser Web utilizzano in genere l'API pubblica di JavaScript per la gestione e la visualizzazione della struttura <a class="external" href="http://www.w3.org/DOM/">DOM</a> delle pagine web.</p>

<p>Un'altra applicazione comune  per cui possiamo utilizzare JavaScript è come linguaggio di scripting lato server. Un server web JavaScript esporrebbe oggetti  che rappresentano una richiesta HTTP e oggetti di risposta, che possono successivamente essere manipolati da un programma JavaScript per generare dinamicamente pagine web. <a href="http://nodejs.org">Node.js</a> è un esempio popolare di questo.</p>

<h2 id="Risorse_JavaScript">Risorse JavaScript</h2>

<dl>
 <dt><a href="/en-US/docs/Mozilla/Projects/SpiderMonkey" title="en-US/docs/SpiderMonkey">SpiderMonkey</a></dt>
 <dd>Informazioni specifiche riguardanti l'implementazione del motore scritto in C / C ++ (aka SpiderMonkey), compreso il modo di incorporare nelle applicazioni.</dd>
</dl>

<dl>
 <dt><a href="/en-US/docs/Rhino" title="en-US/docs/Rhino">Rhino</a></dt>
 <dd>Informazioni specifiche riguardanti l'implementazione del motore scritto in Java (aka Rhino).</dd>
 <dt><a href="/it/docs/Web/JavaScript/Language_Resources">Risorse sul linguaggio</a></dt>
 <dd>Informazioni sugli standard del linguaggio JavaScript.</dd>
 <dt><a href="/it/docs/Web/JavaScript/Una_reintroduzione_al_JavaScript">Re-Introduzione a JavaScript</a></dt>
 <dd><a href="/it/docs/Web/JavaScript/Guida" title="en-US/docs/JavaScript/Guide">Guida JavaScript</a> e <a href="/it/docs/Web/JavaScript/Reference" title="en-US/docs/JavaScript/Reference">JavaScript Reference</a>.</dd>
</dl>

<p>JavaScript® è un marchio registrato di Oracle negli U.S. e in altri paesi.</p>