JavaScript (aliasJS) est un langage deprogrammation utilisé initialement par les navigateurs web, dont le champ d’application s’est progressivement étendu aux serveurs web et aux applications graphiques. Il partage avecJava une syntaxe inspirée du langage C, mais leurs similitudes s'arrêtent là. Il fut créé parNetscape sous le nomLiveScript en 1996.
Le noyau du JavaScript est aujourd'hui défini par le standard ECMA 262[1], connu aussi sous l'appellationECMAScript (ES).
Les fichiers JavaScript possèdent l'extension .js, mais on trouve aussi des .ts correspondant auTypeScript. Il s'agit d'un sur-ensemble syntaxique strict de JavaScript créé parMicrosoft en 2012 pour améliorer et de sécuriser le JS[2].
Intégré directement au sein des pages Web, le JavaScript est alors exécuté par le client Web (par opposition au serveur Web) : c'est le navigateur Web qui prend en charge l'exécution de ces bouts de programme, manipulant leur environnement, appelés scripts.
Généralement, JavaScript sert à interagir avec le documentHTML et ses feuilles de style CSS via l'interface DOM (Document Object Model ; on parle de HTML dynamique ouDHTML pour désigner cette intégration des trois langages). JavaScript est ainsi utilisé pour réaliser des services dynamiques en communication avec le serveur Web, la plupart du temps grâce à une technique appelée (abusivement)AJAX.
Il est souvent source de difficultés dues aux nombreuses versions différentes de l'interpréteur et du DOM, dépendantes des éditeurs denavigateurs. Chacun ayant développé sa propre variante supportant (presque) le standard ECMAScript, un ou deux des deux standards DOM, et possédant de surcroît des fonctionnalités supplémentaires et incompatibles.
Voici les différentes versions du JavaScript par année[3] :
Côté client, le langage est compilé par les navigateurs : ils parsent le script, créent l'arbre de la syntaxe abstraite (AST), l'optimisent, génèrent ducode à octets enjuste-à-temps (JIT) à partir de l'arbre, puis lecode machine spécifique au hardware avec cela, et enfin l'exécute.
Les principaux moteurs de JS sont :