JavaScript: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Web Workers: Aggiunto il template "Vedi anche" |
Modifica collegamento errato da Safari termine turistico a Safari browser di Apple Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile |
||
(12 versioni intermedie di 9 utenti non mostrate) | |||
Riga 5:
|autore = [[Brendan Eich]]
|data = [[1995]]
|utilizzo = <!-- Ambito di utilizzo specifico: linguaggio general-purpose, interrogazione di basi di dati,
▲|utilizzo = <!-- Ambito di utilizzo specifico: linguaggio general-purpose, interrogazione di basi di dati, ecc. -->
|paradigmi = Programmazione a eventi e a oggetti, funzionale
|tipizzazione = debole
Line 19 ⟶ 18:
|sito_web = https://developer.mozilla.org/it/docs/Web/JavaScript
}}
In [[informatica]] '''JavaScript''' è un [[linguaggio di programmazione]] multi paradigma [[Programmazione orientata agli oggetti|orientato]] agli [[Programmazione a eventi|eventi]], utilizzato sia nella [[programmazione Web|programmazione]] [[lato client]] web che [[lato server]] (
Originariamente sviluppato da [[Brendan Eich]] della [[Netscape Communications]] con il nome di '''Mocha''' e successivamente di '''LiveScript''', in seguito è stato rinominato "''JavaScript''" ed è stato formalizzato con una [[sintassi]] più vicina a quella del linguaggio [[Java (linguaggio di programmazione)|Java]] di [[Sun Microsystems]] (che nel 2010 è stata acquistata da [[Oracle Corporation|Oracle]]). [[Norma tecnica|Standardizzato]] per la prima volta il 1997 dalla [[European Computer Manufacturers Association|ECMA]] con il nome [[ECMAScript]], l'ultimo standard, di giugno 2022, è ECMA-262 Edition 13<ref>{{Cita web|url=https://262.ecma-international.org/13.0/|titolo=ECMA-262 13th Edition}}</ref> ed è anche uno standard [[ISO]] (ISO/IEC 16262).
Line 32 ⟶ 31:
=== Aspetti strutturali ===
{{Vedi anche|AJAX}}▼
Le caratteristiche principali di JavaScript sono:
* essere un [[linguaggio interpretato]]: il codice non viene [[compilazione|compilato]], ma [[Interprete (informatica)|eseguito direttamente;]] in JavaScript [[lato client]], il codice viene eseguito dall'interprete contenuto nel browser dell'utente.
Line 196 ⟶ 193:
== Elementi del linguaggio ==
=== Variabili ===
Le [[variabile (informatica)|variabili]] sono in genere tipizzate dinamicamente ovvero sono definite semplicemente assegnando loro un valore oppure usando il comando <code>let,che permette di modificare la variabile, o dal comando const (constant) che indica che la variabile non può essere modificata</code>; quelle dichiarate fuori da qualunque funzione sono in visibilità "globale" ovvero accessibili dall'intera [[pagina web]]; quelle dichiarate dentro una funzione sono invece locali ovvero interne per quella funzione.
Per passare variabili da una pagina all'altra, uno sviluppatore può impostare un [[cookie]] o usare un frame nascosto o una finestra in background per memorizzarli.
Line 734 ⟶ 731:
L'approfondimento della documentazione ufficiale permette di effettuare ulteriori buone pratiche, fra le quali:
* verifica del supporto (per esempio [[Safari (browser)|Safari]] su [[iOS]] è noto per non aver raggiunto un ottimo supporto)<ref name="mozdev-notification-permission" /><ref>{{Cita web
|url = https://caniuse.com/mdn-api_notification_requestpermission
|titolo = Notification API: requestPermission
Line 868 ⟶ 865:
=== Web Socket ===
Comunicazione bidirezionale full-duplex sul Web: sia il server che il client possono inviare dati in qualsiasi momento o anche contemporaneamente. Vengono inviati solo i dati stessi, senza il sovraccarico delle intestazioni HTTP, riducendo drasticamente la larghezza di banda.<syntaxhighlight lang="javascript">
var socket = new WebSocket('www.sito.it');
Line 966 ⟶ 964:
=== JS nel web 3D ===
{{vedi anche|Web 3D|WebGL}}
JavaScript comprende librerie e framework per creare interfacce 3D sul web<ref>{{Cita web|url=https://bashooka.com/coding/3d-javascript-libraries/|titolo=20 Interactive 3D JavaScript Libraries & Frameworks – Bashooka|data=2019-05-30|lingua=en
[[File:Webgl loader ctm.png|alt=Esempio di WebGL|miniatura|Esempio di WebGL]]
<syntaxhighlight lang="javascript">
Line 984 ⟶ 982:
== Alternative ==
{{vedi anche|HTML5|CSS}}
Con la nascita di [[HTML5|HTML 5]] e CSS 3 alcune possibilità come la creazione di<ref name=":0">{{Cita web|url=https://blog.logrocket.com/5-things-you-can-do-with-css-instead-of-javascript/|titolo=5 things you can do with CSS instead of JavaScript|sito=LogRocket Blog|data=2019-10-29|lingua=en
* gallerie/slide di immagini e video
Line 1 041 ⟶ 1 039:
;Storia
* {{en}} [https://web.archive.org/web/20080208124612/http://wp.netscape.com/comprod/columns/techvision/innovators_be.html Innovators of the Net: Brendan Eich and JavaScript] ([[Marc Andreesen]], Netscape TechVision, 24 Jun 1998)
* {{en}} [http://inventors.about.com/library/inventors/bl_javascript.htm Brendan Eich and JavaScript] {{Webarchive|url=https://archive.
;Apprendimento
Line 1 064 ⟶ 1 062:
{{Framework per applicazioni web}}
{{Controllo di autorità}}
{{Portale|telematica|informatica|internet}}
[[Categoria:JavaScript| ]]
|