JavaScript

Un article de Wikipédia, l'encyclopédie libre.

JavaScript
Logo.
Image illustrative de l’article JavaScript

Date de première version Voir et modifier les données sur Wikidata
Paradigme Multi-paradigmes : script, orienté objet (orienté prototype), impératif, fonctionnel
Auteur Brendan Eich
Développeurs Netscape Communications Corporation, Mozilla Foundation
Dernière version 13 - ECMA-262 (Juin 2022)
Version en développement ECMAScript 2025 ()[2]Voir et modifier les données sur Wikidata
Typage dynamique, faible
Normes ECMA-262
ISO/CEI 16262
Dialectes JavaScript, JScript, ECMAScript
Influencé par AWK, Self, Scheme[3], Perl, C, C++, Java, Python
A influencé JScript, JScript .NET, Objective-J, TIScript
Implémentations SpiderMonkey, Rhino, KJS, JavaScriptCore, V8
Site web Mozilla
Extension de fichier jsVoir et modifier les données sur Wikidata

JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives et à ce titre est une partie essentielle des applications web. Avec les langages HTML et CSS, JavaScript est au cœur des langages utilisés par les développeurs web[4]. Une grande majorité des sites web l'utilisent[5], et la majorité des navigateurs web disposent d'un moteur JavaScript[6] pour l'interpréter.

JavaScript est aussi employé pour les serveurs Web[7] avec l'utilisation (par exemple) de Node.js[8] ou de Deno[9].

JavaScript a été créé en 1995 par Brendan Eich et intégré au navigateur web Netscape Navigator 2.0. L'implémentation concurrente de JavaScript par Microsoft dans Internet Explorer jusqu'à sa version 9 se nommait JScript, tandis que celle d'Adobe Systems se nommait ActionScript. JavaScript a été standardisé sous le nom d'ECMAScript en par Ecma International dans le standard ECMA-262. La version en vigueur de ce standard depuis juin 2022 est la 13e édition.

C'est un langage orienté objet à prototype : les bases du langage et ses principales interfaces sont fournies par des objets. Cependant, à la différence d'un langage orienté objets à classes, les objets de base ne sont pas des instances de classes. En outre, les fonctions sont des objets de première classe. Le langage supporte le paradigme objet, impératif et fonctionnel.

JavaScript est le langage possédant le plus large écosystème grâce à son gestionnaire de dépendances npm, avec plus de deux millions de paquets en [10].

Histoire[modifier | modifier le code]

Début[modifier | modifier le code]

Le langage a été créé en dix jours en mai 1995 pour le compte de la Netscape Communications Corporation par Brendan Eich, qui s'est inspiré de nombreux langages, notamment de Java mais en simplifiant la syntaxe pour les débutants[11]. Brendan Eich a initialement développé un langage de script côté serveur, appelé LiveScript, pour renforcer l'offre commerciale de serveur HTTP. Netscape travaille alors au développement d'une version orientée client de LiveScript.

Quelques jours avant sa sortie, Netscape change le nom de LiveScript pour JavaScript. Sun Microsystems et Netscape étaient partenaires, et la machine virtuelle Java de plus en plus populaire. Ce changement de nom servait les intérêts des deux sociétés. Le Netscape et Sun Microsystems annoncent[12] la sortie de JavaScript, décrit comme un complément à Java, dans un communiqué de presse commun. Cette initiative a contribué à créer auprès du public une certaine confusion entre les deux langages, proches syntaxiquement mais pas du tout dans leurs concepts fondamentaux, et qui perdure encore de nos jours[13].

En , Netscape met en œuvre le moteur JavaScript dans son navigateur web Netscape Navigator 2.0. Le succès de ce navigateur contribue à l'adoption rapide de JavaScript dans le développement web orienté client. Microsoft réagit alors en développant JScript, qu'il inclut ensuite dans Internet Explorer 3.0 en pour la sortie de son navigateur.

« JavaScript » devient une marque déposée par Sun Microsystems aux États-Unis en [14],[15].

Marque déposée[modifier | modifier le code]

"JavaScript" est une marque déposée d'Oracle Corporation aux États-Unis[16],[17]. À l'origine, la marque a été attribuée à Sun Microsystems le 6 mai 1997, puis transférée à Oracle lors de leur acquisition de Sun en 2009[18],[19],[20].

Standardisation[modifier | modifier le code]

Netscape soumet alors JavaScript à Ecma International pour standardisation.

Version 1 : Naissance du standard ECMA-262[modifier | modifier le code]

Les travaux débutent en et se terminent en , donnant naissance à la 1re édition du standard ECMA-262 qui spécifie le langage ECMAScript d'où le fait que le n° ou l'année de la version est souvent précédée par ECMAScript ou en abrégé ES. Le standard est ensuite soumis à l'ISO/CEI et publié en en tant que standard international ISO/CEI 16262.

Version 2 : Homogénéisation avec le standard ISO/CEI 16262[modifier | modifier le code]

Des changements rédactionnels sont apportés au standard ECMA-262 pour le conformer au standard international ISO/CEI 16262, aboutissant à la 2e édition du standard ECMA-262 en .

Version 3 : Améliorations et constitution du langage[modifier | modifier le code]

La 3e édition du standard ECMA-262 introduit :

  • des expressions rationnelles plus puissantes ;
  • une amélioration de la manipulation des chaînes de caractères ;
  • de nouvelles instructions de contrôle ;
  • une gestion des exceptions avec les instructions try/catch ;
  • le formatage des nombres.

Elle est publiée par Ecma International en puis soumise à l'ISO/CEI qui publie le standard international ISO/CEI 16262:2002 en . Après la publication de la 3e édition s'ensuit une adoption massive par tous les navigateurs Web.

Version 4 : L'étape inachevée[modifier | modifier le code]

Un travail important est entrepris pour développer la 4e édition du standard ECMA-262, mais il ne sera pas achevé et cette édition ne verra jamais le jour. Cependant une partie du développement effectué sera intégrée à la 6e édition.

Version 5 : Désambiguïsation et nouvelles fonctionnalités[modifier | modifier le code]

La 5e édition du standard ECMA-262 clarifie les ambiguïtés de la 3e édition et introduit les accesseurs, l'introspection, le contrôle des attributs, des fonctions de manipulation de tableaux supplémentaires, le support du format JSON et un mode strict pour la vérification des erreurs. Elle est publiée par Ecma International en puis soumise à l'ISO/CEI qui apporte des corrections mineures et publie le standard international ISO/CEI 16262:2011 en . L'édition 5.1 du standard ECMA-262 reprenant à l'identique le texte du standard international ISO/CEI 16262:2011 est publiée à la même date.

Version 6 (ES6) - ECMAScript 2015 : Amélioration du support et des fonctionnalités[modifier |