• Définition du JavaScript

Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage de programmation apporte des améliorations au langage HTML en permettant d'exécuter des commandes du côté client, c'est-à-dire au niveau du navigateur et non du serveur web (contrairement au PHP par exemple).

Ainsi le langage Javascript est fortement dépendant du navigateur appelant la page web dans laquelle le script est incorporé, mais en contrepartie il ne nécessite pas de compilateur, contrairement au langage Java, avec lequel il a longtemps été confondu.

• Définition du JavaScript par Wikipedia

JavaScript est un langage de programmation de scripts principalement utilisé pour les pages Web interactives. C'est un langage orienté objets à prototype, c'est à dire que les bases du langage et ses principales interfaces sont fournies par des objects qui ne sont pas instanciés au sein de classes mais qui sont chacun équipés de constructeurs permettant de générer leurs propriétés, et notamment une propriété de prototypage qui permet d'en générer des objets héritiers personnalisés.

Le langage est créé en 1995 par Brendan Eich, qui s'est inspiré de nombreux langages, notamment du Java mais en simplifiant la syntaxe pour les débutants. Le langage actuellement à la version 1.7 est une implémentation du standard ECMA-262. La version 1.8 est en développement et intégrera des éléments du langage python. La version 2.0 du langage est prévue pour intégrer la 4eme version du standard ECMA.

• L'Histoire du JavaScript

Javascript a été mis au point par Netscape en 1995. A l'origine, il se nommait LiveScript et était destiné à fournir un langage de script simple au navigateur Netscape Navigator 2. Il a, à l'époque, longtemps été critiqué pour son manque de sécurité, son développement peu poussé et l'absence de messages d'erreur explicites rendant dure son utilisation. Le 4 décembre 1995, suite à une association avec le constructeur Sun, Netscape rebaptise son langage LiveScript par Javascript (un clin d'oeil au langage Java développé par Sun, avec qui Netscape avait travaillé sur la machine virtuelle Java).

A la même époque, Microsoft mit au point le langage Jscript, un langage de script très similaire. Ainsi, pour éviter des dérives de part et d'autre, un standard a été défini pour normaliser les langages de script, il s'agit de l'ECMA 262, créé par l'organisation du même nom (ECMA, European Computer Manufactures Association).

• Les versions de JavaScript et les navigateurs ciblés

Javascript1.0 :: Netscape Navigator 2.0, Internet Explorer 3.0, Opera, Mozilla
Javascript1.1 :: Netscape Navigator 3.0, Opera, Mozilla
Javascript1.2 :: Netscape Navigator 4.0/4.05, Internet Explorer 4.0, Opera, Mozilla
Javascript1.3 :: Netscape Navigator 4.06, Internet Explorer 5.0, Opera, Mozilla
Javascript1.4 :: Netscape Navigator 6.0, Internet Explorer 6.0, Opera, Mozilla
Javascript1.5 :: Netscape Navigator 6.0, Mozilla

• Le JavaScript aujourd'hui

Utilisé dans la technologie Ajax

JavaScript est actuellement (novembre 2005) un des composants essentiels 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 parser dynamiquement les résultats de ce dernier via DOM. Internet Explorer est le premier à proposer ce composant, sous forme d'un ActiveX, et ce dès la fin des années 90. Ce n'est qu'en 2002 que les développeurs commencent massivement à l'utiliser, vu son adoption dans FireFox. Les versions d'Internet Explorer antérieures à la 7 ne géraient pas l'objet XHR tels que décrit dans les standards du W3C 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 interfaces riches permettant à l'internaute une plus grande interactivité avec la page web.

Utilisé avec le format Json

JSON (JavaScript Object Notation) est un format utilisant la notation des objets JavaScript pour transmettre de l'information structurée, dans une notation similaire, mais plus compacte et plus proche des langages de programation, que l'XML.

Malgré l'existence du DOM, et l'introduction récente de E4X dans la spécification du langage JavaScript, JSON reste le moyen le plus simple d'accéder à des données, puisque chaque flux JSON n'est rien d'autre qu'un objet JavaScript sérialisé. De plus, malgré son lien historique (et technique) avec JavaScript, JSON reste un format de données structurées, et peut-être utilisé facilement par tous les langages de programmation.

Toutes ces raisons sont probablement la cause de l'existence de l'acronyme AJAJ, en marge d'AJAX, où le format JSON est utilisé à la place du format XML, pour des résultats identiques.

• Evénements

Javascript permet de contrôler les événements se produisant dans le contexte d'un document. Ces événements sont :
  • onabort - s'il y a une interruption dans le chargement
  • onbeforeunload - lorsque l'on ferme la fenêtre du navigateur web
  • onblur - à la perte du focus
  • onchange - a la perte du focus si la valeur a changée
  • onclick - sur un simple clic
  • ondblclick - sur un double clic
  • onerror - en cas d'erreur pendant le chargement de la page
  • onfocus - l'élément prend le focus (ou devient actif)
  • onkeydown - lorsque l'on appuie sur une touche
  • onkeypress - lorsque l'on reste appuyé sur une touche
  • onkeyup - lorsque l'on relache une touche
  • onload - après la fin du chargement de la page
  • onmousedown - lorsque que l'on clique
  • onmousemove - lorsque l'on déplace la souris
  • onmouseout - lorsque la souris sort de l'élément
  • onmouseover - lorsque la souris est sur l'élément
  • onmouseup - lorsque l'on relache le bouton de la souris
  • onreset - quand on clique sur un bouton de type "reset" d'un formulaire
  • onresize - quand on redimensionne la fenetre
  • onselect - quand on sélectionne du texte
  • onsubmit - quand on clique sur un bouton de type "submit" d'un formulaire
  • onunload - quand on quitte la page en cours
• 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'utilisateur mais d'événements gérés par le serveur. Le premier navigateur mettant en oeuvre cette possibilité est Opera (version 9), ainsi qu'annoncé dans Event Streaming to Web Browsers.

• Différence entre JavaScript et Java

Attention à ne pas confondre ces deux langages, car ils sont très differents.

Le language JavaScript est un langage interprété (comme le scripting mIRC par exemple).
Le code est intégré dans la page HTML, et sera visible par tout le monde. Les liaisons sont dites dynamiques, car les références des objets sont vérifiées au chargement.

Le langage Java est un langage pseudo-compilé, c'est-à-dire que ce language est bel-et-bien compilé, mais qu'une machine virtuelle est chargée pour l'éxecution.
Pour une utilisation web, le code n'est pas dans la page html, l'applet Java (le programme) a été préalablement compilée, et une machine virtuelle permettant d'interpréter le pseudo-code doit être chargée en mémoire (du côté du client). Les lisaisons sont dites statiques, car les objets doivent exister au chargement (compilation).

Sources:
Wikipedia -
http://fr.wikipedia.org/wiki/Javascript
http://www.commentcamarche.net/javascript/jsintro.php3