FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://fr.wikipedia.org/wiki/JavaScript

JavaScript — Wikipédia

Contents
        Version 3 : Améliorations et constitution du langage
        Version 7 - ECMAScript 2016 : une adaptation permanente aux outils du web
        Incompatibilité
        Autres supports
Particularités du langage
    Liaison des identifiants
    Déclaration des variables
    Variables globales

Ne doit pas être confondu avec Java (langage).

ISO/CEI 16262"},"dialectes":{"wt":"JavaScript, [[JScript]], [[ECMAScript]]"},"influencé par":{"wt":"[[Awk | AWK]], [[Self (langage)|Self]], [[Scheme]]<ref>[[Douglas Crockford]], dans une conférence à [[Yahoo!]] [https://www.youtube.com/watch?v=RO1Wnu-xKoY&list=PLPP7h_fnEnKIbyZjc5NrcLXZoRqZF4wUW Crockford on JavaScript - Chapter 2: And Then There Was JavaScript], se limite à Java, Scheme et Self comme influence direct de JavaScript</ref>, [[Perl (langage)|Perl]], [[C (langage)|C]], [[C++]], [[Java (langage)|Java]], [[Python (langage)|Python]]"},"a influencé":{"wt":"[[JScript]], [[JScript .NET]], [[Objective-J]], TIScript"}},"i":0}}]}'>

JavaScript
Logo.
Image illustrative de l’article JavaScript

Date de première version 4 décembre 1995 (30 ans, 342 jours)
Paradigmes script, orienté objet (orienté prototype), impératif, fonctionnel
Auteur Brendan Eich
Développeurs Netscape Communications Corporation, Mozilla Foundation
Dernière version ECMAScript 2026 (ECMA-262, 17 édition) (Juin 2026)
Version en développement ECMAScript 2025 (27 mars 2024)

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. Une grande majorité des sites web l'utilisent et la majorité des navigateurs web disposent d'un moteur JavaScript pour l'interpréter.

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

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 juin 2026.


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 août 1996 pour la sortie de son navigateur.

« JavaScript » devient une marque déposée par Sun Microsystems aux États-Unis en novembre 1996 et se terminent en juin 1998.

Version 3 : Améliorations et constitution du langage

modifiermodifier le code

La Version 4 : L'étape inachevéemodifiermodifier le code

Un travail important est entrepris pour développer la 5 édition du standard ECMA-262 clarifie les ambiguïtés de la 5 édition, sa publication en 6 édition est d'apporter un meilleur support pour les applications d'envergure, la création de bibliothèques et l'utilisation d'ECMAScript comme cible de compilation pour d'autres langages. Cette édition introduit notamment les modules, les classes, la portée lexicale au niveau des blocs, les itérateurs et les générateurs, les promesses pour la programmation asynchrone, les patrons de déstructuration, l'optimisation des appels terminaux, de nouvelles structures de données (tableaux associatifs, ensembles, tableaux binaires), le support de caractères Unicode supplémentaires dans les chaînes de caractères et les expressions rationnelles et la possibilité d'étendre les structures de données prédéfinies. À partir de cette version, l'intitulé officiel de la version est ECMAScript 2015 (année de parution).

Version 7 - ECMAScript 2016 : une adaptation permanente aux outils du web

modifiermodifier le code

La clic ici</button>. Le code JavaScript alert('clic !')sera exécuté quand le bouton sera cliqué.

  • Dans des balises <script> : <script>//ici, du code JavaScript peut être entré</script>
  • Dans des fichiers externes : <script src="chemin/ver/mon/fichier.js"></script>
  • Incompatibilité

    modifiermodifier le code

    Netscape et Microsoft (avec JScript dans Internet Explorer jusqu'à la version 9) ont développé leur propre variante de ce langage qui chacune supporte presque intégralement la norme ECMAScript mais possède des fonctionnalités supplémentaires et incompatibles, rarement utilisées dans le cadre de la programmation de pages web. Pourtant les scripts JavaScript sont souvent la source de difficultés. Elles sont plus souvent dues à la prise en charge des différentes versions des modèles d'objets (DOM) fournis par les navigateurs, qu'à des problèmes de portabilité du langage (les différentes mises en œuvre respectant relativement bien la norme ECMAScript).

    Pour vérifier dynamiquement si un objet (dans la version JavaScript utilisée lors de l'interprétation) possède bien une méthode, on utilise souvent une construction du type :

    janvier 2009. Le projet CommonJS n'est pas affilié avec le groupe de l'Ecma International TC39 travaillant sur ECMAScript, mais certains membres du TC39 participent au projet.

    Historiquement, JavaScript était proposé sur les serveurs de Netscape, par la suite distribués par Sun Microsystems sous les noms iPlanet et Sun ONE, mais JScript peut aussi être utilisé sur les serveurs Internet Information Services de Microsoft. JScript peut d'ailleurs servir pour scripter une plate-forme Microsoft Windows via Windows Scripting Host (WSH).

    Il existe par ailleurs des projets indépendants et Open Source d'implémentation de serveurs en JavaScript. Parmi eux, on pourra distinguer Node.js, une plateforme polyvalente de développement d'applications réseau se basant sur le moteur JavaScript V8 et les spécifications CommonJS.

    Autres supports

    modifiermodifier le code

    ActionScript, utilisé dans Adobe Flash, est aussi une mise en œuvre d'ECMAScript. Il permet de manipuler tous les éléments de l'animation, considérés comme des objets. JavaScript peut être utilisé pour scripter d'autres applications Adobe (Photoshop, Illustrator, …), ce qui permet d'avoir des scripts indépendants de la plate-forme (Microsoft Windows, Apple OSX, Linux…).

    JavaScript est enfin utilisé dans la plate-forme de développement de Mozilla, sur laquelle sont basés plusieurs logiciels comme des navigateurs Web, pour des tâches relatives à l'interface utilisateur et à la communication interne (ex. : les extensions de Firefox et Thunderbird sont installées à base de fichiers XPI utilisant le JavaScript. Voir aussi Prefs.js).

    Depuis 2004, l'objet js de l'environnement de programmation graphique Max/MSP permet d'ouvrir une fenêtre pour programmer en JavaScript, au sein même d'un programme Max/MSP.

    Les logiciels ImageJ et CaRMetal sont munis de consoles JavaScript, qui leur permettent d'écrire des scripts dans un contexte graphique. Algobox utilise JavaScript pour la syntaxe de ses fonctions. H5P se sert de HTML5 et Javascript pour faciliter la création de contenus interactifs en ligne.

    JavaScript est aussi utilisé dans un contenu BIFS pour l'exploitation des événements. Pour cela la spécification BIFS fournit un nœud Script pour incorporer de l'ECMAScript.

    La suite bureautique OpenOffice.org permet d'utiliser JavaScript comme langage de macros.

    JavaScript est aussi utilisable en shell ou avec les gadgets Vista.

    Le format graphique vectoriel SVG incorpore le langage ECMAscript pour créer des graphiques interactifs directement exploitable dans un navigateur.

    Enfin, JavaScript est également utilisé pour dynamiser le QML de la bibliothèque graphique Qt.

    Particularités du langage

    modifiermodifier le code

    Liaison des identifiants

    modifiermodifier le code

    En JavaScript, toutes les expressions (identifiants, littéraux et opérateurs et leurs opérandes) sont de type référence (comme en Python et Ruby, mais à la différence du C++, Java, C#, Swift et OCaml qui possèdent aussi des expressions de type valeur), c'est-à-dire que leur évaluation ne produit pas une donnée directement mais une référence vers une donnée. La référence se nomme le référent de l’expression et la donnée le référé de l’expression.

    En JavaScript, l'affectation d'une variable modifie son référent, autrement dit, elle lie la variable à une autre donnée : on parle de changement de liaison de la variable (en anglais variable rebinding).

    varmaVariable1=0;// définition de la variable parente // 1. Affectation functionmaFonction1(){// fonction enfant maVariable1=1;// affectation de la variable parente } alert(maVariable1);// affiche 0 maFonction1();// affecte la variable parente alert(maVariable1);// affiche 1 // 2. Masquage varmaVariable2=0;// définition de la variable parente functionmaFonction2(){// fonction enfant varmaVariable2;// déclaration de la variable enfant masquant la variable parente maVariable2=1;// affectation de la variable enfant } alert(maVariable2);// affiche 0 maFonction2(); alert(maVariable2);// affiche 0

    Déclaration des variables

    modifiermodifier le code

    En JavaScript, quel que soit le lieu de la déclaration d'une variable dans sa portée lexicale, la variable est créée au début de l'évaluation de sa portée lexicale.

    Les variables déclarées avec le mot-clé var sont en plus pré-initialisées à la valeur undefined lors de leur création, et donc accessibles dès le début de leur portée lexicale. On parle de remontée de la variable (variable hoisting en anglais) car cela se passe comme si la déclaration de la variable était remontée au début de sa portée lexicale :

    varmaVariable=2; varmaVariable=9;

    Variables globales

    modifiermodifier le code

    En JavaScript, il existe plusieurs façons de déclarer une variable globale, et certaines interagissent avec l'objet global (nommé window dans les navigateurs) :

    return; true;

    Les expressions de fonctions immédiatement invoquées lorsque le programmeur s'appuie sur les fins d'instruction implicites rencontrent également ce genre de problème avec l'usage des parenthèses :

    (en) Exemples d'utilisation avancée du langage JavaScript
  • Open Directory - JavaScript
  • JavaScript éloquent, Une introduction au langage de programmation JavaScript et à la programmation en général.
  • ↑ « ECMAScript® 2025 Language Specification », 27 mars 2024 (consulté le 17 avril 2024)
  • ↑ Douglas Crockford, dans une conférence à Yahoo! Crockford on JavaScript - Chapter 2: And Then There Was JavaScript, se limite à Java, Scheme et Self comme influence direct de JavaScript
  • ↑ (en) « Usage Statistics of JavaScript for Websites, March 2018 », sur w3techs.com (consulté le 3 octobre 2018)
  • ↑ (en) Node.js Foundation, « Node.js », sur Node.js (consulté le 5 août 2017)
  • ↑ « nodejs », sur nodejs.org (consulté le 5 mars 2024)
  • ↑ TechVision: Innovators of the Net: Brendan Eich and JavaScript
  • ↑ « Sun Trademarks », 28 mai 2010 (version du 28 mai 2010 sur archive.org)
  • ↑ « Oracle rachète Sun pour 7,4 milliards de dollars », Les Échos, 21 avril 2009
  • ↑ « Making JavaScript Safe for Advertising », ADsafe (consulté le 26 mai 2013)
  • ↑ (en-US) « Window », sur Mozilla Developer Network (consulté le 5 août 2017)
  • ↑ (en-US) « Storing the information you need — Variables - Learn web development | MDN », sur developer.mozilla.org, 9 mai 2023 (consulté le 22 juin 2023)
  • ↑

  • View original on Wikipedia | Back | FazBrowse Home