Un article de Wikipedia.y-project.com.
(Redirigé depuis
Javascript)
JavaScript est un langage de programmation de type script, utilisant les objets, 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 language JavaScript utilisé dans Gecko, le moteur de rendu développé par mozilla. SpiderMonkey est disponible sous la license "MPL/GPL/LGPL tri-license"
[] 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, le problème venant du support des différentes versions des modèles d'objet (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 d'AJAX. C'est grâce à l'utilisation combinée de DOM et de ce langage qu'est interprété le fichier XML envoyé par le serveur et sont effectuées les modifications de la page Web.
[] JSON
JSON ( JavaScript Object Notation ) est un format utilisant la notation des objects JavaScript pour transmettre de l'information structurée.
[] 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 fenetre pour programmer en javascript, au sein même d'un programme Max/MSP.
[] 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:
<html>
<body onload="setTimeout( function(){ alert( 'chargement de la page termine il y a une seconde et demi' ) }, 1500 );">
</body>
</html>
[] Closures
Les closure(en) ( fermeture(fr) ) sont une caracteristique aussi puissante que méconnue du language ECMAScript.
Il s'agit de la possibilité, pour une expression, d'acceder à 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 l'é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
[] Lien externe
[] Références JavaScript et JScript
[] Tutoriels
lv:JavaScript
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/javascript