| CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Sun, 18 Jan 2026 16:37:29 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20060913000000
location: https://web.archive.org/web/20060913000000/https://fr.wikipedia.org/wiki/Javascript
server-timing: captures_list;dur=0.635262, exclusion.robots;dur=0.083435, exclusion.robots.policy;dur=0.072150, esindex;dur=0.011337, cdx.remote;dur=14.189325, LoadShardBlock;dur=200.016720, PetaboxLoader3.datanode;dur=68.679457
x-app-server: wwwb-app227-dc8
x-ts: 302
x-tr: 241
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=3
set-cookie: wb-p-SERVER=wwwb-app227; path=/
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Sun, 18 Jan 2026 16:37:30 GMT
content-type: text/html; charset=utf-8
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Wed, 13 Sep 2006 00:00:00 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 32_0_20061120142210_crawl22-c/32_0_20061120181258_wiki-fr-wiki.arc.gz
server-timing: captures_list;dur=0.562661, exclusion.robots;dur=0.018673, exclusion.robots.policy;dur=0.008832, esindex;dur=0.010118, cdx.remote;dur=87.546516, LoadShardBlock;dur=216.288945, PetaboxLoader3.datanode;dur=256.804666, load_resource;dur=200.772026, PetaboxLoader3.resolve;dur=107.302674
x-app-server: wwwb-app227-dc8
x-ts: 200
x-tr: 589
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
JavaScript
{{sérieLangagesInfo}}
'''JavaScript''' est un Langage_de_programmation de type script, orienté objets à prototype, principalement utilisé dans les Pages_Web.
== Histoire ==
JavaScript a été créé en 1995 par Brendan_Eich pour Netscape_Communications_Corporation. Il est apparu pour la première fois dans les versions bêta de Netscape_Navigator 2.0.
D'abord appelé ''LiveScript'', il a été rebaptisé ''JavaScript'' et est décrit comme un complément à Java dans un communiqué de presse commun de Netscape et Sun_Microsystems, daté du 4_décembre 1995. 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 aujourd'hui.
Le propos de JavaScript est de manipuler de façon simple des objets, au sens informatique, fournis par une application hôte.
JavaScript est aujourd'hui défini par la norme ECMA-262, aussi connue sous l'appellation '''ECMAScript'''. La troisième édition d'ECMA-262 parue en 1999 correspond à la version 1.5 de JavaScript. Son implémentation par Microsoft porte quant à elle le nom de '''JScript'''.
Il est question d'une version JavaScript 1.6 supportée par la version 1.5 de Firefox.
SpiderMonkey est le nom de l'implémentation C du langage JavaScript utilisé dans Gecko, le moteur de rendu développé par Mozilla. SpiderMonkey est disponible sous la licence « MPL/GPL/LGPL tri-license ».
== Versions ==
Les versions du langage JavaScript ont pour origine les spécifications de la norme ECMA-262 définissant ECMAScript.
JavaScript est un sur-ensemble d'ECMAScript, plus les fonctionnalités suivantes :
==== 1.5 ====
Interpréteur basé sur les spécifications ECMA-262 3e édition.
====1.6====
Toutes les fonctionnalités de la version 1.5 plus:
* E4X
* Extension de l'objet Array
* Rapprochement des objets String et Array
pour en savoir plus (en)
====1.7====
Toutes les fonctionnalités de la version 1.6 plus:
* Générateurs (instruction yield)
* Itérateurs
* Définition de tableaux par compréhension (var evens = [i for (i in range(0, 21)) if (i% 2 == 0)];)
* Définition de portée locale (instruction let)
* Assignation déstructurante (Renvoi de valeurs multiples: [a,b] = maFonction())
pour en savoir (en)
====2.0====
Interpréteur basé sur les spécifications ECMA-262 4e édition.
== Utilisation ==
=== Dans une page Web ===
Du code JavaScript peut être intégré directement au sein des pages Web, pour y être exécuté sur le poste client. C'est alors le Navigateur_Web qui prend en charge l'exécution de ces petits bouts de programmes appelés scripts.
Généralement, JavaScript sert à contrôler les données saisies dans des formulaires HTML, ou à interagir avec le document HTML ''via'' l'interface DOM, fournie par le navigateur (on parle alors parfois d'HTML dynamique). Il est aussi utilisé pour réaliser des services dynamiques, parfois futiles ou strictement cosmétiques.
==== Incompatibilités ====
Netscape et Microsoft (avec ''JScript'' dans Internet_Explorer) 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. Le plus souvent, elles sont dues non à des problèmes de Portabilité du langage, les différentes implémentations respectant assez bien la norme ECMAScript, mais au support des différentes versions des modèles d'objets (DOM) fournis par les navigateurs.
Face à ce problème on utilise souvent une construction du type :
if (monObjet.methode) { ....
monObjet.methode();
}
On vérifie ainsi que ''monObjet'' a bien une implémentation de ''methode'' que l'on peut alors utiliser. Le plus souvent, si un navigateur ne gère pas la ''methode'' de ''monObjet'', il gère une méthode comparable ''methode2'', et on peut alors adapter le code JavaScript au navigateur qui l'exécute:
if (monObjet.methode) { ....
monObjet.methode();
}
else if (monObjet.methode2) { ....
monObjet.methode2();
}
==== AJAX ====
JavaScript est actuellement (novembre 2005) un des composants essentiel de la « technologie » AJAX (Asynchronous Javascript And XML). La plupart des applications AJAX utilisent l'objet XMLHTTPRequest (XHR) pour envoyer une requête à un script serveur, et passer dynamiquement les résultats de ce dernier via DOM. Les versions d'Internet Explorer antérieures à la 7 ne géraient pas l'objet XHR mais proposaient un contrôle ActiveX équivalent (à partir de la version 5), ce qui impose des ''fourches'' dans le code, tel que montré ci-dessus.
AJAX est une des technologies phares du mouvement Web_2.0 qui définit les clients riches permettant à l'internaute une plus grande interactivité avec la page web.
pour en savoir plus
==== JSON ====
JSON (JavaScript Object Notation) est un format utilisant la notation des objects JavaScript pour transmettre de l'information structurée.
==== Evènements ====
Javascript permet de contrôler les évènements se produisant dans le contexte d'un document. Ces évènements sont :
*onabort
*onblur
*onchange
*onclick
*ondblclick
*onerror
*onfocus
*onkeydown
*onkeypress
*onkeyup
*onload
*onmousedown
*onmousemove
*onmouseout
*onmouseover
*onmouseup
*onreset
*onresize
*onselect
*onsubmit
*onunload
(Voir la référence '''évènements''' du W3schools)
===== Evènements serveur =====
Le WHATWG travaille actuellement sur une technologie permettant d'associer des Gestionnaires_d'évènements avec des évènements initiés par le serveur. Ceux-ci permettent, de manière "propre", de concevoir des applications client-serveur, et de modifier le contenu d'une page non plus en fonction des actions de l'utilisateurs mais d'évènements gérés par le serveur.
Le premier navigateur implémentant cette possibilité est Opera (version 9), ainsi qu'annoncé dans Event Streaming to Web Browsers.
(Voir également En:COMET_(programming) pour une implémentation utilisant les moyens actuellement disponibles afin d'obtenir ce comportement.)
=== Autres utilisations ===
''JavaScript'' peut également être utilisé comme langage de programmation sur un Serveur_HTTP. Initialement, il é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 IIS de Microsoft. ''JScript'' peut d'ailleurs servir pour scripter une plateforme Microsoft_Windows via WSH.
On peut encore citer ActionScript, utilisé dans Macromedia_Flash qui est aussi une implémentation d'ECMAScript. Il permet de manipuler tous les éléments de l'animation, considérés comme des objets.
JavaScript est enfin utilisé dans la plateforme de développement Mozilla, sur laquelle sont basés plusieurs logiciels comme des navigateurs Web, pour des tâches relatives à l'interface utilisateur et de communication interne (Exemple : les extensions de Firefox et Thunderbird sont installées à base de fichiers Xpi utilisant le JavaScript).
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.
''JavaScript'' est aussi utilisé dans un contenu BIFS pour l'exploitation des événements. Pour cela la spécification BIFS fourni un nœud Script pour incorporer de l'ECMAScript.
Javascript peut être utilisé pour scripter les applications Adobe (Photoshop, illustrator...) ce qui permet d'avoir des script indépendant de la plateforme (Mac/Windows).
== Particularités du langage ==
=== Fonctions anonymes ===
Une fonction anonyme est, comme son nom l'indique, une fonction qui n'est pas identifiée par un nom.
Exemple 1:
var maFonction = function(message) {
alert(message);
}
maFonction('ceci est un test'); // affiche: ceci est un test
Exemple 2:
=== Closures ===
Les ''closure''{{en}} (Fermeture{{fr}}) sont une caractéristique aussi puissante que méconnue du langage ECMAScript.
Il s'agit de la possibilité, pour une expression, d'accéder à des variables qui ne sont plus à sa portée.
Exemple de closure:
function ajouteur(nombre) {
function ajoute(valeur) {
return valeur + nombre;
}
return ajoute;
}
var ajoute10 = ajouteur(10);
ajoute10(1); // retourne 11
Dans l'exemple ci-dessus, la fonction interne ''ajoute10'' a toujours accès à l'argument ''nombre'' malgré le fait que l'appel à la fonction ''ajouteur'' soit terminé.
=== Prototypes ===
Un prototype est un objet JavaScript qui est utilisé lors d'un échec de résolution d'un nom sur son objet parent.
Ce mécanisme est un type d'héritage : l'héritage par prototype.
function MonPrototype() {
this.a = 1;
this.b = function() {
return 'prototype';
}
this.e = 3;
}
function MaClasse() {
this.c = 2;
this.d = function() {
return 'classe';
}
this.e = 4;
}
MaClasse.prototype = new MonPrototype();
monObjet = new MaClasse();
monObjet.a; // 1
monObjet.b(); // 'prototype'
monObjet.c; // 2
monObjet.d(); // 'classe'
monObjet.e; // 4
=== Séparation des instructions ===
En C, chaque instruction se termine par un point-virgule. Cette pratique a fait du point-virgule une obligation dans de nombreux langages inspirés de la syntaxe du C.
JavaScript est plus souple, permettant à une fin de ligne de marquer implicitement la fin d'une instruction. Le but est de faciliter l'usage du langage aux personnes inexpérimentées en Programmation_informatique. Mais cette souplesse introduit des effets innattendus :
return
true;
Le parseur JavaScript comprend cela comme deux instructions :
return;
true;
alors que le programmeur pensait plus probablement à la seule instruction :
return true;
Les ouvrages de programmation avancés en JavaScript mettent en garde contre les effets innattendus de la déduction automatique de fin d'instruction et conseillent d'écrire un point-virgule à la fin de chaque instruction.Cet exemple est donné page 25 par : ''JavaScript - The Definitive Guide'', Fourth Edition, David Flanagan, éditions O'Reilly Media, Sebastopol, Californie.
=== E4X ===
Les versions récentes de l'implémentation du langage JavaScript de SpiderMonkey supportent l'E4X
Il s'agit d'un support natif de l'XML ainsi que d'un support natif d'une syntaxe d'accès aux données XML (sorte de XPath)
'''Exemple:'''
var xml =
'''Exemple d'accès aux données:'''
xml.popup.menuitem.(@value == 'New').@onclick
L'exemple ci-dessus récupère la fonction correspondant à l'action "New". Le résultat de l'évaluation est "CreateNewDoc()"
'''Autre exemple:'''
var item = 2;
xml.popup.menuitem[item].@value
Le résultat de l'évaluation est "Close"
== Voir aussi ==
===Références===
=== Liens externes ===
* {{en}}{{fr}} mozilla developer center (contenu très complet sous forme d'un wiki)
* {{en}} [irc://irc.mozilla.org/js Discussion about Javascript programming]
* {{fr}} Developpez.com - Cours et tutoriels JavaScript
* {{fr}} FAQ Javascript
* {{fr}} Forum Javascript : Le forum d'entraide des developpeurs Javascript francophones
* {{en}} Évolutions du langage
* {{en}} Interview de Marc Andreessen et Brendan Eich
* {{en}} [news://news.mozilla.org:mozilla.dev.tech.js-engine Newsgroup officiel du langage javascript] (était netscape.public.mozilla.jseng avant 22/01/2006)
* {{en}} closures javascript
* {{en}} swigJS (SWIG pour JavaScript)
* {{en}} exemples d'utilisation de Spidermonkey
=== Références JavaScript et JScript ===
{{Wikibooks|Programmation JavaScript|la programmation JavaScript}}
* {{en}} ECMAScript programming langage 3rd edition (Décembre 1999)
* {{en}} Core JavaScript Guide 1.5
* {{en}} Core Javascript Reference 1.5
* {{en}} Guide/Reference Javascript 1.3 & 1.4 (archives Netscape Devedge - JavaScript Central)
* {{en}} Guide/Reference Javascript 1.0, 1.1 & 1.2
* {{en}} Microsoft MSDN - JScript
=== Tutoriels ===
* {{ODP|/World/Français/Informatique/Programmation/Langages/JavaScript/|JavaScript}}
* {{en}} W3Schools - JavaScript Tutorial
* {{en}} Javascript Tutorials
* {{fr}} SELFHTML - JavaScript/DOM
* {{fr}} JavascriptFR : site de passionnés qui mettent en commun leurs connaissances - CodeS-SourceS
* {{en}} Douglas Crockford - Programmation objet avancée
* {{fr}} Mediabox - Forum d'entraide aux webmasters
* {{fr}} Cybwarrior: didacticiel complet
* {{es}} Mis Algoritmos - Scripts d'exemple
* {{fr}} La page dédiée à JavaScript sur mozilla developper center beta
* {{fr}} Traduction du site de référence Quirksmode.org
* jsConcise at sourceforge.net
Catégorie:Langage_de_script
Catégorie:Technologie_Web
Ar:جافا_سكريبت
Be:JavaScript
Bg:JavaScript
Ca:JavaScript
Cs:JavaScript
Da:JavaScript
De:JavaScript
En:JavaScript
Eo:JavaScript
Es:JavaScript
Et:JavaScript
Eu:JavaScript
Fi:JavaScript
He:JavaScript
Hu:JavaScript
Ia:JavaScript
Is:JavaScript
It:JavaScript
Ja:JavaScript
Ko:자바스크립트
Lt:JavaScript
Lv:JavaScript
Nl:JavaScript
No:JavaScript
Pl:JavaScript
Pt:JavaScript
Ro:JavaScript
Ru:JavaScript
Simple:JavaScript
Sk:JavaScript
Sl:JavaScript
Sv:JavaScript
Ta:ஜாவாஸ்கிரிப்டு
Th:จาวาสคริปต์
Tr:JavaScript
Uk:Джава_сценарій_(мова_програмування)
Vi:JavaScript
Zh:JavaScript