Le numerose versioni del linguaggio JavaScript che si sono susseguite nel tempo hanno apportato numerosi cambiamenti. Oggi non tutti gli utenti usano lo stesso browser (oppure la stessa versione) e per questo motivo nascono problemi di compatibilità con i diversi motori di rendering (Vedere Babel ).
Nelle nuove versioni alcuni errori non vengono corretti per retro-compatibilità. Queste parti del JavaScript sono dette Legacy JavaScript.
Il linguaggio Javascript è nato per svolgere semplici compiti nel browser, come quello di modificare il DOM (Modello ad Oggetti del Documento)
Il linguaggio Javascript ha le seguenti caratteristiche:
- interpretato
- tipi di dato dinamici
- debolmente orientato agli oggetti
- gestione degli eventi
- oggetti funzione (funzionale)
Cosa manca in Javascript?
- namespace
- interface
- classi statiche
- proprietà statiche
- altro?
Caratteristiche dell’ambiente di esecuzione (non caratteristiche del linguaggio in sè):
- single thread
- coda di messaggi (da eseguire)
- stack di esecuzione per ogni funzione associata al messaggio
- operazioni asincrone (non bloccanti)