Introduction au langage Javascript
Introduction au langage Javascript
1
SOMMAIRE
[Link] ...................................................................................................................... 8
[Link] langage Javascript ........................................................................................................ 8
1.2.Côté pratique ..................................................................................................................... 8
1.3.Détails techniques ............................................................................................................. 8
[Link] LANGAGE ........................................................................................................................ 8
[Link] du code ....................................................................................................... 8
[Link]écificités du langage ..................................................................................................... 9
[Link] STRUCTURES DE DONNEES ..................................................................................... 9
[Link] données constantes ..................................................................................................... 9
[Link] variables en JS .......................................................................................................... 10
[Link] types de variable ................................................................................................ 10
[Link] déclaration et l’affectation ................................................................................... 10
3.2.3. Les noms réservés .................................................................................................... 11
[Link] sur les chaînes de caractères ............................................................. 11
[Link] globales et variables locales ..................................................................... 12
4. LES OPERATEURS ............................................................................................................ 12
[Link] opérateurs de calcul .................................................................................................. 12
[Link] opérateurs de comparaison ....................................................................................... 12
[Link] opérateurs associatifs ............................................................................................... 13
[Link] opérateurs logiques................................................................................................... 13
[Link] opérateurs d'incrémentation ..................................................................................... 13
5. LES FONCTIONS ............................................................................................................... 14
5.1.Définition ........................................................................................................................ 14
5.2.Déclaration ...................................................................................................................... 14
[Link] fonctions dans l’en-tête ............................................................................................ 14
5.4.L'appel d'une fonction ..................................................................................................... 14
[Link] manipulant des valeurs ................................................................................... 14
[Link] une valeur à une fonction .............................................................................. 14
[Link] une valeur ................................................................................................ 15
[Link] locales et variables globales ........................................................................... 15
6. LES STRUCTURES DE CONTROLE................................................................................ 16
[Link] structures algorithmiques ......................................................................................... 16
[Link] structure séquentielle ................................................................................................. 16
[Link] instructions conditionnelles ...................................................................................... 16
6.3.1.L’expression if … else ................................................................................................. 16
6.3.2.L’expression () ? : ........................................................................................................ 17
[Link] instructions itératives ............................................................................................... 17
6.4.1.L’itération for ........................................................................................................... 17
6.4.2.L’itération while ....................................................................................................... 18
[Link] une boucle ................................................................................................... 18
6.5.1.L’instruction break ................................................................................................... 18
6.5.2.L’instruction continue............................................................................................... 18
[Link]........................................................................................................................... 19
7. LES BOITES DE MESSAGE .............................................................................................. 19
7.1.Généralités ...................................................................................................................... 19
[Link]() .............................................................................................................................. 19
[Link]() .......................................................................................................................... 19
[Link]() ........................................................................................................................ 20
[Link] : Confirmation et vérification........................................................................... 20
8. NOTION OBJET.................................................................................................................. 20
[Link] concept objet .............................................................................................................. 20
2
[Link]éation d’un objet ......................................................................................................... 21
[Link]ès aux propriétés et aux méthodes ............................................................................ 21
8.4.L’objet this ...................................................................................................................... 21
9. LES FORMULAIRES.......................................................................................................... 21
9.1.Généralités ...................................................................................................................... 21
[Link]ésentation .............................................................................................................. 21
[Link] balise form ........................................................................................................... 22
9.2. Champ de texte .............................................................................................................. 22
[Link] de texte ........................................................................................................... 22
[Link] de texte ............................................................................................................ 23
[Link] password....................................................................................................... 23
[Link] à sélectionner ........................................................................................................ 24
[Link] radios .......................................................................................................... 24
[Link] .................................................................................................................. 25
[Link] de sélection............................................................................................................. 25
[Link] ............................................................................................................................. 26
[Link] simple ........................................................................................................... 26
[Link] reset .............................................................................................................. 27
[Link] submit........................................................................................................... 27
[Link]ôle caché ................................................................................................................ 28
[Link] formulaire complet .................................................................................................... 28
[Link] objet du formulaire ................................................................................................... 29
[Link]........................................................................................................................... 30
10. LES EVENEMENTS ...................................................................................................... 30
10.1.Généralités .................................................................................................................... 30
[Link]ésentation ............................................................................................................ 30
[Link] ...................................................................................................... 30
[Link] clic de souris ............................................................................................................ 31
[Link] chargement ............................................................................................................... 31
[Link] ........................................................................................................................ 31
[Link] ................................................................................................................... 32
[Link] ........................................................................................................................ 32
[Link] ....................................................................................................................... 32
[Link] passage de la souris .................................................................................................. 32
[Link] ............................................................................................................. 32
[Link] ............................................................................................................... 33
[Link] focus ......................................................................................................................... 33
[Link] ....................................................................................................................... 33
[Link] ......................................................................................................................... 33
[Link] changements ........................................................................................................... 34
[Link] sélection ................................................................................................................... 34
10.8.L’envoi .......................................................................................................................... 34
[Link] reset .......................................................................................................................... 35
10.10.L’utilisation de l’objet document ................................................................................ 35
[Link] concret.......................................................................................................... 35
[Link]....................................................................................................................... 36
[Link] bouton .............................................................................................................. 36
[Link] phrase............................................................................................................... 36
11. L’OBJET ARRAY ............................................................................................................. 36
11.1.Généralités .................................................................................................................... 36
[Link]éation et affectation d’un tableau .............................................................................. 37
11.2.1 Création d’un tableau.............................................................................................. 37
11.2.2 Affectation d’un tableau ......................................................................................... 37
3
[Link]ès aux données d’un tableau ................................................................................... 37
[Link] à 2 dimensions ................................................................................................. 38
[Link]étés et méthodes .................................................................................................. 38
[Link]été.................................................................................................................. 38
11.5.2.Méthodes ................................................................................................................ 39
[Link] concret............................................................................................................ 39
[Link]......................................................................................................................... 40
[Link] OBJETS DU NAVIGATEUR..................................................................................... 40
12.1.Généralités .................................................................................................................... 40
[Link]................................................................................................................. 40
13.L’OBJET NAVIGATOR .................................................................................................... 41
[Link] propriétés de navigator ........................................................................................... 41
[Link] méthodes de navigator............................................................................................ 42
[Link] objets de navigator ................................................................................................. 42
[Link] ........................................................................................................................ 42
14.L’OBJET WINDOW........................................................................................................... 43
[Link] propriétés de window ............................................................................................. 43
[Link] méthodes de window .............................................................................................. 43
14.2.1.Généralités .............................................................................................................. 43
[Link] des méthodes.................................................................................................. 44
[Link] ................................................................................................................ 44
[Link] évènements de window .......................................................................................... 46
[Link] objets de window.................................................................................................... 47
14.4.1.L’objet frames......................................................................................................... 47
14.4.2.L’objet parent ......................................................................................................... 47
14.4.3.L’objet top .............................................................................................................. 47
14.4.4.L’objet opener......................................................................................................... 47
14.4.5.L’objet history ........................................................................................................ 48
14.4.6.L’objet location....................................................................................................... 48
14.4.7.L’objet screen ......................................................................................................... 48
14.4.8.L’objet event ........................................................................................................... 49
14.4.9.L’objet external....................................................................................................... 49
[Link] concret............................................................................................................ 49
[Link]......................................................................................................................... 49
15.L’OBJET DOCUMENT ..................................................................................................... 50
[Link] propriétés de document .......................................................................................... 50
[Link] méthodes de document ........................................................................................... 51
[Link] évènements de document ....................................................................................... 52
[Link] objets de document ................................................................................................. 52
15.4.1.L’objet all ............................................................................................................... 52
15.4.2.L’objet layers .......................................................................................................... 52
15.4.3.L’objet forms .......................................................................................................... 52
15.4.4.L’objet anchors ....................................................................................................... 53
15.4.5.L’objet images ........................................................................................................ 53
15.4.6.L’objet applets ........................................................................................................ 53
15.4.7.L’objet plugins ........................................................................................................ 53
15.4.8.L’objet frames......................................................................................................... 53
[Link]......................................................................................................................... 53
[Link] OBJET DU NOYAU JAVASCRIPT .......................................................................... 54
16.1.Généralités .................................................................................................................... 54
[Link] précisions ...................................................................................................... 54
17.L’OBJET MATH ................................................................................................................ 54
[Link] ....................................................................................................................... 54
4
[Link] diverses .................................................................................................. 54
[Link] trigonométriques .................................................................................... 54
[Link] logarithmiques ....................................................................................... 55
[Link] ..................................................................................................................... 55
[Link] ................................................................................................................ 55
[Link]......................................................................................................................... 55
18.L’OBJET STRING .............................................................................................................. 55
18.1.Généralités .................................................................................................................... 55
[Link] propriété ................................................................................................................... 55
[Link] méthodes ................................................................................................................ 56
[Link] () ................................................................................................................. 56
[Link] () .................................................................................................... 56
[Link] () ........................................................................................................ 56
[Link] () ............................................................................................................... 57
[Link] () ........................................................................................................ 57
[Link] () ............................................................................................................. 57
[Link] () .................................................................................................................. 57
[Link] ()..................................................................................................................... 58
[Link] () ..................................................................................................................... 58
[Link] () ............................................................................................................... 58
[Link] () .................................................................................................... 59
[Link] () .................................................................................................... 59
[Link] () .......................................................................................................... 59
[Link] () ............................................................................................................ 59
[Link] () ................................................................................................................. 60
[Link] () ................................................................................................................... 60
[Link] () ................................................................................................................. 60
[Link] () .................................................................................................................... 60
[Link] () ..................................................................................................................... 60
[Link] () .................................................................................................................... 61
[Link] () .................................................................................................................. 61
[Link] () ................................................................................................................. 61
[Link] () ................................................................................................................. 62
[Link] () ................................................................................................................... 62
[Link] ()............................................................................................................... 62
[Link] sur les chaînes ....................................................................................... 62
[Link] .............................................................................................................. 62
[Link]énation ......................................................................................................... 63
[Link]ères spéciaux ................................................................................................ 63
[Link]......................................................................................................................... 64
19.L’OBJET DATE ................................................................................................................. 65
19.1.Généralités .................................................................................................................... 65
[Link] méthodes ................................................................................................................ 65
[Link] .......................................................................................................................... 65
[Link] ........................................................................................................................... 65
19.2.3.L’heure.................................................................................................................... 66
[Link] concret............................................................................................................ 66
[Link]......................................................................................................................... 67
[Link] de jours ..................................................................................................... 67
[Link] GMT............................................................................................................. 67
20.L’OBJET IMAGE ............................................................................................................... 67
[Link] HTML ............................................................................................................... 67
20.2.L’objet ........................................................................................................................... 67
5
[Link] propriétés ................................................................................................................ 68
[Link] ................................................................................................................... 68
[Link] ........................................................................................................................... 68
[Link] ....................................................................................................................... 68
[Link] ............................................................................................................................. 68
[Link] ...................................................................................................................... 68
[Link] ..................................................................................................................... 69
[Link] ................................................................................................................. 69
[Link] ........................................................................................................................... 69
[Link] ................................................................................................................... 69
[Link] une image ....................................................................................................... 69
[Link] concret : cliquer pour changer d’image ......................................................... 70
[Link]......................................................................................................................... 71
[Link] PROGRAMMATION MULTI-CADRES .................................................................... 71
[Link] HTML ............................................................................................................... 71
21.2.Généralités .................................................................................................................... 71
[Link] hypertexte ............................................................................................................ 72
[Link]ès aux éléments des frames..................................................................................... 72
21.4.1.L’objet frames[] ...................................................................................................... 72
[Link] nom de la frame ................................................................................................. 72
[Link] concret............................................................................................................ 73
[Link]......................................................................................................................... 74
[Link] COOKIES ................................................................................................................... 74
[Link]ésentation ................................................................................................................... 74
[Link]éer un cookie ............................................................................................................. 75
22.3.Récupérer un cookie ..................................................................................................... 76
[Link] un cookie ........................................................................................................ 77
[Link] un cookie ..................................................................................................... 77
[Link] PROGRAMMATION OBJET ...................................................................................... 77
[Link]ésentation ................................................................................................................... 77
23.2.Déclaration d’une classe ............................................................................................... 77
[Link] de méthodes................................................................................................. 78
23.4. Exercice........................................................................................................................ 78
[Link] EXPRESSION REGULIERES ................................................................................... 79
[Link]ésentation ................................................................................................................... 79
24.2.Définition ...................................................................................................................... 79
[Link]ètres d’une expression régulière ......................................................................... 79
24.3.1.L’option .................................................................................................................. 79
[Link] pattern ................................................................................................................ 80
[Link] ................................................................................................................ 81
[Link] d’une expression régulière .......................................................................... 81
[Link] méthode de l’objet RegExp.............................................................................. 81
[Link] méthode de l’objet String ................................................................................. 82
[Link] concret ........................................................................................................ 83
[Link]......................................................................................................................... 84
[Link]ésentation ................................................................................................................... 84
[Link] fonctions du langage .............................................................................................. 84
[Link]() .................................................................................................................. 84
[Link]() .............................................................................................................. 84
[Link] () ............................................................................................................ 84
[Link] () ............................................................................................................... 85
[Link] () ................................................................................................................ 85
[Link] () .................................................................................................................. 85
6
25.3.Méthodes et propriétés des objets ................................................................................. 86
[Link] ................................................................................................................. 86
[Link] ............................................................................................................. 86
[Link]() ................................................................................................................ 87
[Link]() ............................................................................................................... 87
7
[Link]
Le langage Javascript a été mis au point par Netscape en 1995. Microsoft ayant sorti
son propre langage quelques temps après, un standard a été créé, le Javascript. Actuellement,
la version du langage est le Javascript 1.5.
Ce langage est interprété, c’est-à-dire qu’il n’est pas compilé en langage machine
avant exécution, comme le Java ou le C++. Le Javascript est intégré au code HTML, il vous
faudra donc des bases assez solides en HTML. Si ce n’est pas le cas, il est conseillé de
consulter un cours HTML de toute urgence. Il s’agit, a priori, du premier langage de script
créé pour le web. Il permet d’exécuter des commandes du côté utilisateur, donc au niveau du
navigateur et non du serveur comme le PHP.
Son principal inconvénient est le fait qu’il ne dispose pas de débogueur, la détection
des erreurs en devient fastidieuse. Ensuite, il le code est accessible, puisque contenu dans la
page envoyée au navigateur.
1.2.Côté pratique
1.3.Détails techniques
Par convention, l’abréviation JS, utilisée souvent tout au long de ce cours, désigne
Javascript.
Chaque chapitre concerne un point du langage qui peut être pris comme une leçon. A
chaque fin de chapitre, je présente un exemple concret – quand c’est possible – et un ou
plusieurs exercice(s). Ces exercices sont corrigés – un lien mène au fichier HTML – dans le
dossier « solutions ».
Les cases blanches correspondent à la syntaxe, c’est-à-dire la mise en forme du
langage. Les cases grises correspondent aux exemples. Lorsque ces derniers ont un résultat
graphique, un lien mène au fichier HTML de l’exemple. Ces derniers sont dans le dossier
« Exemples »
[Link] LANGAGE
[Link] du code
Comme son nom l’indique, il s’agit d’un langage de script. Le code s’intègre donc
dans la page HTML avec les balises <script>. Il existe deux façons d’intégrer votre code. La
première consiste à le placer entre les balises, tout simplement.
8
Syntaxe :
<script language = "Javascript">code</script>
Exemple 2.1 :
<script language = "Javascript">
var mavariable = 12 ;
[Link] (typeof(mavariable)) ;
</script>
Il est aussi possible de placer votre code dans un fichier Javascript, comportant
l’extension « .js ». Ensuite, il faut l’insérer dans la page HTML ave la balise <script>. Ne pas
oublier il est préférable de placer le fichier JS dans le même dossier que la page.
Syntaxe :
<script src = "chemin_fichier"></script>
Exemple 2.2 :
<script src = "[Link]">
</script>
[Link]écificités du langage
La première chose qu’il faut noter en Javascript, comme dans le C, est que chaque
instruction se termine par un point-virgule ‘;’. Il est possible de mettre plusieurs instructions
sur la même ligne, puisque l’interpréteur ignore les sauts de lignes. Vous pouvez aussi insérer
des blancs où vous voulez – excepté dans des noms de variables ou dans des expressions –
cela ne change pas le code.
Exemple 2.3 :
var mavariable = 12 ;
[Link] ( typeof(mavariable) ) ;
Il est utile de commenter son code. Cela se fait à l’aide de ‘//’, tout le texte suivant le
double slash jusqu’à la fin de la ligne est ignoré par l’interpréteur.
Exemple 2.4 :
var mavariable = 12 ; //commentaire
[Link] ( typeof(mavariable) ) ;
Il est aussi possible de mettre des commentaires au milieu d’un ligne, ou sur plusieurs
lignes, en les encadrant avec « /* » et « */ »
Exemple 2.5 :
var mavariable = 12 ; /*commentaire sur
plusieurs lignes*/
[Link] ( typeof(mavariable) ) ;
9
• Les constantes numériques, en notation décimale ( 75,2 ) ou flottante, c’est-à-dire
scientifique (752E-1).
• Les constantes booléennes : true et false.
• Les chaînes de caractères, encadrées de guillemets ou de d’apostrophes (‘’).
• La constante null qui ne signifie « rien », « sans valeur », et qui est attribuée aux
variables non définies.
[Link] variables en JS
Un nom de variable doit commencer par une lettre (alphabet ASCII) ou le signe « _ »
et se composer de lettres, de chiffres et des caractères « _ » et « $ » (à l'exclusion du blanc).
Le nombre de caractères n'est pas précisé. Javascript est sensible à la casse (majuscules et
minuscules). Cela signifie que « MaVariable » n’est pas équivalent à « mavariable ».
Nous verrons les fonctions au chapitre [Link] FONCTION, mais je vous présente la
première que vous verrez : la fonction typeof(), qui retourne le type d’une variable.
Exemple 3.1 :
var mavariable = 12 ;
[Link] (typeof(mavariable)) ;
Si la variable n’est pas affectée d’une valeur, elle recevra alors le type undefined,
comme le montre l’exemple 3.2.
Exemple 3.2 :
[Link] (typeof(mavariable)) ;
Exemple 3.3 :
var Numero;
Dans les exemples qui suivent, par facilité, j’ai regroupé l’affectation avec la
déclaration. Les variables peuvent être déclarées de deux façons :
• De façon explicite, avec le mot-clé « var ».
10
Exemple 3.4 :
var Numero = 1 ;
Exemple 3.5 :
Numero = 1 ;
Les mots de la liste ci-après ne peuvent être utilisés pour des noms de fonctions et de
variables. Certains de ces mots sont des mots clés Javascript, d'autres ont été réservés par
Netscape pour un futur usage éventuel.
Lettre Mot-clé
A abstract
B boolean / break / byte
C case / catch / char / class / const / continue
D default / do / double
E else / extends
F false / final / finally / float / for / function
G goto
I if / implements / import / in / instanceof / int / interface
L long
N native / new / null
P package / private / protected / public
R return
S short / static / super / switch / synchronized
T this / throw / throws / transient / true / try
V var / void
W while / with
Tab. 3.1 : Noms réservés
[Link] sur les chaînes de caractères
11
Dans la fonction d’écriture dans le document courant ( [Link]() ), les données
peuvent être séparés par des ‘,’ ou des ‘+’.
Certains caractères peuvent être insérés dans les chaînes de caractères : le retour
arrière (\b), le saut de page (\f), le saut de ligne (\n), l’entrée (\r), la tabulation (&) et
l’apostrophe (\’).
On peut insérer des codes HTML dans les chaînes de caractères. Ces dernières seront
interprétées comme de vraies balises.
Nous reverrons tout cela plus en détail dans le chapitre 16.L’OBJET STRING.
Les variables déclarées tout au début du script, en dehors et avant toutes fonctions
(voir plus loin), seront toujours globales, qu'elles soient déclarées avec var ou de façon
contextuelle. On pourra donc les exploiter partout dans le script.
Dans une fonction, une variable déclarée par le mot clé var aura une portée limitée à
cette seule fonction. On ne pourra donc pas l'exploiter ailleurs dans le script. D'où son nom de
locale. Cependant, toujours dans une fonction, si la variable est déclarée contextuellement
(sans utiliser le mot var), sa portée sera globale.
4. LES OPERATEURS
Comme tout langage informatique, JS possède des opérateurs pour effectuer les
calculs. Leur présentation est rapide, surtout pour les plus simples. Dans les exemples, la
valeur initiale de x sera toujours égale à 11, et celle de y sera égale à 5.
12
Signe Nom Exemple Résultat
< Inférieur x < 11 false
<= Inférieur ou égal x <= 11 true
> Supérieur x > 11 false
>= Supérieur ou égal x >= 11 true
!= Différent x != 11 false
Tab 4.2 : opérateurs de comparaison
Ces opérateurs seront utilisés dans les boucles conditionnelles4. Le résultat s’exprime
alors en valeur booléenne.
Ces opérateurs permettent un raccourci d’écriture, sans pour autant changer le résultat.
Ils permettent une incrémentation ou une décrémentation autre que 1.
13
5. LES FONCTIONS
5.1.Définition
C’est un groupe d’instruction prédéfini et exécuté lorsqu’il est appelé et que l’on peut
appeler plusieurs fois.
5.2.Déclaration
Syntaxe :
function nom_de_la_fonction (arguments) {
code des instructions
}
Le nom d’une fonction suit les mêmes règles que celui d’une variable5. Chaque nom
de fonction doit être unique dans un même script. Les parenthèses sont obligatoires même s’il
n’y a pas d’arguments, puisque Javascript reconnaît une fonction grâce à elles.
Syntaxe :
nom_de_la_fonction();
Il faut que la fonction aie été définie avant l’appel, étant donné que l’interpréteur lit le
script de haut en bas.
[Link] manipulant des valeurs
On peut passer des valeurs à une fonction. On parle alors de paramètres. Pour passer
un paramètre à une fonction, on fournit un nom d'une variable dans la déclaration de la
fonction.
Exemple 5.1 : une fonction affichant le texte dans la page à laquelle on fournit le texte à
afficher.
.
14
function Exemple(texte) { //définition avec un paramètre
[Link](texte);
}
Exemple("Salut à tous"); // appel avec un paramètre
On peut passer plusieurs paramètres à une fonction, en séparant les paramètres par des
virgules.
Syntaxe :
function nom_de_la_fonction(arg1, arg2, arg3) {
instructions
}
Exemple 5.2 :
function cube(nombre) {
y = nombre*nombre*nombre;
return y; //retour de valeur
}
x = cube(5); //appel avec paramètre
[Link](x); //résultat
Une fonction peut retourner une valeur. Il suffit alors de placer le mot-clé return suivi
de la valeur ou de la variable à retourner.
Exemple 5.3 :
Une variable déclarée dans une fonction par le mot-clé var aura une portée limitée à
cette seule fonction. On l'appelle donc variable locale et ne pourra être utilisé dans le reste du
script.
Exemple 5.4 :
function cube(nombre) {
var c = nombre*nombre*nombre ;
}
Si la variable est déclarée sans utiliser le mot var, sa portée sera globale.
15
Exemple 5.5 :
function cube(nombre) {
cube = nombre*nombre*nombre ;
}
Les variables déclarées tout au début du script, en dehors et avant toutes fonctions,
seront toujours globales, qu'elles soient déclarées avec var ou de façon contextuelle.
Exemple 5.6 :
var cube=1
function cube(nombre) {
var cube = nombre*nombre*nombre ;
}
Nous verrons chacun des types de structures, en comparant l’algorithme et le code JS.
[Link] structure séquentielle
C’est une suite d’instructions exécutées dans l’ordre où elles sont écrites, l’une après
l’autre. L’exemple le plus fréquent est la fonction.
Algorithme Code JS
DEBUT {
Instruction1 Instruction1
Instruction2 Instruction2
FIN }
Algorithme Code JS
SI condition If (condition) {
ALORS Instructions1 Instruction1
SINON Instructions2 }
FINSI else {
Instruction2
}
16
Tab. 6.1: Expression conditionnelle if…else
Exemple 6.1 :
Dans l’exemple 6.1, la fonction prompt() permet d’afficher une boîte de dialogue.
6.3.2.L’expression () ? :
Il s’agit d’un moyen rapide de tester une condition et de d’exécuter une instruction
selon son résultat.
Algorithme Code JS
SI condition (condition) ? instruction 1 :
ALORS Instructions1 instruction 2
SINON Instructions2
FINSI
Tab. 6.2 : Expression conditionnelle () ? :
Dans cette expression, si la condition est vérifiée, l’instruction 1 est effectuée, sinon,
l’instruction 2 est effectuée. Précisons, que toute l’expression doit se trouver sur la même
ligne.
Exemple 6.2 :
6.4.1.L’itération for
Algorithme Code JS
POUR i = valeur initiale A i = For (val initiale ; condition ;
valeur finale incrémentation) {
REPETER instructions Instructions
FIN POUR }
Tab. 6.3: Expression iterative for
17
Exemple 6.3 :
6.4.2.L’itération while
Elle permet de répéter des instructions tant qu’une condition est vraie.
Algorithme Code JS
TANT QUE (condition vraie) while (condition) {
REPETER instructions instructions
FIN TANT QUE }
i = 0;
while (i < 10) {
[Link](i + " ");
i++;
}
6.5.1.L’instruction break
Elle permet de mettre fin prématurément à une instruction itérative while ou for.
Exemple 6.5 :
6.5.2.L’instruction continue
Exemple 6.6 :
18
[Link]
Dans cet exercice, vous devez afficher tous les nombres pairs compris entre 0 et 20
inclus, dans l’ordre décroissant. Il ne faudra pas afficher 10 mais 100, et il ne faudra pas non
plus afficher 14.
7.1.Généralités
Nous abordons les boîtes de dialogue, qui sont des méthodes de l’objet window, que
nous verrons plus tard, dans la partie objet du langage. Même si nous n’avons pas encore
abordé la programmation objet, il me semble important de vous donner ces boites de dialogue,
qui s’avèrent utile en JS. Il en existe 3, que nous détaillerons l’une après l’autre.
[Link]()
Nous avons déjà utilisé cette méthode précédemment, sans savoir forcément ce qui en
retournait. Il ne comporte qu’un texte informatif et un bouton « OK ».
Syntaxe :
alert (paramètres) ;
Paramètres :
• Une chaîne de caractère
• Une variable
• Un enchaînement des deux, séparés par le signe "+"
Exemple 7.1 :
x=5;
alert ('Le nombre est ' + x) ;
[Link]()
Il s’agit d’une boite d’invite, composée d’un texte, d’une zone de texte, d’un bouton
« OK » et d’un bouton « Annuler ».
Syntaxe :
variable = prompt ("texte", "valeur");
Paramètres :
• Le texte à afficher dans la boite de message
• La valeur par défaut à afficher dans la boite d’invite.
Exemple 7.2 :
19
[Link]()
Syntaxe :
Paramètre :
• Le texte à afficher dans la boite de message
Exemple 7.3 :
Cet exercice utilisera vos connaissances au niveau des fonctions, des variables, des
structures algorithmiques, et bien entendu des boites de dialogue.
Dans la solution, le login est « prof » et le password est « abcd ». Je suis resté
classique.
8. NOTION OBJET
Bien que ce ne soit pas le but dans ce chapitre, il me semble important de rappeler le
concept objet, notamment pour ceux qui ne le connaissent pas. Il ne s’agit pas d’un cours
magistral, mais juste d’un résumé à des fins d’utilisation en JS.
Jusque-là, nous avons vu des variables, avec une valeur, indépendantes des autres.
Maintenant, on parlera d’objet. Un objet – en général - possède des caractéristiques et des
compétences. On peut voir ces caractéristiques et utiliser les compétences. En informatique,
un objet possède des variables et des fonctions, qui permettent de décrire son comportement.
Ces variables sont appelées propriétés et ces fonctions sont appelées méthodes. De cette
façon, on peut voir les propriétés et utiliser les méthodes.
20
[Link]éation d’un objet
Un objet est créé en utilisant une fonction spéciale de la classe, précédée du mot new.
Cette fonction est appelée constructeur, et porte le nom de la classe. Un objet est appelé
instance de la classe.
Syntaxe :
var objet = new classe ();
Exemple 8.1 :
var montableau = new Array ();
Syntaxe :
[Link]été
objet.méthode()
Exemple 8.3:
L’objet document est intégré au langage, et sa méthode write() permet d’écrire dans la
page courante.
8.4.L’objet this
Il existe un objet très utile en JS objet : this. Même s’il sera plus utile en
programmation objet, lorsque vous créerez vos classes. Il s’agit d’un objet qui représente
l’objet en cours. Il possède alors les propriétés et les méthodes de l’objet. Etant donné son
utilité minime avant la programmation objet, je ne donnerai pas d’exemple ici.
9. LES FORMULAIRES
9.1.Généralités
[Link]ésentation
On attaque ici le gros morceau du JS. Sans les formulaires, les pages HTML ne
proposent aucune interactivité avec l’utilisateur. En effet, la page appelée est envoyée par le
serveur et le browser ne fait que l’afficher, il ne peut rien faire avec le serveur. Les champs de
21
formulaire (form) permettent l’utilisateur d’entrer des informations auxquelles la page pourra
réagir. Ces réactions seront programmées à l’avance par vous. Cela reste assez limité, puisque
l’interaction ne quitte pas la machine du client, mais on peut effectuer quelques traitements.
Mon but n’est pas de vous apprendre le HTML, je ne reviendrai donc pas sur le
fonctionnement des balises.
Autre point, j’indique ici, par commodité, les propriétés JS, dont on se servira plus
loin. Ne vous en préoccupez pas si vous ne comprenez pas de quoi il s’agit.
Chaque formulaire doit être encadré par les balises <form>…</form>. Toutes les
balises seront comprises entre ces deux-là.
Si vous travaillez avec PHP ou un autre langage, vous aurez sûrement besoin
d’envoyer les informations à un serveur. Dans ce cas, indiquez dans la balise <form> la
méthode (post ou get) et l’URL du script qui traitera l’information.
Exemple 9.1 :
Si vous désirez que les informations du formulaire vous soient envoyées par mail,
précisez ‘[Link] dans l’action.
Exemple 9.2:
Dans chaque cas, n’oubliez pas d’insérer un bouton submit dans votre formulaire.
[Link] de texte
Syntaxe HTML:
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation)
• value : la valeur que vous voulez afficher dans la ligne de texte (facultatif).
• size : la longueur de la ligne de texte. Si le texte est trop long, la ligne défilera.
• maxlength : le nombre de caractères maximum contenus dans la ligne de texte
(facultatif mais conseillé).
22
Propriétés JS :
• name : indique le nom du contrôle.
• defaultvalue : indique la valeur par défaut affichée dans la ligne de texte.
• value : indique la valeur actuellement dans la zone de texte.
Exemple 9.3 :
[Link] de texte
Syntaxe HTML :
Propriétés JS :
• name : indique le nom du contrôle.
• defaultvalue : indique la valeur par défaut affichée dans la ligne de texte.
• value : indique la valeur actuellement dans la zone de texte.
Exemple 9.4 :
[Link] password
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation)
23
• value : la valeur que vous voulez afficher dans le champ (facultatif).
• size : la longueur de la ligne de texte. Si le texte est trop long, la ligne défilera.
• maxlength : le nombre de caractères maximum contenus dans la ligne de texte
(facultatif mais conseillé).
Propriétés JS :
• name : indique le nom du contrôle.
• defaultvalue : indique la valeur par défaut affichée dans la ligne de texte.
• value : indique la valeur actuellement dans le champ password.
Exemple 9.5 :
[Link] à sélectionner
[Link] radios
Il s’agit de cases à cocher à choix unique. D’une forme ronde, elle sont liées entre elles
au niveau du code JS.
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation) il doit être identique pour
chaque choix.
• value : la valeur que vous voulez afficher dans le champ (facultatif).
• checked : à mettre sur un seul bouton, qui sera sélectionné par défaut.
Propriétés JS :
• name : indique le nom du contrôle.
• checked : indique si le bouton radio est coché, actuellement.
• defaultchecked : indique si le bouton radio est coché ou non par défaut.
• value : indique la valeur du bouton radio.
• index : indique le rang du bouton radio, à partit de 0.
Exemple 9.6 :
24
[Link]
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation). Il doit être différent pour
chaque choix.
• value : la valeur que vous voulez afficher dans le champ (facultatif).
• checked : à mettre sur un (ou plusieurs) bouton, qui sera sélectionné par défaut.
Propriétés JS :
• name : indique le nom du contrôle.
• checked : indique si la case est cochée, actuellement.
• defaultchecked : indique si la case est cochée ou non par défaut.
• value : indique la valeur de la case à cocher.
Exemple 9.7 :
[Link] de sélection
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation).
• size : le nombre d’options que vous voulez afficher à l’écran. S’il n’est pas précisé, la
liste n’affiche qu’une seule ligne.
• value : la valeur que vous voulez afficher dans le champ (facultatif).
• selected : à mettre dans une balise <option>. Cette option sera sélectionnée par défaut.
• Multiple : à mettre dans une balise <select>. Autorise la sélection de plusieurs options
dans la liste déroulante.
25
Chaque option de la liste déroulante correspond à une balise <option>. Il est nécessaire
de préciser le label après chaque option contrôle (texte).
Propriétés JS :
• name : indique le nom du contrôle.
• selected : indique si le bouton radio est sélectionné
• defaultselected : indique si le bouton radio est coché ou non par défaut.
• length : indique le nombre d‘éléments de la liste.
Exemple 9.8 :
Exemple 9.9 :
[Link]
[Link] simple
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation).
• value : la valeur que vous voulez afficher sur le bouton.
Propriétés JS :
• name : indique le nom du contrôle.
• value : indique la valeur actuelle du bouton.
• defaultselected : indique la valeur par défaut du bouton.
Exemple 9.10 :
26
[Link] reset
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation).
• value : la valeur que vous voulez afficher sur le bouton.
Propriétés JS :
• name : indique le nom du contrôle.
• value : indique la valeur actuelle du bouton.
• defaultselected : indique la valeur par défaut du bouton.
Exemple 9.11 :
[Link] submit
Il permet d’exécuter l’action prévue dans la balise <form>, comme on l’a vu dans la
partie 6.1.2.
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation).
• value : la valeur que vous voulez afficher sur le bouton.
Propriétés JS :
• name : indique le nom du contrôle.
• value : indique la valeur actuelle du bouton.
• defaultselected : indique la valeur par défaut du bouton.
Exemple 9.12 :
27
<option value=”2”>choix 2
<option value=”3” selected>choix 3
</select><br>
<input type="submit" name="envoi" value="envoyer">
</form>
[Link]ôle caché
Il permet de mettre dans le script des éléments (souvent des données) qui ne seront pas
affichées par le navigateur, mais qui pourront être envoyées par mail ou à un serveur.
Syntaxe HTML :
Paramètres HTML :
• name : le nom du champ (servira lors de la programmation).
• value : la valeur qui sera contenue dans le contrôle.
Propriétés JS :
• name : indique le nom du contrôle.
• value : indique la valeur actuelle du contrôle.
• defaultselected : indique la valeur par défaut du contrôle.
Exemple 9.13 :
Voilà un formulaire complet, utilisant la plupart des contrôles que nous avons vu ci-
dessus. Il pourrait s’agir d’un formulaire réel, mais je l’ai inventé de toutes pièces. De
nombreux sites proposent des formulaires, rien ne vous empêche d’enregistrer la page est
d’aller fouiner pour voir leur astuces…
Exemple 9.14 :
28
<option value=”Salarié”>Salarié
<option value=”Fonctionnaire”>Fonctionnaire
<option value=”Patron”>Patron
</select><br>
Qualification(s):<br>
<input type=”checkbox” name=”choix1” value=”bafa”> BAFA<br>
<input type=”checkbox” name=”choix2” value=”bafd”> BAFD<br>
<input type=”checkbox” name=”choix3” value=”rien”> rien<br>
Semaine choisie:<br>
<input type=”radio” name=”semaine” value=”1”>
1ère<br>
<input type=”radio” name=”semaine” value=”2”>
2ème<br>
<input type=”radio” name=”semaine” value=”3”>
3ème<br>
Vos motivations :<br>
<textarea name="motivations" rows=5 cols=20></textarea><br>
<input type="submit" name="envoi" value="envoyer">
<input type="reset" name="effacer" value="effacer">
</form>
Nous avons vu précédemment la notion d’objet7. Maintenant que nous avons vu tous
les composants d’un formulaire, nous allons pouvoir utiliser le concept objet appliqué aux
formulaires.
Même si nous n’avons pas encore vu les objets du navigateur8, nous allons introduire
ici l’objet document. Il renvoie à la page en cours. Il contient en propriétés tous les éléments
de la page. Les attributs des balises deviennent les propriétés de l’élément objet. On y a accès
de la façon suivante :
Syntaxe :
[Link].élé[Link]été
Un exemple éclairera le propos. L’exemple 9.15 montre comment attribuer une valeur
à une ligne de texte.
Exemple 9.15:
<html>
<head>
<script language = "JavaScript">
function f() {
[Link]="voici du texte";
}
</script>
</head>
<body onLoad="f();">
7
Voir, pour ceux qui auraient oublié, le chapitre [Link] OBJET.
8
Voir pour cela le chapitre [Link] OBJETS DU NAVIGATEUR.
29
<form name="form1">
<input type="text" name="texte" value="">
</form>
</body>
</html>
Cette manière de pouvoir accéder aux objets est très pratique, même si pour le
moment, elle ne semble pas très utile. Cette utilité sera mise en valeur lors du prochain
chapitre. Mais avant cela, il est souhaitable de faire un petit exercice.
[Link]
10.1.Généralités
[Link]ésentation
Les évènements sont indiqués dans la balise, d’un formulaire, le plus souvent. Ils
apparaissent comme un paramètre supplémentaire et suivent une syntaxe particulière.
Syntaxe :
9
Nous verrons cela dans le chapitre [Link] EVENEMENTS.
30
<balise onEvent=”code">
Exemple 10.1 :
Lorsque vous cliquez sur un élément de formulaire de la page que vous consultez.
Gestionnaire d’événement :
onClick
Exemple 10.2 :
Résultat
Balises supportées :
<input type="button">, <input type="checkbox">, <input type="radio">, <input
type="reset">, <input type="submit">, <a href..>
[Link] chargement
[Link]
Gestionnaire d’événement :
onLoad
Exemple 10.3 :
Balises supportées :
<body>, <frameset>
31
[Link]
Gestionnaire d’événement :
onUnLoad
Exemple 10.4 :
Balises supportées :
<body>, <frameset>
[Link]
Gestionnaire d’événement :
onError
Exemple 10.5 :
Balises supportées :
<body>, <frameset>, <img>
[Link]
Gestionnaire d’événement :
onAbort
Exemple 10.6 :
Balises supportées :
<img>
[Link]
Lorsque vous survolez un lien ou une zone d’image activable. Une zone d’image
activable est une partie d’image qui a été transformée en lien. Je ne reviendrai pas sur ce sujet,
ce n’est pas l’objet de ce cours.
Gestionnaire d’événement :
32
onMouseOver
Exemple 10.7 :
Balises supportées :
<a href…>, <area href…>
[Link]
Lorsque vous sortez de la zone de survol d’un lien ou d’une zone d’image activable.
Gestionnaire d’événement :
onMouseOut
Exemple 10.8 :
Balises supportées :
<a href…>, <area href…>
[Link] focus
[Link]
Gestionnaire d’événement :
onFocus
Exemple 10.9 :
Balises supportées :
<input type="text">, <select>, <textarea>, <input type="password">
[Link]
Gestionnaire d’événement :
onBlur
Exemple 10.10 :
33
<input type="text" value="votre nom" name=”nom” onBlur=”alert(‘Vous
n\’avez rien oublié ?’) ;">
Balises supportées :
<input type="text">, <select>, <textarea>, <input type="password">
[Link] changements
Lorsque la valeur d’un texte ou d’une option change dans un formulaire. Si vous
cliquez dans la zone de texte mais que vous ne touchez pas au texte, rien ne se produit.
Gestionnaire d’événement :
onChange
Exemple 10.11 :
Balises supportées :
<input type="text">, <select>, <textarea>, <input type="password">
[Link] sélection
Gestionnaire d’événement :
onSelect
Exemple 10.12 :
Balises supportées :
<input type="text">, <textarea>
10.8.L’envoi
Lorsque vous cliquez sur un bouton « submit » d’un formulaire de type « post » ou
« get ».
Gestionnaire d’événement :
onSubmit
Exemple 10.13 :
34
Balises supportées :
<input type="submit">
[Link] reset
Gestionnaire d’événement :
onReset
Exemple 10.14 :
Balises supportées :
<input type="reset">
Avant de voir les évènements, l’intérêt de l’accès aux éléments à travers l’objet
document était discutable. Maintenant, on voit que l’on peut changer des valeurs selon des
évènements, ce qui est très intéressant. Il est aussi possible de demander confirmation, de
demander si on veut vraiment changer la valeur… Tout est permis. Cette partie ne comporte
pas d’exemple, car la partie [Link] concret en présente un assez complet.
[Link] concret
Exemple 10.15 :
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
var TestLog = 0; //test pour le login
function ChangeLog() {
TestLog++; //incrémente le test
//si le login a été changé plus d'une fois
if (TestLog > 1) {
alert("Vous changez de login?\n Décidez-vous!");
}
}
function VerifPass () {
// si les deux password sont différents
if ([Link] != [Link]) {
alert("Vous avez entré deux password différents !\nVérifiez les deux.");
}
}
35
function VerifMail () {
//confirmation du mail
var test = confirm ("Votre mail est bien : " + [Link] + "
?");
if (test == false) { //si l'internaute ne confirme pas
alert("N'oubliez pas de changer votre mail!");
}
}
</script>
</HEAD>
<BODY>
<form name="form1">
<center>Formulaire d'inscription sur notre site</center><br/>
Login : <input type="text" name="login" onChange="ChangeLog();"
value="login"><br/>
Password : <input type="password" name="pass1"><br/>
Password (vérification) : <input type="password" name="pass2"
onBlur="VerifPass();"><br/>
Adresse e-mail : <input type="text" name="mail" onBlur="VerifMail();"
value="@"><br/>
Vous voulez recevoir la newsletter? <input type="radio" name="news"
value="yes">Oui <input type="radio" name="news" value="no" onClick="alert('Tant
pis pour vous!')">Non<br/>
<input type="submit" name="sub" value="Envoi"> <input type="reset"
name="reset" value="Effacer">
</form>
</BODY>
</HTML>
Résultat
[Link]
[Link] bouton
[Link] phrase
L’exercice consiste à demander 3 informations à un utilisateur, puis de les afficher
dans une zone de texte en faisant une phrase. Il faudra demander le nom à l’aide d’une boite
de message, ainsi que l’âge et la ville avec des lignes de texte. Ensuite, en cliquant sur un
bouton, on affiche une phrase contenant les 3 informations dans un zone de texte.
11.1.Généralités
L’objet Array n’est rien d’autre qu’un tableau. Un tableau est en quelque sorte une
liste d’éléments indexés que l’on pourra lire – chercher les données - ou écrire – entrer les
données – à volonté.
36
[Link]éation et affectation d’un tableau
Syntaxe :
variable = new Array(x) ;
Exemple 11.1 :
On affecte un tableau très simplement. Il suffit d’affecter une valeur (y) à la variable
avec le numéro de l’élément (i) entre crochets. Ces derniers ne sont pas présents lors de la
création mais sont indispensables lors de l’affectation. Le numéro commence à 0 et finit au
nombre maximum moins 1.
Syntaxe :
Exemple 11.3 :
37
Syntaxe :
Exemple 11.4 :
[Link] à 2 dimensions
Syntaxe :
Exemple 11.5 :
Il est bien entendu plus rapide d’utiliser une instruction itérative pour créer ce tableau
à 2 dimensions.
Exemple 11.6 :
Avec ce système, on peut créer un tableau à 3,4 dimensions ou plus, bien que l’utilité
en soit quelque peu douteuse…
[Link]étés et méthodes
Comme tout objet, l’objet Array possède une propriété et des méthodes qui s’avèrent
assez utiles.
[Link]été
Syntaxe :
variable = new Array (x) ;
38
y = [Link] ;
Exemple 11.7 :
11.5.2.Méthodes
L’objet Array possède plusieurs méthodes qui permettent de manier les éléments du
tableau.
Syntaxe :
tableau.méthode() ;
• join (séparateur) : regroupe tous les éléments du tableau en une seule chaîne. Chaque
élément est séparé par un séparateur. Ci celui-ci n’est pas précisé, ce sera une virgule.
• reverse () : inverse l’ordre des éléments sans les trier.
• sort () : Renvoie les éléments par ordre alphabétique, s’ils sont de même nature.
• concat(tableau) : concatène le tableau passé en paramètre avec celui de la méthode.
• pop() : supprime le dernier élément du tableau.
• push(élément1,…) : ajoute l(es) élément(s) passé(s) en paramètre à la fin du tableau.
• shift() : supprime le premier élément du tableau.
• slice(début,fin) : renvoie les éléments contenus entre la position supérieure ou égale à
début et inférieure à fin.
• splice(début, nombre, éléments) : supprime les éléments à partir de la position début et
sur nombre de position. Les éléments sont remplacés par ceux fournis en paramètre
(facultatif).
• unshift(élément1,…) : ajoute l(es) élément(s) passé(s) en paramètre au début du
tableau.
Exemple 11.8 :
[Link] concret
Le but de cet exemple est de remplir et afficher les valeurs à 0.1 près comprises entre 0
et 10 exclu. Pour cela, on utilise un tableau à deux dimensions, dont la première indique la
partie entière du nombre, et la deuxième dimension indique la partie décimale. On va d’abord
créer le tableau, puis le remplir et enfin l’afficher.
Exemple 11.9 :
39
<script language="Javascript">
var Tableau = new Array (10) ; // objet tableau
for (i = 0; i < 10; i++) { // pour chaque élément...
Tableau[i] = new Array(10); // on redéfinit un tableau
}
// remplissage du tableau
for (i = 0; i < 10; i++) { /* pour chaque élément de la première dimension*/
for (j = 0; j < 10; j++) { /* pour chaque élément de la seconde
dimension*/
Tableau[i][j] = i + "." + j; //on remplit l'élément
}
}
// affichage du tableau
for (i = 0; i < 10; i++) { /* pour chaque élément de la première dimension */
for (j = 0; j < 10; j++) { /* pour chaque élément de la seconde dimension
*/
[Link]( Tableau[i][j] + " ; " ); /*on affiche l'élément, avec
un point virgule */
}
[Link] ("<br>"); /* a chaque unité, on revient à la ligne. */
}
</script>
[Link]
Le but de l’exercice est d’afficher les entiers compris entre 1 et 10 inclus dans l’ordre
décroissant. Vous utiliserez pour cela un tableau de 10 éléments.
12.1.Généralités
Nous avons vu les classes prédéfinies en JS. Il existe aussi plusieurs objets en JS
rattachés à la fenêtre, à la page et au navigateur. Ils sont appelés window, document et
navigator. Ce sont 3 classes distinctes - sans lien entre elle – puisque l’héritage n’existe pas
en JS. Nous étudierons chaque classe l’une après l’autre. Cependant, l’objet document fait
partie de l’objet window.
[Link]
Je présente ici l’arborescence des objets de JS. Elle comprend les 3 objets principaux
ainsi que tous les « sous-objets » contenus dans chaque objet principal.
40
navigator document
plugins [] all / layers
window frames[]
parent images[]
frames[] anchors[]
top applets[]
opener plugins[]
history links[]
location forms []
external elements []
screen
event
document
13.L’OBJET NAVIGATOR
Il s’agit – comme son nom l’indique – de votre navigateur, ou votre browser. Les deux
principaux sont sûrement Microsoft Internet Explorer et Netscape. L’objet navigator possède
toutes les caractéristiques de votre navigateur ainsi que certaines de votre ordinateur. Cela
peut s’avérer utile pour tester la compatibilité de certains codes avec un browser.
L’objet navigator étant intégré dans le langage, il n’est pas nécessaire de créer une
instance de cette classe.
Toutes ces propriétés ne font que donner des informations sur votre type de
navigateur. Pour y accéder, on suit la syntaxe habituelle d’un objet.
Syntaxe :
variable = [Link]été ;
Les propriétés qui suivent fonctionnent sous tous les navigateurs. Les compatibilités ne seront
évoquées que pour Netscape et Internet Explorer.
41
• appMinorVersion : numéro de version mineure.
• browserLanguage : code langue du browser.
• userLanguage : code langue de l’utilisateur.
• systemLanguage : code langue du système d’exploitation.
• cpuClass : classe du processeur.
• platform : code type de plate-forme (pc, mac, linux …).
• cookieEnabled : booléen qui indique si l’utilisateur accepte les cookies.
• onLine : booléen qui indique si le poste est connecté à Internet.
Dans cette partie, je vous cite les méthodes de navigator, mais malheureusement, je ne
suis pas en mesure de vous expliquer leur utilité. Si vous le savez, merci de me le faire savoir.
Syntaxe :
variable = navigator.méthode() ;
• javaEnabled()
• taintEnabled()
L’objet navigator contient un autre objet, qui n’hérite pas de lui. Il s’agit du tableau
plugins, qui n’est reconnu que par Netscape. Il s’agit de la liste de tous les plugins installés.
Personnellement, je ne vois pas l’utilité de cet objet, mais par souci didactique, je vous le
décris.
Syntaxe :
variable = [Link]été ;
[Link]
Exemple 13.1 :
<script language="Javascript">
42
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
if ([Link] == "Microsoft Internet Explorer") {
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
}
else {
[Link] ([Link] + "<br>");
}
</script>
Ce chapitre ne comporte pas d’exercice car le contenu est assez restreint. L’exemple
13.1 devrait suffire à illustrer l’objet navigator.
14.L’OBJET WINDOW
Syntaxe :
[Link]été;
14.2.1.Généralités
L’objet window possède de nombreuses méthodes, dont certaines que nous avons déjà
vu précédemment – les boîtes de dialogue -, et qui peuvent offrir quelques atouts à votre page
web. La plupart renvoient une valeur à la variable qui appelle la fonction.
43
Syntaxe :
variable = window.méthode();
[Link]
Voici, pour illustrer les liste proposée ci-dessus, deux façons e faire un chronomètre.
La première utilise la méthode setInterval() – moins connue - , ce qui économise une ligne de
code. La seconde utilise la méthode setTimeout() – plus connue - qui doit être rappelée à
chaque boucle. Le reste du code est identique. Il sert à incrémenter à chaque fois les secondes,
et permet de rendre l’affichage un peu plus agréable.
Exemple 14.1 :
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
var seconds = 0;
var minutes = 0;
44
var hours = 0;
function chrono () {
if (seconds == 60) {
seconds = 0;
minutes++;
}
if (minutes == 60) {
minutes = 0;
hours++;
}
h = hours;
m = minutes;
s = seconds;
if (s < 10) s = "0" + s;
if (m < 10) m = "0" + m;
if (h < 10) h = "0" + h;
[Link] = h + ":" + m + ":" + s;
seconds++;
}
</script>
</HEAD>
<BODY onLoad="[Link]('chrono();',1000)">
<form name="form1">
<center><input type="text" value="" name="chrono" size=6></center>
</form>
</BODY>
</HTML>
45
Exemple 14.2 :
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
var seconds = 0;
var minutes = 0;
var hours = 0;
function chrono () {
if (seconds == 60) {
seconds = 0;
minutes++;
}
if (minutes == 60) {
minutes = 0;
hours++;
}
h = hours;
m = minutes;
s = seconds;
if (s < 10) s = "0" + s;
if (m < 10) m = "0" + m;
if (h < 10) h = "0" + h;
[Link] = h + ":" + m + ":" + s;
seconds++;
[Link]('chrono()',1000);
}
</script>
</HEAD>
<BODY onLoad="chrono();">
<form name="form1">
<center><input type="text" value="" name="chrono" size=6></center>
</form>
</BODY>
</HTML>
On peut rattacher certains évènements à l’objet window. Ils seront placés dans la
balise <body>, grâce au gestionnaire d’événement onEvent.
Syntaxe :
<body onEvent=”code”>
46
Pour plus de précisions, consultez le chapitre 7, relatif aux évènements de Javascript.
L’objet window contient plusieurs autres objets assez réduits que je présente dans cette
partie.
Syntaxe :
variable = [Link]été ;
variable = [Link].méthode() ;
14.4.1.L’objet frames
Il s’agit d’un tableau contenant tous les frames déclarées dans la page. Il ne possède ni
propriétés ni méthodes.
Syntaxe :
variable = [Link][i] ;
14.4.2.L’objet parent
Syntaxe :
variable = [Link].méthode() ;
variable = [Link]été ;
14.4.3.L’objet top
Il s’agit de la page de plus haut niveau. Il possède les mêmes attributs que l’objet
window.
Syntaxe :
variable = [Link].méthode() ;
variable = [Link]été ;
14.4.4.L’objet opener
Syntaxe :
variable = [Link].méthode() ;
variable = [Link]été ;
47
14.4.5.L’objet history
Syntaxe :
variable = [Link].méthode() ;
variable = [Link]été ;
14.4.6.L’objet location
Il s’agit de toutes les informations contenues dans l’URL de la page en cours. Voici la
propriété et les méthodes de cet objet, qui se déclarent selon la syntaxe objet. L’objet
[Link] renvoie l’URL complète de la page en cours.
Syntaxe :
variable = [Link].méthode() ;
variable = [Link]été ;
14.4.7.L’objet screen
Il s’agit de toutes les informations du système d’affichage de l’utilisateur. Il y a 4
propriétés rattachées à cet objet.
Syntaxe :
variable = [Link]été ;
48
• height : hauteur de la fenêtre en pixels - contient barres de menus, d’état, de titre et de
scrolling - .
• width : largeur de la fenêtre en pixels - contient barres de menus, d’état, de titre et de
scrolling - .
• colorDepth : Contient la profondeur de couleur en nombre de bits.
14.4.8.L’objet event
Syntaxe :
variable = [Link]été ;
14.4.9.L’objet external
Il s’agit d’un objet propre à Microsoft Internet Explorer. Il permet d’accéder aux
propriétés du navigateur.
Syntaxe :
variable = [Link]été ;
[Link] concret
Exemple 14.3 :
<script language="Javascript">
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
[Link] ([Link] + "<br>");
</script>
[Link]
49
15.L’OBJET DOCUMENT
Il s’agit – comme son nom l’indique – de la page en cours d’exécution. Tous les
éléments de la page sont des propriétés ou des méthodes de document.
L’objet document étant intégré dans le langage, il n’est pas nécessaire de créer une
instance de cette classe.
L’objet document fait partie de l’objet window, mais il n’est pas nécessaire de préciser
le suffixe "window."
Toutes ces propriétés correspondent à des éléments de la page ouverte. Cela permet
d’uniformiser et de changer quelques détails de votre page. On les utilise grâce à la syntaxe
habituelle.
Syntaxe :
[Link]été;
Exemple 15.1 :
<script language="Javascript">
[Link] ("Taille du fichier : " + [Link] + "<br>");
[Link] ("Type mime : " + [Link] + "<br>");
[Link] ("Jeu de caractères : " + [Link] + "<br>");
[Link] ("URL décodée : " + [Link] + "<br>");
[Link] ("URL : " + [Link] + "<br>");
[Link] ("Protocole : " + [Link] + "<br>");
[Link] ("Dernière modification : " + [Link] + "<br>");
</script>
50
[Link] méthodes de document
L’objet document possède de plusieurs méthodes, dont certaines que nous avons déjà
vu précédemment.
Syntaxe :
variable = document.méthode();
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
function f() {
var tab = [Link] ("input");
var result;
for (i = 0; i < [Link]; i++) {
result = result + " " + (tab[i].value);
}
[Link] = result;
}
</script>
</HEAD>
<BODY>
<form name="form1">
<input type="text" name="1" value=" "><br/>
<input type="text" name="2" value=" "><br/>
<input type="text" name="3" value=" "><br/>
<input type="text" name="4" value=" "><br/>
<input type="text" name="5" value=" "><br/>
<input type="button" value="click!" name="click" onClick="f();"><br/>
<textarea rows=4 cols=40 name="result"></textarea>
</form>
</BODY>
</HTML>
51
[Link] évènements de document
L’objet document contient plusieurs autres objets assez réduits que je présente dans
cette partie.
Syntaxe :
variable = [Link]été ;
variable = [Link].méthode() ;
Nous préciserons ici que tout élément de la page est en soit un objet de document. On
y accède selon la syntaxe ci-dessus. Il serait trop lourd de donner la liste des éléments, qui
sont répertoriés dans tout cours HTML digne de ce nom.
15.4.1.L’objet all
Il s’agit d’un tableau contenant tous les calques déclarés dans la page dans les balises
<div>…</div>. Il s’agit d’une particularité de Microsoft Internet Explorer. Il possède les
propriétés de la balise <div>.
Syntaxe :
[Link][“calque”].[Link]été = x ;
15.4.2.L’objet layers
C’est l ‘équivalent de l’objet all pour Netscape, pour les calques des balises <div> ou
<layer>. Il possède les propriétés de la balise <div>.
Syntaxe :
[Link][“calque”].[Link]été = x ;
15.4.3.L’objet forms
Il s’agit d’un tableau contenant tous les formulaires du document. Il possède une
propriété – elements[] – qui est un tableau de tous les éléments de formulaire.
Syntaxe :
[Link][i].elements[j] ;
52
15.4.4.L’objet anchors
Il s’agit d’un tableau contenant toutes les ancres – les balises <a> - de la page
courante. Il ne possède ni propriétés ni méthodes.
Syntaxe :
[Link][i] ;
15.4.5.L’objet images
Il s’agit d’un tableau contenant toutes les images – les balises <img> - de la page
courante. Il ne possède ni propriétés ni méthodes. Cela permet de faire des effets, par exemple
des rollovers, sur les images.
Syntaxe :
[Link][i] ;
15.4.6.L’objet applets
Il s’agit d’un tableau contenant toutes les applets java déclarés dans la page courante.
Il ne possède ni propriétés ni méthodes.
Syntaxe :
[Link][i] ;
15.4.7.L’objet plugins
Il s’agit du tableau plugins, qui n’est reconnu que par Netscape. Il s’agit de la liste de
tous les plugins installés. Il est aussi rattaché à l’objet navigator. Je ne préciserai pas une
nouvelle fois les propriétés. Pour cela, voyez la section [Link] objets de navigator.
15.4.8.L’objet frames
Il s’agit d’un tableau contenant tous les frames déclarées dans la page courante. Il ne
possède ni propriétés ni méthodes.
Syntaxe :
[Link][i] ;
[Link]
Vous devez créer un formulaire avec un texte, dans lequel on pourra entrer une couleur
dans une zone de texte et avec un click, on change soit la couleur du texte, soit la couleur du
fond.
53
[Link] OBJET DU NOYAU JAVASCRIPT
16.1.Généralités
Le langage JS n’est pas un langage orienté objet, mais il possède une partie des
concepts d’un langage objet comme le C++. Nous avons déjà vu précédemment ce concept10.
Certains de ces objets ne vous sont pas inconnus. Vous connaissez l’objet boolean. Nous
avons vu l’objet Array. Nous verrons dans ci-après les 4 autres objets intégrés au JS. Il s’agit
de l’objet Math, de l’objet String, de l’objet Date et de l’objet Image.
[Link] précisions
Certains de ces objets seront déjà définis, comme l’objet Math. L’objet String est
défini par une variable – il s’agit des chaînes de caractères – et n’a pas besoin de constructeur.
Les objets Date et Image nécessitent un constructeur, intégré au langage, mais qu’il faut
appeler selon la syntaxe habituelle. Certains objets Image existent déjà dans votre page, sans
que vous le sachiez. Il s’agit des balises <img>. Ces dernières n’ont donc pas besoin de faire
appel au constructeur.
17.L’OBJET MATH
[Link]
Les fonctions mathématiques usuelles ont été transcrites en langage JS à travers l’objet
Math. La plupart des fonctions s’utilisent selon la même syntaxe.
Syntaxe :
var1 = [Link](paramètres) ;
[Link] diverses
[Link] trigonométriques
• sin(x)
• asin(x)
• cos(x)
• acos(x)
• tan(x)
• atan(x)
54
[Link] logarithmiques
• exp(x)
• log(x)
[Link]
• [Link]
• math.LN2
• math.LN10
• math.E
• math.LOG2E
• math.LOG10E
[Link]
Si vous utilisez beaucoup l’objet math, l’écriture deviendra vite pénible. Il est possible
de ne pas avoir à écrire le mot "math" à chaque fois. Il suffit d’encadrer la zone de code par
des accolades et l’expression with(math).
Syntaxe :
with (math) {
code...
}
Exemple 17.1 :
with (Math) {
x = sqrt (238) ;
y = sin (x) ;
[Link](y) ;
}
[Link]
L’exercice est relativement simple. Il consiste à afficher la racine carrée de tous les x
entiers, compris dans [0 ; 20]. Le résultat doit être arrondi à l’entier.
18.L’OBJET STRING
18.1.Généralités
Un objet string est une chaîne de caractères. Il possède une propriété et 7 méthodes.
Cette classe permet la manipulation des caractères qui s’avère très utile en JS. Il est à
préciser que l’objet string ne se construit pas comme les autres objets. Une chaîne de caractère
est en soi un objet string.
[Link] propriété
Syntaxe :
variable1 = [Link] ;
55
variable = (“chaine”).length ;
Exemple 18.1 :
x = "Mon château" ;
y = [Link] ;
[Link](y) ;
[Link] méthodes
[Link] ()
Syntaxe :
chaine1 = [Link](x) ;
chaine1 = (“chaine”).charAt(x) ;
chaine1 = charAt(chaine2,x) ;
Exemple 18.2 :
x = "Mon Château" ;
y = [Link](4) ;
[Link](y) ;
[Link] ()
Cette méthode renvoie les nombre ASCII passés en paramètres sous forme de chaîne
de caractère.
Syntaxe :
[Link](i1,i2,i3)
Exemple 18.3 :
[Link]([Link](12,105,123,104)) ;
[Link] ()
Syntaxe :
variable = [Link](position)
Exemple 18.4 :
y = "lepape@[Link]";
[Link]([Link](6)) ;
56
[Link] ()
Cette méthode renvoie la première position d’une chaîne partielle dans une autre
chaîne en partant de gauche, à partir de la position x indiquée en paramètre. Si elle n’est pas
présente, la méthode renvoie –1. Le numéro de la position est compris entre 0 et la longueur
de la chaîne –1.
Syntaxe :
variable = [Link] (chaine_partielle, x)
Exemple 18.5 :
x = "maman" ;
y = [Link]("ma",0) ;
[Link](y) ;
[Link] ()
Cette méthode renvoie la première position d’une chaîne partielle dans une autre
chaîne en partant de gauche, à partir de la position x indiquée en paramètre. Si elle n’est pas
présente, la méthode renvoie –1. Le numéro de la position est compris entre 0 et la longueur
de la chaîne –1.
Syntaxe :
variable = [Link] (chaine_partielle, x)
Exemple 18.6 :
x = "maman" ;
y = [Link]("ma",4) ;
[Link](y) ;
[Link] ()
Syntaxe :
variable = [Link] (x,y)
Exemple 18.7 :
x = "maman" ;
y = [Link](1,3) ;
[Link](y) ;
[Link] ()
57
Syntaxe :
variable = [Link](début, n)
Exemple 18.8 :
y = "lepape@[Link]";
[Link]([Link](5,2)) ;
[Link] ()
Syntaxe :
variable = [Link](début, fin)
Exemple 18.9 :
y = "lepape@[Link]";
[Link]([Link](7)) ;
[Link] ()
Syntaxe :
variable = [Link](séparateur)
Exemple 18.10 :
x = "lepape@[Link]" ;
y = [Link]("@") ;
[Link](y[0] + "<br>" + y[1]) ;
[Link] ()
Syntaxe :
variable = [Link](chaine2)
Exemple 18.11 :
x = "Ecrivez-moi à " ;
y = "lepape@[Link]";
z = [Link](y) ;
[Link](z) ;
58
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.12 :
x = "MAMAN" ;
y = [Link]() ;
[Link](y) ;
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.13 :
x = "Maman" ;
y = [Link]() ;
[Link](y) ;
[Link] ()
Syntaxe :
variable = [Link](couleur)
Exemple 18.14 :
y = "lepape@[Link]";
[Link]([Link]("blue")) ;
[Link]([Link]("red")) ;
[Link] ()
Syntaxe :
variable = [Link](taille)
Exemple 18.15 :
y = "lepape@[Link]";
[Link]([Link]("16")) ;
[Link]([Link]("8")) ;
59
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.16 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.17 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.18 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.19 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
60
Syntaxe :
variable = [Link]()
Exemple 18.20 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.21 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.22 :
y = "lepape@[Link]";
[Link]([Link]()) ;
Résultat
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.23 :
y = "lepape@[Link]";
[Link]([Link]()) ;
61
[Link] ()
Syntaxe :
variable = [Link]()
Exemple 18.24 :
y = "lepape@[Link]";
[Link]([Link]()) ;
[Link] ()
Cette méthode renvoie le texte de l’objet en y ajoutant les balises <a href=URL
>…</a>.
Syntaxe :
variable = [Link](URL)
Exemple 18.25 :
y = "lepape@[Link]";
[Link]([Link]("[Link] ;
[Link] ()
Cette méthode crée un ancre,et renvoie le texte de l’objet en y ajoutant les balises <a
name=ancre >…</a>.
Syntaxe :
variable = [Link](ancre)
Exemple 18.26 :
y = "lepape@[Link]"
[Link]([Link]("ancre")) ;
[Link]
Les chaînes de caractères se présentent sous deux formes. Elles sont soient encadrées
de quotes ‘’, soient encadrées de guillemets " ". On affecte les chaînes à leurs variables
comme toute variable.
Exemple 18.27 :
62
x = "Maman" ;
y = ‘Maman’ ;
Dans l’exemple 12.8, les chaînes x et y sont équivalentes. Elles contiennent la même
donnée.
[Link]énation
Il est possible d’ajouter des chaînes – de les mettre à la suite l’une de l’autre – grâce à
l’opérateur « + ».
Exemple 18.28 :
x = "Maman" ;
y = ‘Papa’ ;
z=x+""+y;
[Link] (z);
Dans les fonctions, comme la méthode write(), il est possible d’ajouter ces chaînes à
l’aide de l’opérateur « + » ou « , ».
Exemple 18.29 :
x = "Maman" ;
y = ‘Papa’ ;
[Link] (x + " " + y);
[Link] (x , " " , y);
[Link]ères spéciaux
Certains caractères permettent de faire un effet dans l’affichage, d’autres doivent être
précédés du caractère « \ ». Ils sont répertoriés dans le tableau suivant.
Caractère Affichage
\b touche de suppression
\f formulaire plein
\n retour à la ligne
\r appui sur la touche ENTREE
\t tabulation
\" guillemets
\' apostrophes
\\ caractère antislash
Tab. 12.1 : Caractères spéciaux
Les autres caractères spéciaux – si on peut les appeler ainsi – sont les balises HTML.
En effet, celles-ci peuvent être insérées dans les chaînes de caractère, et seront interprétées
comme des balises par le navigateur lors de l’écriture avec la méthode [Link]().
63
Exemple 18.30 :
x = "Maman" ;
y = ‘Papa’ ;
[Link] (x + "<br>" + y);
[Link]
Dans cet exercice, vous devez créer un formulaire avec un bouton et une zone de texte.
L’internaute entre une série de mots séparés par des espaces. Ensuite, on récupère ces mots, et
on les sépare par des virgules. Enfin, on les affiche à l’écran avec [Link]().
64
19.L’OBJET DATE
19.1.Généralités
La date et l’heure sont regroupées en JS dans la classe Date. On créé alors une variable
Date grâce au constructeur.
Syntaxe:
variable =new Date()
La date et l’heure en JS ne commencent qu’à partir du 1er janvier 1970, 0h 0min 0s.
Toute référence à une date antérieure donnera un résultat aléatoire. Je ne mets pas d’exemple
à chaque méthode, je ferai un exemple général et concret à la fin du chapitre.
[Link] méthodes
[Link]
Une fois notre variable Date créée, il faut lui donner les informations sur la date et
l’heure actuelle. Les fonctions suivantes remplissent la variable – qui est une chaîne – Date
avec les données courantes. Elles utilisent toutes la même syntaxe, ce sont des méthodes
objet.
Syntaxe :
[Link]
Il est aussi possible de remplir la variable Date avec nos propres données. Les
fonctions suivantes remplissent la variable – qui est une chaîne – Date avec les données que
vous voulez. Elles utilisent toujours la même syntaxe, ce sont des méthodes objet.
Syntaxe :
65
• setYear() : Assigne les 2 derniers chiffres de l’année, sous forme d’un entier supérieur
à 1900.
• setYear() : Assigne l’année sur 4 chiffres.
• setMonth() : Assigne le mois sous la forme d’un entier compris entre 0 et 11.
• setDate() : Assigne le jour du mois sous forme d’un entier compris entre 1 et 31.
• setDay() : Assigne le jour de la semaine sous forme d’un entier compris entre 0 et 6.
• setHours() : Assigne l’heure sous forme d’un entier compris entre 0 et 23.
• setMinutes() : Assigne les minutes sous forme d’un entier compris entre 0 et 59.
• setSeconds() : Assigne les secondes sous forme d’un entier compris entre 0 et 59.
• setMilliseconds() : assigne les millisecondes de la date. A ne pas confondre avec
setTime().
19.2.3.L’heure
L’heure est très utile en JS, elle possède donc plusieurs méthodes utiles. La syntaxe est
toujours la même.
Syntaxe :
variable1 =new Date()
variable2 = variable1.méthode();
• getTime() : Renvoie l’heure courante sous forme d’un entier représentant le nombre de
millisecondes depuis le 1er janvier 1970 00h 00min 00s.
• getTimezoneOffset() : Renvoie la différence entre l’heure locale et l’heure GMT sous
forme d’un entier en minutes.
• setTime() : Assigne l’heure courante sous forme d’un entier représentant le nombre de
millisecondes depuis le 1er janvier 1970 00h 00min 00s.
• toGMTString() : Renvoie la valeur actuelle de la variable Date en heure GMT.
• toLocaleString() : Renvoie la valeur actuelle de l’heure de la variable Date. C’est plus
rapide que de combiner getHours(), getMinutes(), et getSeconds().
[Link] concret
Le but de cet exemple est d’afficher une horloge dans une ligne de texte. Pour cela, on
utilise la méthode [Link](), qui rappelle la fonction d’affichage toute les
secondes.
Exemple 19.1 :
<HTML>
<HEAD>
<script language="Javascript">
function GetTime () { //la fonction que l’on doit appeler
var time = new Date (); // objet Date()
var hours = [Link](); //on récupère les heures
var min = [Link](); //on récupère les minutes
var sec = [Link](); //on récupère les secondes
if (hours < 10) hours = "0" + hours; //on rajoute un 0
if (min < 10) min = "0" + min; //si le chiffre est
if (sec < 10) sec = "0" + sec; //inférieur à 10
// affichage de l’heure dans une zone de texte
[Link] = hours + ":" + min + ":" + sec;
66
[Link]('GetTime()',1000); /* le timer rappelle la fonction
toutes les secondes */
}
</script>
</HEAD>
<BODY onLoad="GetTime();">
<form name="time">
Voici l'heure :
<!-- la zone de texte qui sert à l’affichage -->
<center><input type="text" name="heure" value="" size=6></center>
</form>
</BODY>
</HTML>
[Link]
[Link] de jours
Le but de l’exercice est de calculer le nombre de jours écoulés depuis l’an 2000.
[Link] GMT
20.L’OBJET IMAGE
[Link] HTML
Il semble utile de rappeler que la balise <img> possède de nombreux attributs dont
certains qu’il est conseillé de déclarer en Javascript. Ci-dessous, la liste de ces attributs.
Il est important de rajouter qu’une image peut servir d’ancre pour un lien hypertexte,
c’est-à-dire être placée entre les balises <a href>…</a>. Cela permet certaines astuces
d’affichage.
20.2.L’objet
La classe Image correspond à la balise HTML <img>. Son emploi est assez difficile et
ce cours ne décrira pas en détail toutes ses facettes. Il permet de manipuler les images de
façon dynamique, ce qui est impossible avec le HTML. On rappellera que les images sont
stockées dans le tableau images[] de l’objet document.
67
Un objet Image est appelé selon la syntaxe objet habituelle, avec le constructeur
Image(). L’objet possède alors les propriétés de la balise HTML <img>, dont la liste figure
dans [Link] propriétés.
[Link] propriétés
[Link]
Un objet Image possède plusieurs propriétés, que l’on peut assimiler aux attributs de la
balise <img>.
Syntaxe :
variable = new Image();
[Link]été = x ;
var2 = [Link]été ;
[Link]
Il s’agit de l’URL absolue ou relative le l’image. Elle peut être modifiée. Cela permet
de charger en cache l’image lors du chargement de la page.
Exemple 20.1 :
<img src="[Link]" name="image1"
onMouseOver="[Link]='[Link]';"
onMouseOut="[Link]='[Link]';">
[Link]
C’est le nom défini par l’attribut name="…" de la balise <img>. A ne pas confondre
avec l’ID. Permet de trouver l’image dans le tableau [Link][].
Exemple 20.2 :
<img src="[Link]" name="image1" onMouseOver="alert('Adresse de
l\'image : ' + [Link]['image1'].src);">
[Link]
C’est l’ID défini par l’attribut id="…" de la balise <img>. A ne pas confondre avec le
nom. Permet de retrouver l’image grâce à la méthode [Link]().
Exemple 20.3 :
<img src="[Link]" name="image1" onMouseOver="alert('Adresse de
l\'image : ' + [Link]('image1').src);">
[Link]
Exemple 20.4 :
<img src="[Link]" name="image1" onMouseOver="alert('Largeur de
l\'image : ' + [Link]('image1').width);">
68
[Link]
Exemple 20.5 :
<img src="[Link]" name="image1" onMouseOver="alert('Hauteur de
l\'image : ' + [Link]('image1').height);">
[Link]
C’est un booléen qui indique si le chargement de l’image est terminé. Renvoie true si
le chargement est achevé et false dans le cas contraire.
Exemple 20.6 :
<img src="[Link]" name="image1"
onMouseOver="alert(‘chargement complété ? ' +
[Link]('image1').complete);">
[Link]
Exemple 20.7 :
<img src="[Link]" name="image1" alt="Image"
onMouseOut="alert(‘alt : ' +
[Link]('image1').alt);">
[Link]
Elle contient la taille en octets de l’image. N’est accessible que lorsque le chargement
est terminé, d’où l’utilité de la propriété complete.
Exemple 20.8 :
<img src="[Link]" name="image1" alt="Image"
onMouseOver="alert(‘Octets : ' +
[Link]('image1').fileSize);">
Il suffit de prendre l’élément <img> voulu dans la page et de changer sa propriété. Cet
élément est assimilé à un objet Image, faisant partie de l’objet document.
Exemple 20.9 :
[Link] = ‘[Link]’ ;
Dans ce cas précis, l’image change et [Link] est affiché dans le champ
image1. L’intérêt de créer un objet Image reste donc discutable, puisqu’on ne l’utilise pas…
69
L’objet image permet de stocker l’image en cache au moment du chargement de la
page. Il ne reste plus qu’à trouver le moyen de l’afficher… De plus, on peut créer un tableau
d’objets Image, ce qui nous facilitera les manipulations ensuite.
Exemple 20.10 :
<html>
<head>
<script language="Javascript">
var tab = new Array (4) ; //tableau
for (i = 0; i < 4; i++) {//remplissage d’images
tab[i] = new Image();
tab[i].src = i + ".gif";
}
function f() { //fonction d’affichage
for (i = 0; i < 4; i++) {
[Link][i].src = tab[i].src ;
}
}
</script>
</head>
<body>
<img name="img0"><br/>
<img name="img1"><br/>
<img name="img2"><br/>
<img name="img3"><br/>
<input type="button" name="click" value="Afficher les images"
onClick="f();"> <!—appel des l’affichage-->
</body>
</html>
L’exemple 14.3 permet de charger 5 images et des les afficher dans 5 balises <img>
différentes grâce au tableau images[].
Ici, le but est de créer une page avec une image et un bouton. Lorsque l’on clique sur
le bouton, l’image change. On a au total 4 images différentes. On utilise un tableau d’objets
Image, une balise <img>, une balise <input>, et une fonction. Lorsque les 4 images ont défilé,
on recommence à la première. Pour cela, on utilise un compteur.
Exemple 20.11 :
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
//création d'un tableau de 4 éléments
var tab_images = new Array(4);
for (i = 0; i < tab_images.length; i++) { // pour chaque élément
tab_images[i] = new Image(); /*on crée un objet Image
et on lui donne un fichier à charger */
70
tab_images[i].src = i + ".gif";
}
var nb = 0; //on initialise un compteur
[Link]
Ici, le but est aussi de créer une page avec une image. Lorsque passe la souris sur
l’image, l’image change. Quand on « ressort » de l’image, l’image de base revient. 4 images
différentes s’afficheront en un cycle.
[Link] HTML
21.2.Généralités
Les frames ne sont pas très utilisées en JS, mais il est important de savoir quelques
détails en cas d’utilisation de frames au niveau HTML. Il est important, lorsque le JS est
utilisé, de préciser le nom de la frame dans la balise <frame>.
Exemple 21.1 :
Ce nom ne paraît pas très utile en HTML, mais il prend toute son importance en JS. Il
sera utilisé dans deux cas : la cible des liens ainsi que pour accéder à un élément d’une autre
frame de la page.
71
[Link] hypertexte
Lorsque de l’utilisation des frames, il peut s’avérer utile d’afficher une page dans une
frame différente de celle où se trouve le lien. C’est là où intervient l’attribut target de la balise
<a href…>. Il permet d’indiquer la frame où l’on veut que la page appelée s’affiche.
Syntaxe :
La référence indiquée dans l’attribut target peut être de deux types. Dans un premier
cas, il s’agit du nom de la frame déclarée dans la page principale, cas où il faut savoir ce nom.
Sinon, si on fait référence au cadre parent, on indiquera « _parent », et si on fait référence à la
fenêtre complète, on indiquera « _top ».
Exemple 21.2 :
La première façon d’accéder aux éléments d’une autre frame se fait bien sûr par le
tableau frames[] – propriété de parent – dont le numéro des frames est attribué dans l’ordre de
déclaration de celles-ci. On accède ensuite à chaque élément de la frame ainsi qu’à ses
propriétés et méthodes.
Syntaxe :
[Link][i].[Link]été
[Link][i].objet.méthode()
Exemple 21.3 :
[Link][1].[Link] = "get";
Exemple 21.4 :
[Link][1].[Link] = "Click";
L’autre façon d’accéder aux éléments d’une frame est d’utiliser son nom. Ce sera alors
un objet de parent. Il faut donc prendre soin à donner un nom aux frames lors de leur
72
déclaration. On accède ensuite à chaque élément de la frame ainsi qu’à ses propriétés et
méthodes.
Syntaxe :
[Link]été
[Link].méthode()
Exemple 21.5 :
[Link] = "get";
Exemple 21.6 :
[Link] = "Click";
[Link] concret
L’exemple 21.7 permet de faire un compteur de secondes impair sur une frame et pair
sur l’autre.
Exemple 21.7 :
Exemple [Link]
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
</script>
</HEAD>
<body>
<form name="form1">
<center><input type="text" name="out1" value="00:00:00"></center>
</form>
</body>
</HTML>
Exemple [Link]
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
</script>
</HEAD>
<body>
<form name="form2">
<center><input type="text" name="out2" value="00:00:00"></center>
</form>
</body>
</HTML>
73
Exemple [Link]
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
var sec = 0;
var min = 0;
var hrs = 0;
var test = 1;
function f() {
sec++;
if (sec == 60) {
sec = 0;
min++;
}
if (min == 60) {
min = 0;
hrs++;
}
h = hrs;
m = min;
s = sec;
if (h < 10) h = "0" + h;
if (m < 10) m = "0" + m;
if (s < 10) s = "0" + s;
if (test == 1) {
[Link] = h + ":" + m + ":" + s;
test = 2;
}
else if (test == 2) {
[Link] = h + ":" + m + ":" + s;
test = 1;
}
[Link]('f();',1000);
}
</script>
</HEAD>
<frameset cols="50%,50%" onLoad="f();">
<frame src="exemple [Link]" name="frame1">
<frame src="exemple [Link]" name="frame2">
</frameset>
</HTML>
[Link]
Votre exercice comporte 2 frames, avec chacune un bouton. Chaque clic sur un bouton
incrémente la valeur de l’autre bouton.
[Link] COOKIES
[Link]ésentation
74
En JS, il est possible de travailler avec les cookies. Etant donné l’absence de gestion
d’écriture/lecture de fichier, les cookies sont le seul moyen de stocker des informations
permanentes sur la machine de l’utilisateur. Ces dernières pourront être récupérées plus tard et
réutilisées. Cela permet de compter le nombre de visites de l’internaute, de créer une liste de
préférence de navigation sur le site, de conserver le login et le password afin de se connecter
directement à un compte… Les applications des cookies sont nombreuses.
Le seul risque de cette méthode est la suppression ou le refus des cookies par
l’utilisateur.
Le cookie en lui-même se présente sous la forme d’une chaîne de caractère qui
contient des informations concaténées : l’information que l’on veut conserver, la date
d’expiration, l’auteur – path -, le nom de domaine, la sécurisation.
[Link]éer un cookie
On crée un cookie avec l’objet cookie de l’objet document. Il s’agit d’une chaîne de
caractère dans laquelle on indique les informations que l’on veut.
Syntaxe :
[Link] = "informations"
Dans les informations, il y a tout d’abord la chaîne que l’on souhaite conserver.
Ensuite, on met la date d’expiration, le path, le nom de domaine, et – si besoin – la fait que le
cookie soit protégé. Seuls les deux premiers champs sont obligatoires.
Syntaxe :
Il semble utile de décrire chaque champ indiqué ci-dessus. Si la chaîne est mal écrite,
le cookie ne sera pas utilisable, et deviendra par conséquent inutile.
• Le champ information : il s’agit de ce que vous voulez stocker dans le cookie. Il faut
définir un nom à la variable et lui affecter une valeur, un contenu. Comme on peut le
voir ci-dessus, les champs sont séparés par des points-virgule, il ne faut donc pas
insérer des « ; » dans le contenu.
• expires : contient la date d’expiration, à laquelle le cookie sera détruit. La valeur est en
secondes. Le plus simple consiste à utiliser un objet Date.
• path : le chemin de la page qui a créé le cookie.
• domain : le domaine de la page qui a créé le cookie.
• secure : booléen qui indique si le cookie doit utiliser le protocole HTTP (false) ou le
protocole sécurisé HTTPS (true).
Exemple 22.1 :
Dans l’exemple 9.1, il s’agit d’un cookie créé par lepape, qui expire le 31/12/2004,
auquel on peut accéder uniquement par un échange sécurisé, et qui compte le nombre de
visites.
75
22.3.Récupérer un cookie
La récupération d’un cookie est plus complexe, mais elle est essentielle, car sinon le
cookie est inutile. Le but est de trouver le type d’information que l’on cherche, et ensuite de
lire la valeur. La maîtrise de la classe String est obligatoire pour ce genre d’exercice. Cette
partie explique pas à pas la manière pour récupérer un cookie. On commence par mettre tous
les cookies dans une variable.
Syntaxe :
variable = [Link] ;
Exemple 22.2 :
//création du cookie
[Link] = "visite=1;expires=31/12/2004";
//variable à trouver
var variable_a_trouver = "visite" ;
//on rajoute le signe =
variable_a_trouver = variable_a_trouver + "=" ;
//on récupère le cookie
var chaine = [Link] ; var longueur = variable_a_trouver.length ;
//on récupère la longueur à trouver
var resultat ;
//si le cookie n’est pas vide, on commence à chercher.
if ([Link] > 0) {
//on cherche la position du début de la variable
var debut = [Link](chaine_a_trouver,0);
//si on a trouvé cette position, on continue
if (debut >=0) {
var fin ;
/* on rajoute la longueur de la variable, pour arriver au début du contenu */
debut = debut + longueur ;
//on cherche la fin du contenu, c’est-à-dire le premier « ; »
fin = [Link](";", debut) ;
//si on trouve la position du point-virgule
if (fin>=0) {
//on récupère la chaine située entre le “=” et le “;”
resultat = unescape([Link](debut,fin) ;
}
// si il n’y a pas de “;”, c’est que c’est la fin de la chaîne
else {
/* on récupère la chaine située après le “=” la fin de la chaîne */
resultat = unescape([Link](debut,[Link]) ;
}
}
76
Cet exemple n’est qu’une manière parmi d’autres. On peut imaginer quantités de
façons, mais celle-ci est sûrement la plus simple. Cela peut d’ailleurs constituer un exercice.
[Link] un cookie
Modifier un cookie est aussi simple que de le créer. En réalité, il suffit de le recréer
avec un contenu différent et une date actualisée.
[Link] un cookie
Pour supprimer un cookie, il faut tout simplement le recréer, avec la même valeur pour
éviter de se compliquer les choses, et lui donner une date d’expiration passée. Sinon, il suffit
d’attendre sa date d‘expiration, ce qui n’est pas toujours satisfaisant.
[Link]ésentation
Bien que le Javascript ne soit pas un langage orienté objet, il donne la possibilité de
créer ses propres objets. Ce chapitre s’adresse à des programmeurs possédant un niveau
correct11 car la programmation objet est un point assez difficile.
Les programmeurs C++ seront étonnés de voir que les classes JS sont très simplifiées
comparées à celles du C++. Elles ne demandent pas une définition complète de la classe, mais
il suffit de déclarer la fonction constructeur.
Contrairement au C++ - qui demande une déclaration détaillée – déclarer une classe en
JS se fait simplement en déclarant la fonction constructeur de classe. On déclare à l’intérieur
les propriétés à l’aide de l’objet this. On retrouve l’objet this découvert précédemment.
Comme on l’a vu, il désigne l’objet en cours.
Syntaxe :
function nom_classe ( paramètres ) {
[Link]été = paramètre1 ;
}
Exemple 23.1 :
77
[Link] de méthodes
Il est bien entendu possible de déclarer et utiliser des méthodes. Pour cela, il faut
déclarer une fonction indépendante de la classe. Ensuite, on déclare la fonction à l’intérieur du
constructeur, en l’affectant à une méthode. Il faut faire attention lors de cette déclaration, car
il ne faut pas mettre les parenthèses des fonctions12 !
Syntaxe :
function nom_classe () {
this.méthode = fonction ;
}
Exemple 23.2 :
Exemple 23.3 :
23.4. Exercice
Dans cet exercice, le but est de demander 3 informations à l’utilisateur (nom, age,
ville) à l’aide d’une boite de dialogue. On regroupe ces informations à l’aide d’un objet –
d’une classe crée auparavant – puis on utilise une méthode pour l’affichage dans une zone de
texte.
78
[Link] EXPRESSION REGULIERES
[Link]ésentation
24.2.Définition
Une expression régulière est avant tout un objet RegExp. Comme tout objet, il se
déclare ainsi :
Syntaxe :
var reg = RegExp (pattern, option);
Comme vous l’avez sûrement remarqué, pour la première fois, il faut fournir des
paramètres au constructeur. Ces paramètres concernent l’expression régulière que vous
utilisez. Le pattern est le motif de l’expression. L’option est une chaîne de caractères, qui –
comme son nom l’indique – contient les options de l’expression régulière. Nous allons voir
leur constitution ci-après.
Il existe aussi une autre façon de déclarer une expression régulière. Elle est moins
utilisée et surtout moins claire.
Syntaxe :
var reg = /pattern/option;
Les deux notations sont absolument équivalentes mais la première est plus explicite,
donc conseillée.
Les exemples sont regroupés dans le [Link] car ils se doivent de contenir les
deux paramètres.
24.3.1.L’option
La chaîne option peut prendre 4 valeurs. La première est la chaîne vide "", qui signifie
l’absence d’option. Les 3 autres valeurs sont détaillées ci-dessous.
79
[Link] pattern
Cette partie est la plus délicate. Le pattern est assez complexe et sa compréhension
peut être difficile. Il faut savoir que le pattern correspond aux caractères que vous cherchez –
pour une raison ou une autre – dans une chaîne.
Motif Signification
^ Début du pattern – de la chaîne.
$ Fin du pattern. Interdit tout caractère après.
. N’importe quel caractère.
a|b Caractère a OU b.
* Caractère précédent présent 0 à x fois.
+ Caractère précédent présent 1 à x fois.
? Caractère précédent présent 0 à 1 fois.
{x} Caractère précédent présent x fois.
{x,} Caractère précédent présent au moins x fois.
{x,y} Caractère précédent présent au entre x et y fois.
[abc] Groupe de caractères : n’importe lequel contenu entre les crochets.
[a-z] N’importe quel caractère alphabétique.
[^a-z] Aucun caractère alphabétique.
\\ Caractère « \ ».
\d Tous les chiffres – équivalent de [0-9] - .
\D Aucun chiffre – équivalent de [^0-9] -.
\b Limites des mots (espace, tab, …).
\s Tous les caractères d’espacements – équivalent de [\v\r\n\t\f] -.
\S Aucun caractère d’espacements – équivalent de [^\v\r\n\t\f] -.
Tous les caractères alphanumériques dont « _ » – équivalent de [A-Za-
\w
z0-9_] -.
\W Aucun caractère alphanumérique – équivalent de [^A-Za-z0-9_] -.
Tab.24.1 : Motifs des expressions régulières.
Les différents motifs ne sont pas séparés. On les met les uns à la suite des autres, sans
espacements.
80
Il est à préciser que l’on peut très bien mettre une variable ou un mot entre guillemets -
sans mise en forme avec ^ $ - comme argument pattern.
[Link]
Voici différents exemples de déclaration d’objet RegExp. Ces exemples ne sont pas
très complexes, ils donnent simplement une idée de la construction des motifs. Le pattern est
plus détaillé que les options qui ne sont pas très importantes. Chaque exemple est commenté,
pour bien comprendre le but du motif.
Exemple 24.1 :
Exemple 24.2:
L’exemple 24.2 est équivalent à l’exemple 24.1, mais il utilise l’autre notation.
Exemple 24.3 :
L’exemple 24.2 présente la vérification d’une adresse e-mail. Elle doit commencer par
au moins un caractère alphanumérique : [A-Za-z0-9]+ . Ensuite elle peut comporter autant de
caractères alphanumériques que l’on veut, plus le point, le tiret et l’underscore : [A-Za-z0-
9\.\-_]*. Tout cela doit être suivi d’un @ : @. Ensuite, il peut y avoir n’importe quel nombre
de caractères alphanumériques, plus le point, le tiret et l’underscore : [A-Za-z0-9\-_]+. Cela
doit être suivi d’un point : \. . Ce dernier doit être suivi d’au moins deux caractères
alphanumériques dont le point et le tiret : [A-Za-z0-9\.\-_]{1,} . Il n’y a aucune option.
Ces exemples ne traitent que de la création de l’objet RegExp. Ce dernier est bien
entendu inutile si on ne l’utilise pas ensuite. C’est le sujet de la partie suivante.
Il existe trois méthodes de l’objet RegExp : test(), exec() et compile(). Elles s’utilisent
selon la syntaxe objet habituelle. La première prend en paramètre la chaîne à tester selon le
motif de l’expression régulière. Elle renvoie un booléen qui indique si la chaîne correspond au
motif ou non. La deuxième méthode prend aussi la chaîne à tester en paramètre. Elle renvoie
un tableau des occurrences du motif à tester. La dernière permet de modifier le motif de
l’expression régulière, sans en créer un nouveau.
81
Exemple 24.3 :
Les méthodes de l’objet String vont aussi aider à la manipulation des expressions
régulières. Nous introduirons ici 3 nouvelles méthodes de l’objet String13. A ces trois
méthodes, nous rajouterons la plupart des méthodes String.
Syntaxe :
var reg = RegExp (pattern, option);
chaîne.méthode(reg);
Il est à noter que la méthode split() possède une syntaxe similaire. De plus, il est
possible d’indiquer simplement le motif, avec la notation peu utilisée des slash, comme
paramètre.
Syntaxe :
chaîne.méthode(/pattern/option);
Les méthodes split() et match() renvoient chacune un tableau de toutes les occurrences
trouvées.
Exemple 24.4 :
L’exemple 24.4 propose de supprimer les accents d’une chaîne. On remplace tout
simplement les lettres accentuées par la lettre sans accent.
82
[Link] concret
Ci-dessous est proposé un exemple dans lequel vous entrez une suite de mots séparés
par des caractères de ponctuation. En cliquant sur un bouton, la liste de tous les noms est
affichée. De plus, deux méthodes sont proposées. Cet exemple vous montre aussi comment
intégrer le traitement au code avec une fonction.
Exemple 24.5 :
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<script language="Javascript">
function TraitBySplit() {
var chaine = [Link]; //récupération de la chaine
var exp = new RegExp ('[.,;:/!? ]',"g"); //motif avec la ponctuation
tab = [Link](exp); //séparation de la chaine
var result = "Voici les noms :"; //affichage
for (i = 0 ; i < [Link] ; i++) {
result = result + "\n" + tab[i] ;
}
[Link] = result;
}
function TraitByMatch() {
var chaine = [Link];//récupération de la chaine
//motif avec les lettres
var exp = new RegExp ('[A-Za-zìïîòöôüûùàäâéèêë]+',"g");
tab = [Link](exp); //séparation de la chaine
var result = "Voici les noms :"; //affichage
for (i = 0 ; i < [Link] ; i++) {
result = result + "\n" + tab[i] ;
}
[Link] = result;
}
</script>
</HEAD>
<BODY>
<center>
<form name="form1">
<textarea name="input" rows=5 cols=50>Entrez une suite de noms séparés indifféremment
par les signes de ponctuation .,;:/!? et espace</textarea><br/>
<input type="button" name="match" value="Avec match()"
onClick="TraitByMatch();">
<input type="button" name="split" value="Avec split()" onClick="TraitBySplit();"><br/>
<textarea name="output" rows=5 cols=50>Résultat</textarea><br/>
</form>
</center>
</BODY>
</HTML>
83
[Link]
Faites un formulaire avec 3 lignes de texte et un bouton. Dans les lignes de texte,
l’internaute entre son adresse, code postal et ville. En cliquant sur le bouton, on teste leur
validité.
[Link] ET PROPRIÉTÉS
[Link]ésentation
[Link]()
Cette fonction encode les caractères spéciaux d’une chaîne, selon le code %xx, et
retourne cette chaîne encodée.
Syntaxe :
Exemple 25.1 :
[Link]()
Cette fonction décode les caractères spéciaux codé par escape(), et retourne cette
chaîne encodée.
Syntaxe :
Exemple 25.2 :
[Link] ()
Cette fonction convertit une chaîne passée en paramètre en nombre décimal. Renvoie
NaN si la conversion est impossible.
84
Syntaxe :
Exemple 25.3 :
[Link] ()
Cette fonction convertit une chaîne passée en paramètre en nombre entier. Renvoie
NaN si la conversion est impossible. Le paramètre facultatif base permet de faire une
conversion en une autre base que décimale.
Syntaxe :
Exemple 25.4 :
[Link] ()
Cette fonction renvoie true si le nombre est fini, sinon, elle renvoie false.
Syntaxe :
Exemple 25.5 :
[Link] ()
Cette fonction renvoie true si la chaîne n’est pas un nombre, sinon, elle renvoie false.
Syntaxe :
85
Exemple 25.6 :
Les objets de Javascript ou que vous avez créés possèdent deux propriétés et deux
méthodes en commun. Elles permettent de manipuler ces objets et de connaître certaines de
leur caractéristiques.
[Link]
Cette propriété permet de rajouter une propriété ou une méthode à un objet déjà
existant, que vous avez créé ou qui existe dans JS. On l’utilise selon la syntaxe suivante :
Syntaxe :
[Link] = valeur ;
Exemple 25.7 :
[Link]
Syntaxe :
variable = [Link] ;
Exemple 25.8 :
86
[Link] ("Constructeur Array : " + [Link] + "<br/>");
[Link] ("Constructeur String : " + [Link] + "<br/>");
[Link] ("Constructeur Date : " + [Link] + "<br/>");
[Link] ("Constructeur RegExp : " + [Link] + "<br/>");
[Link]()
Syntaxe :
variable = [Link] ;
Exemple 25.9 :
[Link]()
Syntaxe :
variable = [Link] ;
Exemple 25.9 :
87