Dans cette leçon nous présentons plusieurs généralités qui vous permettront de mieux comprendre les concepts introduits dans les leçons subséquentes. Nous survolerons rapidement les sujets suivants:
Le langage JavaScript n'est pas compilé i.e. qu'il n'y a jamais de phase de traduction en langage machine (fichier .EXE). Il est plutôt interprété directement par un autre programme comme par exemple:
un navigateur (Internet Explorer, Netscape Navigator, Opéra, etc)
WSH (Window Scripting Host) à l'intérieur de Window
le serveur WEB lorsqu'on l'utilise du coté serveur.
Contrairement à ses ancêtres: C, C++ et Java, JavaScript n'est pas un langage strictement typé. Il ne fait pas beaucoup de différences entre un nombre ou une chaîne de caractères ou entre un tableau et un objet. Cela semble bizarre à première vue mais nous verrons qu'il y a certains avantages à ce genre de "délinquance".
Bien que possédant plusieurs types et objets intrinsèques (natifs), JavaScript doit, pour être d'une utilité pratique, agir, créer ou modifier des objets fournis par le programme hôte.
Dans ce cours, nous nous limiterons à la manipulation des objets fournis par les navigateurs.
Bien que l'on associe souvent JavaScript au langage Java, cela n'a qu'une connotation de ressemblance syntaxique et une complémentarité avec les applets Java. Sans faire la genèse des langages de programmation voici quand même quelques événements importants:
C, la version "déboguée" de ABC et de B fut introduit par Kernighan et Ritchie à la fin des années 70 pour faciliter la programmation système. C'est un langage assez strict qui facilite la programmation impérative (voir paragraphe suivant).
C++ est un descendant direct de C qui fut créé par Bjarne Stroustrup au début des années 80. Il supporte la programmation orientée objet dans ses bases les plus pratiques.
Le langage Java fut développé par Sun Microsystems pour améliorer le support des concepts théoriques de la programmation orientée objet.
LiveScript a été conçu par Netscape pour implanter la programmation orientée objet (POO) pour le WEB. Il fut ensuite renommé JavaScript à cause de son affinité avec Java.
Le langage a été ensuite normalisé par le W3C sous le nom de ECMAScript.
De son coté, la compagnie Microsoft ne reste pas inactive en produisant son JScript, une version propriétaire de JavaScript.
Dernièrement, Microsoft à mis en marché son langage C# (lire C sharp) qui, à mon humble point de vue est un descendant direct des autres et implante aussi bien sinon mieux les concepts modernes de la POO.
Dans ce cours nous nous contenterons de vous présenter le langage JavaScript tel que supporté par le navigateur le plus répandu: Internet Explorer. Nous pourrons toutefois discuter de certaines caractéristiques de Netscape Navigator.
![]() |
|
|
![]() |
![]() |
|
|
![]() |
|
![]() |
|
http:// | Document hypertexte |
---|---|
file:// | Fichier local |
mailto: | Envoi d'un message électronique |
ftp:// | Transfert de fichiers |
telnet:// | Branchement sur un autre ordinateur |
news: | Babillards électroniques |
gopher:// wais:// nntp:// | Autres vieux protocoles |
HTML signifie «Hyper Text Markup Language». C'est une application SGML («Standard Generalized Markup Language») conforme au standard ISO 8879. Il est décrit entièrement dans la recommandation du W3C (Le World Wide WEB Consortium).
Une entité est un nom symbolique ou numérique donné à un caractère spécial. Par exemple: l'entité é donnera un é tandis que l'entité © donnera le symbole ©. On pourrait aussi avoir le Þ (THORN islandais). Si votre navigateur est vraiment moderne, l'entité € donnera €, l'euro bien connu maintenant. L'annexe B de votre manuel de référence vous donne quelques explications supplémentaires sur les entités de caractères. J'ai aussi produit une table assez complète des différents codes numériques des entités de caractères.
Une balise est un code représentant un élément du langage. On utilise un mot (ou une séquence de mots) délimité par les caractères "<" et ">". Par exemple: <HTML>, <TITLE>, <BR>, <font color=red>, </Title>, </P>, etc. Vous remarquerez que la case des caractères n'a pas d'importance.
Un marqueur est une balise simple comme une fin de paragraphe (<BR>) par exemple.
Un conteneur est composé d'une balise d'ouverture ou balise initiale (<xYZ>) et d'une balise de fermeture ou balise terminale (</xYZ>).
Un élément représente la structure d'une partie d'un document HTML. C'est soit un marqueur simple, soit une partie du document dans un conteneur. Par exemple: <TITLE>Voici un beau titre pour mon document</TITLE>. Si un élément n'est pas reconnu par le navigateur, il sera simplement ignoré; aucun message d'erreur ne sera donné.
Un attribut est une propriété rattachée à un élément qui en décrira certaines caractéristiques. Par exemple: <div ALIGN=right> ou <font COLOR=red>.
Un commentaire est une portion de texte qui sera ignoré par le navigateur. Par exemple: <!-- Ce bout de texte sera complètement ignoré du navigateur. -->. On remarquera les balises de début et de fin un peu spéciales. Certains programmes de service utilisent les commentaires.
Pour la plupart, des navigateurs sont incapables de traiter directement le SGML. Nous laissons ça aux théoriciens de la chose!
En guise de rappel voici un aide-mémoire des balises HTML.
La programmation consiste à créer des instructions qui indiquent comment obtenir les résultats attendus à partir des données fournies ou comment réagir à certains événements.
Nous pouvons définir plusieurs genres de programmation:
classique (impérative ou descriptive)
de service (comme dans les guichets bancaires)
en temps réel (pilotage d'un F-18)
événementielle (pour réagir à certains événements temporels ou extérieurs)
Nous y reviendrons plus tard.
Dans le cas spécifique des pages WEB, nous pourrons donc programmer le comportement du navigateur en réaction à des événements comme le chargement d'une page ou un "clique" de souris par exemple ou bien valider les données saisies dans un formulaire.
JavaScript est un langage de script. Il est donc interprété par un programme qu'on nomme moteur de script.
Par les navigateurs pour les pages WEB (coté client)
Par le serveur WEB pour le JavaScript coté serveur
Par WSH (Window Scripting Host) pour le système Window
Il existe plusieurs saveurs du langage:
JavaScript (Introduit par Netscape)
ECMAScript (La norme #262 de ECMA (Europeen Computers Manufacturers Association)
JScript (Introduit par Microsoft)
JavaScript se subdivise en trois parties:
le langage de base
les extensions coté client
les extensions coté serveur
Programme | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | |
---|---|---|---|---|---|---|---|
Navigator | 2.0x | Oui | |||||
3.0x | Oui | ||||||
4.0-4.05 | Oui | ||||||
4.06-4.61 | Oui | ||||||
5.0 | Oui | ||||||
7.0 | Oui | ||||||
Explorer | 3.0x | Oui | ± | ||||
4.0x | Oui | ||||||
5.0x | Oui | ± | |||||
6.0x | Oui | ± | ± |
Il est possible d'insérer des instructions JavaScript directement dans les balises HTML. Par exemple:
<a href="javascript:alert("Allo!");">ici</a> |
Nous avons utilisé un protocole spécial qui permet d'introduire du code JavaScript dans un hyperlien. Pour le voir en action cliquez ici.
On peut aussi écrire le code dans un conteneur <SCRIPT> et utiliser un événement pour en provoquer l'exécution comme dans cette exemple. Vous n'avez qu'à cliquer dans le rectangle blanc.
<script> function bonjour() { alert("Bonjour"); } </script> |
Il est aussi possible d'écrire le code dans un fichier indépendant et de l'obtenir avec:
<script src="fichier.js"></script>
Il est alors inutile d'utiliser le conteneur <SCRIPT>. Le fichier contiendra du JavaScript pur.
L'attribut LANGUAGE permet de spécifier la version désirée. Par exemple:
<script language="JavaScript1.4"> ... </script>
Les chapitres 1 et 2 de votre manuel.