111
G
R
A
111
PROGRAMMER EN JAVASCRIPT
U.E 1 : Introduction au JavaScript P
R
O
U.E 2 : Notions de base du JavaScript R
A
M
M
U.E 3 : Structures de contrôles, tableaux et E
fonctions en JavaScript E
N
J
U.E 4 : Les événements en JavaScript
V A
S
C
R
I
P
T
S i tuation problème
Votre camarade vient de créer un formulaire en HTML permettant
d’entrer les données par un utilisateur et souhaiterait contrôler et
manipuler ces données (vérification de la saisie, convertir les
112
112
données numériques, …). Peut-il le faire en HTML ? sinon
proposez lui un langage approprié.
113
113
Introduction au JavaScript
C o mpétences visées :
Énoncer les limites du HTML liées à l’interactivité
Définir JavaScript
Énoncer les avantages et limites de JavaScript
P
Utiliser la balise script
R
O
G
R Activité
A
1. Donner le role des balise f o rm, i nput, a
M
M 2. Donner le role des attributs name , value, i d, type
E
3. Justifier cette affirmation : le HTML et le CSS permettent de créer des pages web
R
statiques
E
4. Quand dit-on qu’une page web est interactive
N
5. Qu’entendez-vous par co té client, coté se rveur
J
A
V INTRODUCTION
A
S Le html et le CSS nous permettent de créer et mettre en forme des pages
C web dites statiques car elles ne peuvent pas interagir avec l’utilisateur (récupérer ou
R
I vérifier les données saisies par un utilisateur par exemple). Pour Remédier à ce
P problème, des langages tels que, ASP, PHP, ou JavaScript ont vu le jour. Le
T
JavaScript a été développé par Netscape en 1995 sous le nom de LiveScript et
s’exécute directement sur le navigateur de l’utilisateur.
I. DÉFINITION, IMPORTANCE ET LIMITE DE JAVASCRIPT
1 Dé finition
U n script est une suite d’instructions permettant d’automatiser certaines
tâches.
L e JavaScript est un langage de script orienté objet exécutable par les
114
114
navigateurs web. Pour cela on dit que c’est un langage qui s’exécute coter client.
C
P
115
115
2 Importance
JavaScript permet aux programmeurs web d e créer l es p ages dynamiques ;
c’est-à-dire :
I nteragir avec l ’utilisateur: JavaScript permet au navigateur de traiter directement
(sans accéder au serveur) certaines actions de l’utilisateur ;
E mb ellir l es pages: Afficher/masquer du texte, faire défiler des objets, créer
des info-bulles, gérer des menus;
R é agir aux é vénements de l a so uris
E f f ectuer d es calculs e t des t ests.
P
R
O
3 L imite
G
R
Les principales limites de ce langage sont : ne permet pas la connexion à A
une base de données, ne permet pas de lire ou écrire dans un disque dur, n’est pas
M
M
autonome car ne peut fonctionner sans le HTML, est très dépendant du navigateur. E
R
II. UTILISATION DE LA BALISE SCRIPT E
Le code JavaScript est placé entre les balises : <script > et </script> selon
N
l’une des structures suivantes :
J
A
< script type=”text/javascript”>
taper des instructions JavaScript
ici
< / script>
< sc ript l a nguage=”javascript”> taper
V
des instructions JavaScript ici A
< / sc ript>
S
Notons qu’il existe plusieurs façons d’utiliser un script dans une page web :
R
De manière i nterne : dans l’entête ou le corps de la page
I
De manière e xterne : dans un fichier externe (avec une extension .j s) à la page T
web.
Dans ce second cas, la balise <SCRI PT> contiendra un attribut src faisant
référence au fichier externe : < script src= ”m o n_fichie r_ e xte rne. js” > code ici
116
116
</script> ; Ceci a pour avantages entre autres d’alléger la page HTML la
rendant plus lisible, et rendre le code réutilisable et plus facilement maintenable.
R e mar q ue : Il est vivement conseiller d’inclure des commentaires personnels
dans vos codes JavaScript comme pour tous les langages de programmation.
JavaScript utilise le symbole « // » pour des commentaires de fin de ligne et « /
* … */ » pour des commentaires sur plusieurs lignes.
O
117
117
Ne pas confondre les commentaires JavaScript et les commentaires Html (<!-- …--
> ).
P
R
EXERCICES
G
R
A
1) Définir script,
javascript
M
E x ercice 1
M 2) Pourquoi utilise-t-on du javascript dans les pages
web
E
3) Que signifie l’expression « langage coté client
»
R
4) Donner deux avantages ainsi que deux limites du langage javascript
E
5) Soit l’affirmation suivante : « le code javascript peut être insérer partout dans
une
N
page web »
J
a. Dire en justifiant si cette affirmation est
vraie
A
V b. Peut-on utiliser le code javascript en dehors de la page web ? si oui
comment ?
A
6) Les commentaires permettent entre autres d’assurer la maintenabilité du code
;S
C comment insérer un commentaire en
javascript
R
I
P
T
I
T
118
118
Notions de base du JavaScript
C o mpétences visées :
Déclarer les variables en JavaScript
Effectuer les opérations d’entrées/sorties en JavaScript
Effectuer les conversions de type
Utiliser les opérateurs en JavaScript
P
A ctivité :
R
O
1. Qu’est-ce qu’un algorithme G
2. Dans l’écriture des algorithmes,
R
A
a. Quelle différence faites-vous entre une constante et une variable M
b. Quelle sont les conventions dans le nommage d’une variable
M
E
c. Faire la déclaration de variables nommées rayon (de type entier), perimetre (de R
type réel), nom (de type chaine de caractères) et d’une constante PI
E
d. Déduire l’écriture du périmètre d’un cercle N
3. Écrire les instructions permettant de saisir le rayon et d’afficher le périmètre
J
4. Si le périmètre est de 3.1415, quelle est le type du nombre obtenu par troncature A
d’ordre zéro du périmètre V
A
5. On suppose maintenant que le rayon est de type chaine de caractère (ex : S
‘’2.5première’’); peut-on calculer le périmètre avec une telle valeur du rayon ? Si oui, C
comment ?
R
P
INTRODUCTION
Dans l’écriture des scripts, il est très souvent nécessaire d’avoir recours
aux variables et constantes ; une variable est considérée comme un espace dans
lequel on peut stocker une valeur (un chiffre, un nombre, un caractère ou une
chaine de caractères), qui peut être modifiée pendant l’exécution du programme
par opposition à une constante qui ne peut être modifiée. Il est ainsi possible
119
119
d’appliquer à ces objets différentes opérations dans le but d’effectuer une tache
précise.
R
R
M
V
C
120
120
I. DÉCLARATION DES VARIABLES EN JAVASCRIPT
En JavaScript, les noms de variable peuvent être aussi longs que l'on
désire, mais doivent répondre à certains critères :
Commencer par une lettre (majuscule ou minuscule) ou un "_" ;
Comporter uniquement des lettres, des chiffres et les caractères _ et $
; Ne peuvent pas être des mots réservés du langage.
E x emples : surface, stylo_rouge ; Contre Exemples: peri-metre, demi
périmètre
NB : JS est sensible à la casse. Attention donc aux majuscules et minuscule !
P
Les variables peuvent se déclarer de deux façons :
O Soit de façon explicite : on dit à JS que ceci est une variable. Le mot clé (la
G
commande) de déclaration d’une variable est « var »
A S y ntaxe : var nom_variable = valeur
M
E x emples : var nombre = 19 var prenom = "zavier" var note
E Soit de façon implicite : on écrit directement le nom de la variable suivi de la
R
valeur que l’on lui attribue et JS s’en accommode.
E S y ntaxe : nom_variable = valeur E x emples : nombre = 19 prenom= "zavier"
N
Le mot clé de déclaration d’une constante est « co nst ».
J S y ntaxe :Const nom_constante = valeur
A
E x emples : C o nst taux_TVA = 0.1925 C o nst PI = 3.14
A
S
II. LES INSTRUCTIONS DE BASES EN JAVASCRIPT
R U ne instruction est l’opération élémentaire que le processeur peut accomplie
I
P en une seule fois. Les instructions d’entrées/sorties en javascript sont généralement
T effectuées au moyen de boites de dialogues ou de méthodes.
1 L ’instruction d’affectation.
Cette instruction permet d’attribuer une valeur ou le résultat d’une
expression à une variable.
S y ntaxe : nom_variable=valeur ; E x emple : nombre =
19 prenom = "zavier"
117
121
2 L ’instruction de l ecture ou d
’entrée.
Cette instruction permet de récupérer les informations saisies par
l’utilisateur
et de les stocker dans les variables. Pour cela on utilisera la méthode p
rompt(). S y ntaxe :
variable=p rompt("texte à afficher", "valeur par
défaut"). La valeur par défaut est optionnelle.
E x emple
:
Nom = p rompt("Entrer votre nom" , "Bineta") ; l’exécution de cette
commande
fera appel à la boite de dialogue ci -contre où l’utilisateur peut entrer son nom et
P
R
cliquer sur ok pour valider ou sur annuler O
G
R
A
M
M
E
R
E
N
J
3 L ’instruction d’affichage o u de so rtie o u d ’écriture.
A
V
Pour afficher du texte en JavaScript on peut utiliser la méthode w rite() ou la méthode A
al e rt()
S
C
S y ntaxe : R
document.write("texte à afficher") ; ou alert("texte à afficher") ;
I
P
document.write(nom_variable) ; ou alert(nom_variable) ; T
117
122
E x emple
:
al e rt("Que c’est facile la première scientifique !") ; l’exécution de cette
commande va afficher une boite de dialogue d’alerte similaire à celle
présentée ci -contre et l’utilisateur n’a plus qu’a cliquer sur ok pour continuer.
117
123
NB : Il est aussi possible de demander une confirmation pour une
action (suppression d’élément, fermeture de page, …). On utilise la fonction
«confirm» dont la syntaxe est :co nfirm("Demande d e confirmation") ;
E x emple
:
variable=co nfirm("Voulez-vous fermer la page ?")
;
P
R
O
G
R
A
M
M
E R e marque : La réponse de la commande p rompt() est toujours une chaîne de
R
caractères.
E Si on désire récupérer un nombre, il faut utiliser la fonction p arseInt (pour convertir
N
en un nombre entier) ou p arseFloat (pour la convertir en nombre à virgule).
J S y ntaxe : parseInt(chaine) ou parseInt(var) ; parseFloat(chaine) ou parseFloat(var)
A
E x emples :
V
A Age= prompt("Entrer votre age")
;
S p arseInt(Age) ;
C
Ou Age = parseInt(prompt("Entrer votre ag
R parseInt(“23AZer”) et parseInt(“23”) ; //ces deux instructions retournent le
I nombre 23.
P
T Rayon = parseFloat("24.568Bonjour38"); //cette instruction renvoie le nombre
24.568
III. LES OPÉRATIONS EN JAVASCRIPT
117
124
Les opérations sont effectuées au moyen d’opérateurs qui permettent
d’élaborer une expression en vue d’effectuer un calcul ou une comparaison ;
l’usage des parenthèses est vivement conseillé dans le cas d’expressions complexes.
Ainsi on peut distinguer :
119
119
O p érateur De scription
+ Addition
- Soustraction
* Multiplication
/ Division
^ Puissance
% Modulo (a%b renvoie le reste de la
division entière de a par b)
+ + Incrément // x++ équivaut à x = x +
1
-- Décrément // x-- équivaut à x = x - 1
Opérateur De scription
&& ET logique
|| OU logique
! Né g ation
logique
O p érateur De scription
== Est égal à
!= Différent de
> Strictement supérieur à
< Strictement inférieur à
>= Supérieur ou égal
<= Inférieur ou égal
2 L es o pérateurs arithmétiques
P
R
O
G
R
A
M
M
2 L es o pérateurs l ogiques E R
E
N
J
A
V
3 L es o pérateurs d e comparaison
A
S
C R I P T
Retourne T rue ou False (1 ou 0)
4 L ’opérateur d e chaine ou d e concaténation
L’opération entre les chaines de caractère s’appelle la concaténation, c'est -à-dire la
juxtaposition des objets de type chaine. L’opérateur de concaténation est ‘+ ’.
R
120
120
E x emples :
a= 2 ; b=8 ; c=5 ; texte1= "bonjour " ; t exte2= "le monde !
" ; c = b - c ;  3 d = (a > 0) && (c < b) ;False
(0) alert (texte1 + texte2) ; affiche bonjour le monde !
a++ ;3 b-- ;7 (a + c) == (b – c % 2) ; True (1)
R e marque : L’expression variable = variable o perateur constante (a = a + 3
par exemple) peut être simplifiée en variable o pérateur= constante (a + = 3 ,
qui lui est équivalente).
P
Ainsi, au lieu d’écrire no mbre = no mbre * 2 6 , on peut écrire simplement
O no mbre*=26 ; il en est de même pour tous les opérateurs arithmétiques.
G
R
A
M
M
E
R
E EXERCICES
N
E x ercice
1
J
A 1) Qu’est-ce qu’une variable
V 2) Quelle différence faites-vous entre une variable et une constante
A
S 3) Justifier l’affirmation suivante : « le javascript est un langage faiblement typé »
C 4) Que signifie cette affirmation : « en javascript, une variable peut être déclarer
R
I implicitement »
P 5) Parmi les variables suivantes, identifier celles qui sont non valides et justifier :
T
_123 ; pianic26 ; yahoo@; première_CD ; lyoss-plus; grand prof; 4points; alert;
facile!_bizarre8
Soit le script:
<script language =
"javascript">
E x ercice 2
var age = parseInt(prompt("entrer votre age svp")) ;
121
121
</script>
a. Quel est le type de donnée retourné par défaut dans un
prompt b. Déduire le rôle du parseInt dans ce script
O
A
E
122
122
Soit le script :
<script language =
"javascript">
E x ercice 3
var nombre1 = parseInt(prompt("entrer le premier nombre svp"))
; var nombre2 = prompt("entrer le deuxième nombre svp") ;
alert(nombre1 + nombre2) ;
</script>
a. Quel sera le contenu de la boite de dialogue alert si l’utilisateur entre P
respectivement
R
i.04 et 88 G
ii.123bonjour et salut
R
b. Corriger ce script pour retourner effectivement la somme de nombre1 et M
nombre2
M
R
E x ercice
4 E
Déterminer le contenu des variables d, e et f dans le script suivant : N
<script language = "javascript"> J
a = 25 ; b = 12 ; c = 2 ; A
a++ ; b-- ; c*=3 ; V
A
d = a%b ; e = (b==c) ; f = e && d S
</script> C
R
I
E x ercice 5
P
T
1) Écrire un script qui demande à l’utilisateur le rayon et la hauteur d’un cylindre et
affiche son volume
a. Dans une boite de
dialogue b. Sur la page
2) Écrire un script qui demande le nom et le prénom de l’utilisateur puis affiche
le nom complet
P
123
123
Structures de contrôles,
tableaux et fonctions en
JavaScript
C o mpétences visées :
Traduire des algorithmes séquentiels, conditionnels et itératifs en JavaScript
Déclarer un tableau et une fonction en JavaScript
R Activité
O
Qu’est-ce qu’une structure conditionnelle ? une structure répétitive ?
G
R Qu’est-ce qu’une fonction ? une procédure ?
A
M
M Soit l’algorithme suivant :
E
Algorithme sans_nom
R
Var nombre : entier ;
E
Début
N
nombre  4 ;
J
Tantque (nombre #0) faire
A
V Ecrire ("entrer un nombre pair positif")
A
Lire (nombre)
S
C Si ((nombre < 0) ou (nombre mod 2 # 0)) alors
R
Ecrire ("le nombre doit être pair et positif")
I
P finSi
T
finTantque
Fin
1. Que fait cet algorithme
2. Que se passe-t-il si l’utilisateur saisi les valeurs :
a. -2
b. 5
c. 0
124
124
3. Relevez dans cet algorithme une structure conditionnelle et une
structure itérative
4. Traduire cet algorithme en script JavaScript
P
125
125
INTRODUCTION
En programmation JavaScript tout comme en algorithme, il est parfois
nécessaire d’exécuter une instruction ou un bloc d’instructions (fonction
par exemple) uniquement lorsqu’une certaine condition est vérifiée ; pour cela, on
utilise des structures de contrôles. En JavaScript on distingue plusieurs
instructions qui nous permettent de contrôler l’exécution de nos
programmes : l e s structures
co nditionnelles e t les st ructures répétitives o u boucles
I. LES STRUCTURES CONDITIONNELLES R
a S t ructure avec une alternative (if…)
O
G
L’instruction if est la structure de test la plus basique, elle permet d’exécuter les R
instructions lorsqu’une condition est vérifiée. La syntaxe est la suivante.
A
M
I f (condition) { M
/ / l iste d ’instructions
E
R
}
Il est possible de définir plusieurs conditions à remplir avec les opérateurs ET et OU
E
N
(&& e t ||) et s’il n’ya qu’une instruction, les accolades ne sont pas nécessaires.
E x emple : If(x= =2) document.write (‘’x vaut 2’’)
J
A
V
b S tructure avec deux alternatives (if … else…)
A
S
Elle permet en plus d’exécuter d’autres instructions en cas de non réalisation de la C
condition. La syntaxe est la suivante
R
I
i f (condition) { P
/ / l istes d ’instructions T
} e l se {
/ / autres sé ries d ’instructions
126
126
}
E x emple :
if (moyenne >= 10) {
document.write( "Admis en classe superieure");
} e l se {
127
127
document.write("Redouble");
}
c S t ructure avec conditions i mbriquées
Il arrive que l’instruction dans une structure conditionnelle soit une autre structure
conditionnelle ; dans ce cas on parle de structures à condition
imbriquée. S y ntaxe : Formulation générale
if (< condition1>) {
P
< action>
R
O } e l se if (<condition2>) {
G
< action>
R
A …
M
}e l se {
M
E < action>
R
…
E }
N
J
E x emple :
A
V if ( reponse ==1 ) {
A
cadeau = “console”;
S
C }
R
e l se if ( reponse==3 ) {
I
P cadeau = “fleurs” ;
T
}
e l se {
cadeau = “rien du tout” ;
}
R emarque : Il existe une autre condition nommée « S witch » que nous ne verrons pas
dans ce
cours!
125
125
II. STRUCTURES RÉPÉTITIVES (OU BOUCLES OU ITÉRATIVES)
Elles permettent d’effectuer de manière répétitive une série
d’opérations jusqu’à ce qu’une condition ne soit plus réalisée. JavaScript propose
plusieurs types
de boucles itératives : boucle f o r, boucle w hile et boucle d o…while.
a W h
ile
Elle correspond à la structure algorithmique «Tant Que» et
permet
d’exécuter les <actions> aussi longtemps que <condition> est vraie. Si la condition
P
est fausse au début, aucune instruction n’est exécutée. Les actions doivent permettre
R d’incrémenter la condition. Sa syntaxe est la suivante :
O
G
w h ile ( < condition> ) { R
< actions>;
A
M
... M
}
E
R
E x emple :
E
N
<script language="JavaScript">
compt=1; J
A
while (compt<5) { V
document.write ("ligne : " + compt + "<br>");
A
S
compt++; C
} R
I
document.write("fin de la boucle"); P
</script> T
126
126
b Do …While
Elle correspond à la structure algorithmique «Repéter» et permet
d’exécuter les <actions> aussi longtemps que <condition> est vraie. Si la
condition est fausse au début, les instructions sont quand même exécutées une
fois. Les act ions doivent permettre d’incrémenter la condition. Sa syntaxe est la
suivante :
d o {
< actions>
...
127
127
} w h ile ( < condition> )
E x emple :
<script language="JavaScript">
compt=1;
do{
document.write ("ligne : " + compt + "<br>");
compt++;
P
}
R
O while (compt<5)
G
document.write("fin de la
boucle");
R
A </script>
M
M
E R e marque
:
R
La boucle While doit être utilisée uniquement si on a une condition qui teste
l’entrée E dans la boucle, et la Do...While si la condition teste la sortie de la boucle
(le corps N
de la boucle doit être exécuter au moins une fois). Il est également
recommandé
J d’utiliser la boucle lorsque le nombre d’itération est connu
d’avance.
A
V
A c Fo r
S Elle correspond à la structure algorithmique «Pour» et la syntaxe est la
suivante :
C
R f o r (compteur ; condition; modification d u
compteur) {
I <
action>
P
T ...
}
E x emple :
128
128
<script language="JavaScript">
var somme=20;
for (i=10 ;i<=12 ; i++){
somme+=i ;
document.write("La somme est : " +somme+"<br>");
}
</script>
Indice 0 Indice 1 Indice 2 Indice 3 … Indice n
Donnée 1 Donnée 2 Donnée 3 Donnée 4 … Indice n
I
129
129
III. TABLEAUX ET FONCTIONS EN JS
1 L e s t ableaux
Les tableaux sont des variables qui permettent de stocker plusieurs
données à la fois. Ils sont généralement utilisés pour stocker une liste d’éléments
(nombres, textes, tableaux). De manière interne, les tableaux sont représentés
de la mani ère
suivante :
P
La taille d’un tableau est dynamique. Elle augmente au fur et à mesure qu’on y ajoute
R
O
des éléments. Elle est donnée par la propriété «length» (exemple : tableau1.length) G
R
A
sy nt axe M
Pour créer (déclarer) un tableau on utilise les syntaxes ci -après :
M
E
t ableau1 = new A rray( ) ;// sans i nitialisation R
t ableau2 = new A rray("donnée 1", "donnée 2", "donnée 3 ", "donnée 4 ") ;
E
t ableau3 = ["donnée 1", "donnée 2", "donnée 3 ", "donnée 4 "]; N
Pour accéder à un élément du tableau, on utilise la syntaxe suivante : tableau1
J
[indice]. A
N. B : la position 1 est répérée par l’indice 0
V
A
E x emple : tab [3] indique la valeur contenue à la position 4 du tableau tab. S
<script language="JavaScript"> C
tab = new Array( ) ;//
R
tab [0]= " Ella " ; P
tab [1]= "Anicet" ;
T
tab [0]= " Raissa " ;
tab.sort( ) ;
alert ("Prénoms par ordre alphabétique")
for (indice=0 ; indice<tab.length ; indice++) {
130
130
alert (tab [indice]) ;
}
</script >
R
M
:
C
P
131
131
I n terprétation :
La première ligne du script déclare un tableau vide
; Ensuite on insère les prénoms «Ella», «Anicet» ;
On remplace la valeur d’indice 0 (c’est -à-dire «Ella») par «Raissa»
; On range les données par ordre alphabétique ;
On entre dans une boucle «For» avec pour compteur «indice» initialisée à 0,
la condition de continuation «indice<2» car la taille du tableau est 2 ;
La boucle va afficher les valeurs du tableau indice après indice.
P
R
O 2 L e s f onctions
G
On appelle f o nction un sous-programme qui permet d'effectuer un ensemble
A d'instruction par simple appel de la fonction dans le corps du programme principal.
M
Une fonction qui ne retourne aucune valeur est appelée p rocédure. Dans JavaScript,
E les fonctions et les procédures sont définies par le mot clé f unction.
R
NB : Avant d’être utilisée, une fonction ou procédure doit être définie car pour
E l’appeler dans le corps du programme il faut que le navigateur la connaisse, c’est -à-
N
dire son nom, ces arguments (paramètres) et les instructions qu’elle contient.
J La d é claration d’une fonction ou procédure se fait en respectant la syntaxe suivante
A
V
A S y ntaxe :
S
f unction nom_fonction(parametre 1, parametre 2, ...) {
R <instructions >
I
<instructions >
T …..
[ re turn resultat; ] /* présent si c’est une fonction */
}
E x emple : fonction calculant le carrée d’un nombre qu’on lui passe en paramètre.
f unction carre(nombre)
{
res = nombre*nombre ;
re t urn res;
132
132
}
129
Pour utiliser une fonction, il suffit de faire ap pel à elle en écrivant son nom
(tout en respectant la case) suivie d’une parenthèse ouvrante (éventuellement
ces arguments) puis d’une parenthèse fermente. E x e mple : a = carre(5) ;
R e
marques:
a Fo nctions p
rédéfinies
Javascript dispose aussi de fonctions mathématiques tels que :
Math.abs(x), Math.sqrt(x), Math.pow(x,y), Math.sin(x), Math.log(x),
Math.random(),
Math.max(x,y), Math.min(x,y) etc.
P
R
O
b P ortée d ’une variable
G
R
Toute variable déclarée en dehors de toute fonction, est dite variable globale A
et peut donc être exploiter partout dans le script tandis qu’une variable déclarée par
M
M
le mot clé var dans une fonction aura une portée limitée à cette seule fonction et ne E
pourra donc pas être exploiter ailleurs dans le script. D'où le nom de variable locale.
R Par contre, toujours dans une fonction, si la variable est déclarée de manière
implicite E (sans utiliser le mot var), sa portée sera globale.
N
J
A
V
A
S
C
R
I
P
T
129
EXERCICES
E x ercice
1
Q C M (questions à choix multiples)
1) En JavaScript, l’instruction permettant d’affecter la valeur 1 dans la 2e case du
tableau nommé tab est :
a- tab[1]=1 ; b- tab(1)=2 ; c- tab[2]=1 ; d- tab(1)=2
P 2) L’instruction permettant d’afficher la taille du tableau nommé tab en JavaScript
R
est : a- Alert(tab.taille) ; b- Document.write(tab.size) ; c- Alert (Tab.length) ;
O
G d- Alert (tab.length) ;
R
3) L’une des méthodes suivantes permet de convertir un tableau en chaine de
A
M caractère ;
M
a- concat() ; b- sort() ; c- join(); d- length()
E
R 4) Une structure permettant d’effectuer répétitive ment une série d’opérations avec
une condition est :
E
N a- une fonction ; b- une boucle ; c- une procedure; d- une itération
5) Selon la hiérarchie des objets en JS, le bouton but1 du formulaire form1 peut être
J
A accéder par :
V
a- window.form1.but1; b- document.form1.but1;
A
S c- document.window.form1.but1; d- window.but1 ;
C
R
I E x ercice 2
P
R é pondre par V rai ou Faux
T
1) On peut déclarer un tableau sans initialiser en JavaScript
2) La méthode prompt() est une instruction d’écriture ou de sortie
3) Le mot clé return est obligatoire dans la déclaration d’une procédure
E x ercice
3
129
On considère le code JavaScript suivant. Répondre clairement aux
questions suivantes
131
131
<html>
<head><title>Bacc ESG</title>
<script language="javascript">
var note1 = 12 ;var note2 = 13;
decision;
function moyenne(note1, note2){
var moyenne = (note1+note2)/2
; return moyenne ;}
moyenne(note1, note2) ;
if(moyenne >=10){
decison= ‘‘vous avez reussi au
Bacc’’ ;
document.write(decision) ;}
else{
decision = ‘‘Echec’’;
document.write(decision) ;}
</script>
</head>
<body> <h1> Exo </h1> </body>
</html>
1. Quels langages a-t-on utilisé pour écrire
ce code ?
2. Donner deux exemples de logiciels
permettant d’éditer ce code.
3. Quel titre aura le document généré par ce
code lorsqu’il sera interprété ?
4. Combien de variables compte ce programme
?
5. Quel sera le contenu de la variable moyenne
P
lorsque le code sera interprété ? R
6. Relever dans ce code : O
a. Une instruction d’initialisation
G
R
b. Une instruction d’affichage A
c. Un nom de fonction M
d. Une structure de contrôle
M
E
7. Dans quel endroit de la page HTML a été R
inséré le code JavaScript ?
E
N
J
A
E x ercice 4 V
Le proviseur du lycée a besoin d’un élève de terminale parce qu’il aimerait calculer
A
S
directement depuis une des pages web du site du lycée le nombre total des élèves et C
vous allez l’y aider. R
I
1. Donner la syntaxe d’une f o nction en JavaScript P
2. Donner la syntaxe d’une b o ucle f or en JavaScript
T
3. Écrire une fonction nommée so m_ tab qui prend un tableau d’entiers en paramètre
et retourne la somme de ses valeurs
4. Déclarer sans initialiser un tableau nommé nb r_el_class qui enregistrera chaque
fois le nombre d’élèves d’une classe
132
132
5. Que fais ce bout de code ?
j=0 ;
do{
var a= parseInt(prompt("entrer un nombre d’eleves et 0 lorsque
vous
avez parcouru toutes les classes") );
133
133
Tab[j]=a;
j=j+1;
}while (a != 0) ;
En utilisant les q uestions 3 , 4 et 5 , écrire un script pour afficher le nombre
d’élèves de l’établissement au Boss
P
R
O
G
R
A
M
M
E
R
E
N
J
A
V
A
S
C
R
I
P
T
134
134
Les événements en JavaScript
C o mpétences visées
:
Utiliser l’évènement onclick
Utiliser les zones de saisie en javascript
Programmer un convertisseur
P
R
A ctivité
O
G
1. Qu’est-ce qu’un formulaire ? R
2. Donner quelques éléments que nous pouvons retrouver sur un formulaire
A
M
3. Comment déclare-t-on un formulaire sur une page web ? M
4. Écrire le code HTML permettant de créer un formulaire comportant :
E
R
a. Une zone de texte libellée t aille e n
cm
b. Un bouton de validation avec la valeur co nvertir
E
N
c. Une autre zone de texte libellée t aille e n
pouce
5. On souhaite maintenant que lorsque la page est visualisée, l’utilisateur saisi saJ
A
taille en centimètre dans le champ prévu à cet effet, puis il clique sur convertir et sa V
taille en pouce doit être affichée dans le champ pour la taille en pousse. Com ment
A
S
procéder ? C
R
I
INTRODUCTION P
Le langage JavaScript associé au langage HTML permet de rendre les pages
T
135
135
web interactives ; (non seulement les utilisateurs peuvent prodiguer des
informations à une page web mais la page peut aussi réagir aux informations
saisies par un utilisateur). Les boites de dialogues comme nous l’avons déjà vu
permettent par exemple d’envoyer des messages aux utilisateurs ou d’obtenir des
informations des utilisateurs ; cette nouvelle leçon sera consacrée à l’étude
d’un autre élément d’interactivité dans JavaScript : l e s é vènements
136
136
1 Dé finition e t syntaxe
L e s é vénement s sont des actions de l’utilisateur qui vont pouvoir
donner lieu à une interactivité. L’événement par excellence est l e clic de souris.
Il est possible d’associer des actions à des événements aux moyens des g e
stionnaires d’événements. Le nom d’un gestionnaire d’événement commence
toujours par le mot « o n » ; on peut par exemple citer :
o nclick / ondbclick : lorsqu’on clique ou double clique avec la souris
o nfocus : lorsqu’un champ est actif ou
sollicité
P
o nchange : lorsqu’ un champ perd le focus
R
O o nsubmit : lorsqu’on clique sur un bouton du type submit
G
o nkeydown/onkeyup : lorsqu’on presse / relâche une touche du clavier
R
A etc.
M
Les gestionnaires d’événements sont associés à des objets, et leur code s’insè re
M
E dans la balise de ceux-ci ; la syntaxe d’utilisation d’un gestionnaire d’événement est
R
la suivante :
E o nE venement= "Action_Javascript o u Fonction();"
N
J E x emple : onclick= "alert("Bonjour");" onchange="mafonction();"
A
V
A 2 A ccès aux é léments d e la p age par l ’attribut « i d »
S Pour accéder à un élément de la page, on lui donne une valeur d’attribut «
C
R i d » dans le code HTML. Ensuite, dans le script JavaScript, on utilise la syntaxe
I suivante :
P
T d o cument.getElementById("id") // où id désigne la valeur de l’attribut id
E x emple :
d
ocument.getElementById("lienProduits").href="products.html";
document.getElementById("img").scr = "photo.jpg";
document.getElementById("txt").value= "les ways forts";
137
137
R e marque : il est également possible d’accéder aux éléments d’une page par l’attribut
« name » mais cela donne généralement lieu à des codes plus long ; nous
n’aborderons donc pas cette notion dans cette leçon.
135
138
O
A
E
A
R
T
3 E x emple d ’application : réalisation d ’un convertisseur
C o nfère activité question n°5
<html> P
<head>
R
<meta charset = "utf-8"> G
<title>validation de formulaire avec javascript</title>
R
</head> M
<body >
M
<font face="times new roman"> R
<center><h2> mon simple convertisseur</h2></center>
E
<hr> <br> N
<form name="frm" method="get"> J
<center> A
<label for="h_cm">taille en cm :</ label> <input type="text" name="h_cm"
V
id="h_cm" > &nbsp; S
<label for="h_m">taille en mètre : </label><input type="text" name="h_m"
C
id="h_m"> <br><br> I
<input type="button" value="convertir" onclick="convertir();" >
P
</center>
</form>
135
139
<script language="javascript">
function convertir(){
var h_cm = document.getElementById("h_cm").value;
var h_m = h_cm / 100;
document.getElementById ("h_pd").value = h_m;
}
</script>
R
M
135
140
</body>
</html>
P EXERCICES
R
O E x ercice 1
G
1) Définir évènement
A 2) Quel est l’évènement qui est supporté nativement par le langage HTML
M
3) Donner le rôle d’un gestionnaire d’évènement
E 4) Décrire brièvement quatre gestionnaires d’évènement
R
E
E x ercice 2
N
Soit un formulaire avec une zone de texte (avec cet attribut id = txtZone)
J
a. Écrire une instruction permettant de garder la valeur de la zone de texte (le texte
A
V qu’elle contient) dans une variable txtVal
A
b. Écrire une instruction permettant de remplacer ce contenu par la valeur « trop
S
C cool »
R
I
P E x ercice 3
T
En vous inspirant de l’exemple du cours,
a. Créer une page web contenant :
i. Une zone de texte (libellée no m
complet)
ii. Deux boutons radios pour le sexe ( M et
F)
iii. Un bouton pour valider (OK par exemple).
b. Par la suite, écrire une fonction permettant d’afficher le message :
« Bienvenu M. nom_complet » ou « Bienvenu Mme. nom_complet », suivant le sexe
135
141
choisi (où nom_complet désigne le nom saisie par l’utilisateur).
Ex : Bienvenu M. Lionel Sop ou Bienvenu Mme. Raïssa Ngah

les fonctions, les procedures, les tableaux en Javascript Pc.docx

  • 1.
    111 G R A 111 PROGRAMMER EN JAVASCRIPT U.E1 : Introduction au JavaScript P R O U.E 2 : Notions de base du JavaScript R A M M U.E 3 : Structures de contrôles, tableaux et E fonctions en JavaScript E N J U.E 4 : Les événements en JavaScript V A S C R I P T S i tuation problème Votre camarade vient de créer un formulaire en HTML permettant d’entrer les données par un utilisateur et souhaiterait contrôler et manipuler ces données (vérification de la saisie, convertir les
  • 2.
    112 112 données numériques, …).Peut-il le faire en HTML ? sinon proposez lui un langage approprié.
  • 3.
    113 113 Introduction au JavaScript Co mpétences visées : Énoncer les limites du HTML liées à l’interactivité Définir JavaScript Énoncer les avantages et limites de JavaScript P Utiliser la balise script R O G R Activité A 1. Donner le role des balise f o rm, i nput, a M M 2. Donner le role des attributs name , value, i d, type E 3. Justifier cette affirmation : le HTML et le CSS permettent de créer des pages web R statiques E 4. Quand dit-on qu’une page web est interactive N 5. Qu’entendez-vous par co té client, coté se rveur J A V INTRODUCTION A S Le html et le CSS nous permettent de créer et mettre en forme des pages C web dites statiques car elles ne peuvent pas interagir avec l’utilisateur (récupérer ou R I vérifier les données saisies par un utilisateur par exemple). Pour Remédier à ce P problème, des langages tels que, ASP, PHP, ou JavaScript ont vu le jour. Le T JavaScript a été développé par Netscape en 1995 sous le nom de LiveScript et s’exécute directement sur le navigateur de l’utilisateur. I. DÉFINITION, IMPORTANCE ET LIMITE DE JAVASCRIPT 1 Dé finition U n script est une suite d’instructions permettant d’automatiser certaines tâches. L e JavaScript est un langage de script orienté objet exécutable par les
  • 4.
    114 114 navigateurs web. Pourcela on dit que c’est un langage qui s’exécute coter client.
  • 5.
    C P 115 115 2 Importance JavaScript permetaux programmeurs web d e créer l es p ages dynamiques ; c’est-à-dire : I nteragir avec l ’utilisateur: JavaScript permet au navigateur de traiter directement (sans accéder au serveur) certaines actions de l’utilisateur ; E mb ellir l es pages: Afficher/masquer du texte, faire défiler des objets, créer des info-bulles, gérer des menus; R é agir aux é vénements de l a so uris E f f ectuer d es calculs e t des t ests. P R O 3 L imite G R Les principales limites de ce langage sont : ne permet pas la connexion à A une base de données, ne permet pas de lire ou écrire dans un disque dur, n’est pas M M autonome car ne peut fonctionner sans le HTML, est très dépendant du navigateur. E R II. UTILISATION DE LA BALISE SCRIPT E Le code JavaScript est placé entre les balises : <script > et </script> selon N l’une des structures suivantes : J A < script type=”text/javascript”> taper des instructions JavaScript ici < / script> < sc ript l a nguage=”javascript”> taper V des instructions JavaScript ici A < / sc ript> S Notons qu’il existe plusieurs façons d’utiliser un script dans une page web : R De manière i nterne : dans l’entête ou le corps de la page I De manière e xterne : dans un fichier externe (avec une extension .j s) à la page T web. Dans ce second cas, la balise <SCRI PT> contiendra un attribut src faisant référence au fichier externe : < script src= ”m o n_fichie r_ e xte rne. js” > code ici
  • 6.
    116 116 </script> ; Cecia pour avantages entre autres d’alléger la page HTML la rendant plus lisible, et rendre le code réutilisable et plus facilement maintenable. R e mar q ue : Il est vivement conseiller d’inclure des commentaires personnels dans vos codes JavaScript comme pour tous les langages de programmation. JavaScript utilise le symbole « // » pour des commentaires de fin de ligne et « / * … */ » pour des commentaires sur plusieurs lignes.
  • 7.
    O 117 117 Ne pas confondreles commentaires JavaScript et les commentaires Html (<!-- …-- > ). P R EXERCICES G R A 1) Définir script, javascript M E x ercice 1 M 2) Pourquoi utilise-t-on du javascript dans les pages web E 3) Que signifie l’expression « langage coté client » R 4) Donner deux avantages ainsi que deux limites du langage javascript E 5) Soit l’affirmation suivante : « le code javascript peut être insérer partout dans une N page web » J a. Dire en justifiant si cette affirmation est vraie A V b. Peut-on utiliser le code javascript en dehors de la page web ? si oui comment ? A 6) Les commentaires permettent entre autres d’assurer la maintenabilité du code ;S C comment insérer un commentaire en javascript R I P T
  • 8.
    I T 118 118 Notions de basedu JavaScript C o mpétences visées : Déclarer les variables en JavaScript Effectuer les opérations d’entrées/sorties en JavaScript Effectuer les conversions de type Utiliser les opérateurs en JavaScript P A ctivité : R O 1. Qu’est-ce qu’un algorithme G 2. Dans l’écriture des algorithmes, R A a. Quelle différence faites-vous entre une constante et une variable M b. Quelle sont les conventions dans le nommage d’une variable M E c. Faire la déclaration de variables nommées rayon (de type entier), perimetre (de R type réel), nom (de type chaine de caractères) et d’une constante PI E d. Déduire l’écriture du périmètre d’un cercle N 3. Écrire les instructions permettant de saisir le rayon et d’afficher le périmètre J 4. Si le périmètre est de 3.1415, quelle est le type du nombre obtenu par troncature A d’ordre zéro du périmètre V A 5. On suppose maintenant que le rayon est de type chaine de caractère (ex : S ‘’2.5première’’); peut-on calculer le périmètre avec une telle valeur du rayon ? Si oui, C comment ? R P INTRODUCTION Dans l’écriture des scripts, il est très souvent nécessaire d’avoir recours aux variables et constantes ; une variable est considérée comme un espace dans lequel on peut stocker une valeur (un chiffre, un nombre, un caractère ou une chaine de caractères), qui peut être modifiée pendant l’exécution du programme par opposition à une constante qui ne peut être modifiée. Il est ainsi possible
  • 9.
    119 119 d’appliquer à cesobjets différentes opérations dans le but d’effectuer une tache précise.
  • 10.
    R R M V C 120 120 I. DÉCLARATION DESVARIABLES EN JAVASCRIPT En JavaScript, les noms de variable peuvent être aussi longs que l'on désire, mais doivent répondre à certains critères : Commencer par une lettre (majuscule ou minuscule) ou un "_" ; Comporter uniquement des lettres, des chiffres et les caractères _ et $ ; Ne peuvent pas être des mots réservés du langage. E x emples : surface, stylo_rouge ; Contre Exemples: peri-metre, demi périmètre NB : JS est sensible à la casse. Attention donc aux majuscules et minuscule ! P Les variables peuvent se déclarer de deux façons : O Soit de façon explicite : on dit à JS que ceci est une variable. Le mot clé (la G commande) de déclaration d’une variable est « var » A S y ntaxe : var nom_variable = valeur M E x emples : var nombre = 19 var prenom = "zavier" var note E Soit de façon implicite : on écrit directement le nom de la variable suivi de la R valeur que l’on lui attribue et JS s’en accommode. E S y ntaxe : nom_variable = valeur E x emples : nombre = 19 prenom= "zavier" N Le mot clé de déclaration d’une constante est « co nst ». J S y ntaxe :Const nom_constante = valeur A E x emples : C o nst taux_TVA = 0.1925 C o nst PI = 3.14 A S II. LES INSTRUCTIONS DE BASES EN JAVASCRIPT R U ne instruction est l’opération élémentaire que le processeur peut accomplie I P en une seule fois. Les instructions d’entrées/sorties en javascript sont généralement T effectuées au moyen de boites de dialogues ou de méthodes. 1 L ’instruction d’affectation. Cette instruction permet d’attribuer une valeur ou le résultat d’une expression à une variable. S y ntaxe : nom_variable=valeur ; E x emple : nombre = 19 prenom = "zavier"
  • 11.
    117 121 2 L ’instructionde l ecture ou d ’entrée. Cette instruction permet de récupérer les informations saisies par l’utilisateur et de les stocker dans les variables. Pour cela on utilisera la méthode p rompt(). S y ntaxe : variable=p rompt("texte à afficher", "valeur par défaut"). La valeur par défaut est optionnelle. E x emple : Nom = p rompt("Entrer votre nom" , "Bineta") ; l’exécution de cette commande fera appel à la boite de dialogue ci -contre où l’utilisateur peut entrer son nom et P R cliquer sur ok pour valider ou sur annuler O G R A M M E R E N J 3 L ’instruction d’affichage o u de so rtie o u d ’écriture. A V Pour afficher du texte en JavaScript on peut utiliser la méthode w rite() ou la méthode A al e rt() S C S y ntaxe : R document.write("texte à afficher") ; ou alert("texte à afficher") ; I P document.write(nom_variable) ; ou alert(nom_variable) ; T
  • 12.
    117 122 E x emple : ale rt("Que c’est facile la première scientifique !") ; l’exécution de cette commande va afficher une boite de dialogue d’alerte similaire à celle présentée ci -contre et l’utilisateur n’a plus qu’a cliquer sur ok pour continuer.
  • 13.
    117 123 NB : Ilest aussi possible de demander une confirmation pour une action (suppression d’élément, fermeture de page, …). On utilise la fonction «confirm» dont la syntaxe est :co nfirm("Demande d e confirmation") ; E x emple : variable=co nfirm("Voulez-vous fermer la page ?") ; P R O G R A M M E R e marque : La réponse de la commande p rompt() est toujours une chaîne de R caractères. E Si on désire récupérer un nombre, il faut utiliser la fonction p arseInt (pour convertir N en un nombre entier) ou p arseFloat (pour la convertir en nombre à virgule). J S y ntaxe : parseInt(chaine) ou parseInt(var) ; parseFloat(chaine) ou parseFloat(var) A E x emples : V A Age= prompt("Entrer votre age") ; S p arseInt(Age) ; C Ou Age = parseInt(prompt("Entrer votre ag R parseInt(“23AZer”) et parseInt(“23”) ; //ces deux instructions retournent le I nombre 23. P T Rayon = parseFloat("24.568Bonjour38"); //cette instruction renvoie le nombre 24.568 III. LES OPÉRATIONS EN JAVASCRIPT
  • 14.
    117 124 Les opérations sonteffectuées au moyen d’opérateurs qui permettent d’élaborer une expression en vue d’effectuer un calcul ou une comparaison ; l’usage des parenthèses est vivement conseillé dans le cas d’expressions complexes. Ainsi on peut distinguer :
  • 15.
    119 119 O p érateurDe scription + Addition - Soustraction * Multiplication / Division ^ Puissance % Modulo (a%b renvoie le reste de la division entière de a par b) + + Incrément // x++ équivaut à x = x + 1 -- Décrément // x-- équivaut à x = x - 1 Opérateur De scription && ET logique || OU logique ! Né g ation logique O p érateur De scription == Est égal à != Différent de > Strictement supérieur à < Strictement inférieur à >= Supérieur ou égal <= Inférieur ou égal 2 L es o pérateurs arithmétiques P R O G R A M M 2 L es o pérateurs l ogiques E R E N J A V 3 L es o pérateurs d e comparaison A S C R I P T Retourne T rue ou False (1 ou 0) 4 L ’opérateur d e chaine ou d e concaténation L’opération entre les chaines de caractère s’appelle la concaténation, c'est -à-dire la juxtaposition des objets de type chaine. L’opérateur de concaténation est ‘+ ’.
  • 16.
    R 120 120 E x emples: a= 2 ; b=8 ; c=5 ; texte1= "bonjour " ; t exte2= "le monde ! " ; c = b - c ;  3 d = (a > 0) && (c < b) ;False (0) alert (texte1 + texte2) ; affiche bonjour le monde ! a++ ;3 b-- ;7 (a + c) == (b – c % 2) ; True (1) R e marque : L’expression variable = variable o perateur constante (a = a + 3 par exemple) peut être simplifiée en variable o pérateur= constante (a + = 3 , qui lui est équivalente). P Ainsi, au lieu d’écrire no mbre = no mbre * 2 6 , on peut écrire simplement O no mbre*=26 ; il en est de même pour tous les opérateurs arithmétiques. G R A M M E R E EXERCICES N E x ercice 1 J A 1) Qu’est-ce qu’une variable V 2) Quelle différence faites-vous entre une variable et une constante A S 3) Justifier l’affirmation suivante : « le javascript est un langage faiblement typé » C 4) Que signifie cette affirmation : « en javascript, une variable peut être déclarer R I implicitement » P 5) Parmi les variables suivantes, identifier celles qui sont non valides et justifier : T _123 ; pianic26 ; yahoo@; première_CD ; lyoss-plus; grand prof; 4points; alert; facile!_bizarre8 Soit le script: <script language = "javascript"> E x ercice 2 var age = parseInt(prompt("entrer votre age svp")) ;
  • 17.
    121 121 </script> a. Quel estle type de donnée retourné par défaut dans un prompt b. Déduire le rôle du parseInt dans ce script
  • 18.
    O A E 122 122 Soit le script: <script language = "javascript"> E x ercice 3 var nombre1 = parseInt(prompt("entrer le premier nombre svp")) ; var nombre2 = prompt("entrer le deuxième nombre svp") ; alert(nombre1 + nombre2) ; </script> a. Quel sera le contenu de la boite de dialogue alert si l’utilisateur entre P respectivement R i.04 et 88 G ii.123bonjour et salut R b. Corriger ce script pour retourner effectivement la somme de nombre1 et M nombre2 M R E x ercice 4 E Déterminer le contenu des variables d, e et f dans le script suivant : N <script language = "javascript"> J a = 25 ; b = 12 ; c = 2 ; A a++ ; b-- ; c*=3 ; V A d = a%b ; e = (b==c) ; f = e && d S </script> C R I E x ercice 5 P T 1) Écrire un script qui demande à l’utilisateur le rayon et la hauteur d’un cylindre et affiche son volume a. Dans une boite de dialogue b. Sur la page 2) Écrire un script qui demande le nom et le prénom de l’utilisateur puis affiche le nom complet
  • 19.
    P 123 123 Structures de contrôles, tableauxet fonctions en JavaScript C o mpétences visées : Traduire des algorithmes séquentiels, conditionnels et itératifs en JavaScript Déclarer un tableau et une fonction en JavaScript R Activité O Qu’est-ce qu’une structure conditionnelle ? une structure répétitive ? G R Qu’est-ce qu’une fonction ? une procédure ? A M M Soit l’algorithme suivant : E Algorithme sans_nom R Var nombre : entier ; E Début N nombre  4 ; J Tantque (nombre #0) faire A V Ecrire ("entrer un nombre pair positif") A Lire (nombre) S C Si ((nombre < 0) ou (nombre mod 2 # 0)) alors R Ecrire ("le nombre doit être pair et positif") I P finSi T finTantque Fin 1. Que fait cet algorithme 2. Que se passe-t-il si l’utilisateur saisi les valeurs : a. -2 b. 5 c. 0
  • 20.
    124 124 3. Relevez danscet algorithme une structure conditionnelle et une structure itérative 4. Traduire cet algorithme en script JavaScript
  • 21.
    P 125 125 INTRODUCTION En programmation JavaScripttout comme en algorithme, il est parfois nécessaire d’exécuter une instruction ou un bloc d’instructions (fonction par exemple) uniquement lorsqu’une certaine condition est vérifiée ; pour cela, on utilise des structures de contrôles. En JavaScript on distingue plusieurs instructions qui nous permettent de contrôler l’exécution de nos programmes : l e s structures co nditionnelles e t les st ructures répétitives o u boucles I. LES STRUCTURES CONDITIONNELLES R a S t ructure avec une alternative (if…) O G L’instruction if est la structure de test la plus basique, elle permet d’exécuter les R instructions lorsqu’une condition est vérifiée. La syntaxe est la suivante. A M I f (condition) { M / / l iste d ’instructions E R } Il est possible de définir plusieurs conditions à remplir avec les opérateurs ET et OU E N (&& e t ||) et s’il n’ya qu’une instruction, les accolades ne sont pas nécessaires. E x emple : If(x= =2) document.write (‘’x vaut 2’’) J A V b S tructure avec deux alternatives (if … else…) A S Elle permet en plus d’exécuter d’autres instructions en cas de non réalisation de la C condition. La syntaxe est la suivante R I i f (condition) { P / / l istes d ’instructions T } e l se { / / autres sé ries d ’instructions
  • 22.
    126 126 } E x emple: if (moyenne >= 10) { document.write( "Admis en classe superieure"); } e l se {
  • 23.
    127 127 document.write("Redouble"); } c S tructure avec conditions i mbriquées Il arrive que l’instruction dans une structure conditionnelle soit une autre structure conditionnelle ; dans ce cas on parle de structures à condition imbriquée. S y ntaxe : Formulation générale if (< condition1>) { P < action> R O } e l se if (<condition2>) { G < action> R A … M }e l se { M E < action> R … E } N J E x emple : A V if ( reponse ==1 ) { A cadeau = “console”; S C } R e l se if ( reponse==3 ) { I P cadeau = “fleurs” ; T } e l se { cadeau = “rien du tout” ; } R emarque : Il existe une autre condition nommée « S witch » que nous ne verrons pas dans ce cours!
  • 24.
    125 125 II. STRUCTURES RÉPÉTITIVES(OU BOUCLES OU ITÉRATIVES) Elles permettent d’effectuer de manière répétitive une série d’opérations jusqu’à ce qu’une condition ne soit plus réalisée. JavaScript propose plusieurs types de boucles itératives : boucle f o r, boucle w hile et boucle d o…while. a W h ile Elle correspond à la structure algorithmique «Tant Que» et permet d’exécuter les <actions> aussi longtemps que <condition> est vraie. Si la condition P est fausse au début, aucune instruction n’est exécutée. Les actions doivent permettre R d’incrémenter la condition. Sa syntaxe est la suivante : O G w h ile ( < condition> ) { R < actions>; A M ... M } E R E x emple : E N <script language="JavaScript"> compt=1; J A while (compt<5) { V document.write ("ligne : " + compt + "<br>"); A S compt++; C } R I document.write("fin de la boucle"); P </script> T
  • 25.
    126 126 b Do …While Ellecorrespond à la structure algorithmique «Repéter» et permet d’exécuter les <actions> aussi longtemps que <condition> est vraie. Si la condition est fausse au début, les instructions sont quand même exécutées une fois. Les act ions doivent permettre d’incrémenter la condition. Sa syntaxe est la suivante : d o { < actions> ...
  • 26.
    127 127 } w hile ( < condition> ) E x emple : <script language="JavaScript"> compt=1; do{ document.write ("ligne : " + compt + "<br>"); compt++; P } R O while (compt<5) G document.write("fin de la boucle"); R A </script> M M E R e marque : R La boucle While doit être utilisée uniquement si on a une condition qui teste l’entrée E dans la boucle, et la Do...While si la condition teste la sortie de la boucle (le corps N de la boucle doit être exécuter au moins une fois). Il est également recommandé J d’utiliser la boucle lorsque le nombre d’itération est connu d’avance. A V A c Fo r S Elle correspond à la structure algorithmique «Pour» et la syntaxe est la suivante : C R f o r (compteur ; condition; modification d u compteur) { I < action> P T ... } E x emple :
  • 27.
    128 128 <script language="JavaScript"> var somme=20; for(i=10 ;i<=12 ; i++){ somme+=i ; document.write("La somme est : " +somme+"<br>"); } </script>
  • 28.
    Indice 0 Indice1 Indice 2 Indice 3 … Indice n Donnée 1 Donnée 2 Donnée 3 Donnée 4 … Indice n I 129 129 III. TABLEAUX ET FONCTIONS EN JS 1 L e s t ableaux Les tableaux sont des variables qui permettent de stocker plusieurs données à la fois. Ils sont généralement utilisés pour stocker une liste d’éléments (nombres, textes, tableaux). De manière interne, les tableaux sont représentés de la mani ère suivante : P La taille d’un tableau est dynamique. Elle augmente au fur et à mesure qu’on y ajoute R O des éléments. Elle est donnée par la propriété «length» (exemple : tableau1.length) G R A sy nt axe M Pour créer (déclarer) un tableau on utilise les syntaxes ci -après : M E t ableau1 = new A rray( ) ;// sans i nitialisation R t ableau2 = new A rray("donnée 1", "donnée 2", "donnée 3 ", "donnée 4 ") ; E t ableau3 = ["donnée 1", "donnée 2", "donnée 3 ", "donnée 4 "]; N Pour accéder à un élément du tableau, on utilise la syntaxe suivante : tableau1 J [indice]. A N. B : la position 1 est répérée par l’indice 0 V A E x emple : tab [3] indique la valeur contenue à la position 4 du tableau tab. S <script language="JavaScript"> C tab = new Array( ) ;// R tab [0]= " Ella " ; P tab [1]= "Anicet" ; T tab [0]= " Raissa " ; tab.sort( ) ; alert ("Prénoms par ordre alphabétique") for (indice=0 ; indice<tab.length ; indice++) {
  • 29.
  • 30.
    R M : C P 131 131 I n terprétation: La première ligne du script déclare un tableau vide ; Ensuite on insère les prénoms «Ella», «Anicet» ; On remplace la valeur d’indice 0 (c’est -à-dire «Ella») par «Raissa» ; On range les données par ordre alphabétique ; On entre dans une boucle «For» avec pour compteur «indice» initialisée à 0, la condition de continuation «indice<2» car la taille du tableau est 2 ; La boucle va afficher les valeurs du tableau indice après indice. P R O 2 L e s f onctions G On appelle f o nction un sous-programme qui permet d'effectuer un ensemble A d'instruction par simple appel de la fonction dans le corps du programme principal. M Une fonction qui ne retourne aucune valeur est appelée p rocédure. Dans JavaScript, E les fonctions et les procédures sont définies par le mot clé f unction. R NB : Avant d’être utilisée, une fonction ou procédure doit être définie car pour E l’appeler dans le corps du programme il faut que le navigateur la connaisse, c’est -à- N dire son nom, ces arguments (paramètres) et les instructions qu’elle contient. J La d é claration d’une fonction ou procédure se fait en respectant la syntaxe suivante A V A S y ntaxe : S f unction nom_fonction(parametre 1, parametre 2, ...) { R <instructions > I <instructions > T ….. [ re turn resultat; ] /* présent si c’est une fonction */ } E x emple : fonction calculant le carrée d’un nombre qu’on lui passe en paramètre. f unction carre(nombre) { res = nombre*nombre ; re t urn res;
  • 31.
  • 32.
    129 Pour utiliser unefonction, il suffit de faire ap pel à elle en écrivant son nom (tout en respectant la case) suivie d’une parenthèse ouvrante (éventuellement ces arguments) puis d’une parenthèse fermente. E x e mple : a = carre(5) ; R e marques: a Fo nctions p rédéfinies Javascript dispose aussi de fonctions mathématiques tels que : Math.abs(x), Math.sqrt(x), Math.pow(x,y), Math.sin(x), Math.log(x), Math.random(), Math.max(x,y), Math.min(x,y) etc. P R O b P ortée d ’une variable G R Toute variable déclarée en dehors de toute fonction, est dite variable globale A et peut donc être exploiter partout dans le script tandis qu’une variable déclarée par M M le mot clé var dans une fonction aura une portée limitée à cette seule fonction et ne E pourra donc pas être exploiter ailleurs dans le script. D'où le nom de variable locale. R Par contre, toujours dans une fonction, si la variable est déclarée de manière implicite E (sans utiliser le mot var), sa portée sera globale. N J A V A S C R I P T
  • 33.
    129 EXERCICES E x ercice 1 QC M (questions à choix multiples) 1) En JavaScript, l’instruction permettant d’affecter la valeur 1 dans la 2e case du tableau nommé tab est : a- tab[1]=1 ; b- tab(1)=2 ; c- tab[2]=1 ; d- tab(1)=2 P 2) L’instruction permettant d’afficher la taille du tableau nommé tab en JavaScript R est : a- Alert(tab.taille) ; b- Document.write(tab.size) ; c- Alert (Tab.length) ; O G d- Alert (tab.length) ; R 3) L’une des méthodes suivantes permet de convertir un tableau en chaine de A M caractère ; M a- concat() ; b- sort() ; c- join(); d- length() E R 4) Une structure permettant d’effectuer répétitive ment une série d’opérations avec une condition est : E N a- une fonction ; b- une boucle ; c- une procedure; d- une itération 5) Selon la hiérarchie des objets en JS, le bouton but1 du formulaire form1 peut être J A accéder par : V a- window.form1.but1; b- document.form1.but1; A S c- document.window.form1.but1; d- window.but1 ; C R I E x ercice 2 P R é pondre par V rai ou Faux T 1) On peut déclarer un tableau sans initialiser en JavaScript 2) La méthode prompt() est une instruction d’écriture ou de sortie 3) Le mot clé return est obligatoire dans la déclaration d’une procédure E x ercice 3
  • 34.
    129 On considère lecode JavaScript suivant. Répondre clairement aux questions suivantes
  • 35.
    131 131 <html> <head><title>Bacc ESG</title> <script language="javascript"> varnote1 = 12 ;var note2 = 13; decision; function moyenne(note1, note2){ var moyenne = (note1+note2)/2 ; return moyenne ;} moyenne(note1, note2) ; if(moyenne >=10){ decison= ‘‘vous avez reussi au Bacc’’ ; document.write(decision) ;} else{ decision = ‘‘Echec’’; document.write(decision) ;} </script> </head> <body> <h1> Exo </h1> </body> </html> 1. Quels langages a-t-on utilisé pour écrire ce code ? 2. Donner deux exemples de logiciels permettant d’éditer ce code. 3. Quel titre aura le document généré par ce code lorsqu’il sera interprété ? 4. Combien de variables compte ce programme ? 5. Quel sera le contenu de la variable moyenne P lorsque le code sera interprété ? R 6. Relever dans ce code : O a. Une instruction d’initialisation G R b. Une instruction d’affichage A c. Un nom de fonction M d. Une structure de contrôle M E 7. Dans quel endroit de la page HTML a été R inséré le code JavaScript ? E N J A E x ercice 4 V Le proviseur du lycée a besoin d’un élève de terminale parce qu’il aimerait calculer A S directement depuis une des pages web du site du lycée le nombre total des élèves et C vous allez l’y aider. R I 1. Donner la syntaxe d’une f o nction en JavaScript P 2. Donner la syntaxe d’une b o ucle f or en JavaScript T 3. Écrire une fonction nommée so m_ tab qui prend un tableau d’entiers en paramètre et retourne la somme de ses valeurs 4. Déclarer sans initialiser un tableau nommé nb r_el_class qui enregistrera chaque fois le nombre d’élèves d’une classe
  • 36.
    132 132 5. Que faisce bout de code ? j=0 ; do{ var a= parseInt(prompt("entrer un nombre d’eleves et 0 lorsque vous avez parcouru toutes les classes") );
  • 37.
    133 133 Tab[j]=a; j=j+1; }while (a !=0) ; En utilisant les q uestions 3 , 4 et 5 , écrire un script pour afficher le nombre d’élèves de l’établissement au Boss P R O G R A M M E R E N J A V A S C R I P T
  • 38.
    134 134 Les événements enJavaScript C o mpétences visées : Utiliser l’évènement onclick Utiliser les zones de saisie en javascript Programmer un convertisseur P R A ctivité O G 1. Qu’est-ce qu’un formulaire ? R 2. Donner quelques éléments que nous pouvons retrouver sur un formulaire A M 3. Comment déclare-t-on un formulaire sur une page web ? M 4. Écrire le code HTML permettant de créer un formulaire comportant : E R a. Une zone de texte libellée t aille e n cm b. Un bouton de validation avec la valeur co nvertir E N c. Une autre zone de texte libellée t aille e n pouce 5. On souhaite maintenant que lorsque la page est visualisée, l’utilisateur saisi saJ A taille en centimètre dans le champ prévu à cet effet, puis il clique sur convertir et sa V taille en pouce doit être affichée dans le champ pour la taille en pousse. Com ment A S procéder ? C R I INTRODUCTION P Le langage JavaScript associé au langage HTML permet de rendre les pages T
  • 39.
    135 135 web interactives ;(non seulement les utilisateurs peuvent prodiguer des informations à une page web mais la page peut aussi réagir aux informations saisies par un utilisateur). Les boites de dialogues comme nous l’avons déjà vu permettent par exemple d’envoyer des messages aux utilisateurs ou d’obtenir des informations des utilisateurs ; cette nouvelle leçon sera consacrée à l’étude d’un autre élément d’interactivité dans JavaScript : l e s é vènements
  • 40.
    136 136 1 Dé finitione t syntaxe L e s é vénement s sont des actions de l’utilisateur qui vont pouvoir donner lieu à une interactivité. L’événement par excellence est l e clic de souris. Il est possible d’associer des actions à des événements aux moyens des g e stionnaires d’événements. Le nom d’un gestionnaire d’événement commence toujours par le mot « o n » ; on peut par exemple citer : o nclick / ondbclick : lorsqu’on clique ou double clique avec la souris o nfocus : lorsqu’un champ est actif ou sollicité P o nchange : lorsqu’ un champ perd le focus R O o nsubmit : lorsqu’on clique sur un bouton du type submit G o nkeydown/onkeyup : lorsqu’on presse / relâche une touche du clavier R A etc. M Les gestionnaires d’événements sont associés à des objets, et leur code s’insè re M E dans la balise de ceux-ci ; la syntaxe d’utilisation d’un gestionnaire d’événement est R la suivante : E o nE venement= "Action_Javascript o u Fonction();" N J E x emple : onclick= "alert("Bonjour");" onchange="mafonction();" A V A 2 A ccès aux é léments d e la p age par l ’attribut « i d » S Pour accéder à un élément de la page, on lui donne une valeur d’attribut « C R i d » dans le code HTML. Ensuite, dans le script JavaScript, on utilise la syntaxe I suivante : P T d o cument.getElementById("id") // où id désigne la valeur de l’attribut id E x emple : d ocument.getElementById("lienProduits").href="products.html"; document.getElementById("img").scr = "photo.jpg"; document.getElementById("txt").value= "les ways forts";
  • 41.
    137 137 R e marque: il est également possible d’accéder aux éléments d’une page par l’attribut « name » mais cela donne généralement lieu à des codes plus long ; nous n’aborderons donc pas cette notion dans cette leçon.
  • 42.
    135 138 O A E A R T 3 E xemple d ’application : réalisation d ’un convertisseur C o nfère activité question n°5 <html> P <head> R <meta charset = "utf-8"> G <title>validation de formulaire avec javascript</title> R </head> M <body > M <font face="times new roman"> R <center><h2> mon simple convertisseur</h2></center> E <hr> <br> N <form name="frm" method="get"> J <center> A <label for="h_cm">taille en cm :</ label> <input type="text" name="h_cm" V id="h_cm" > &nbsp; S <label for="h_m">taille en mètre : </label><input type="text" name="h_m" C id="h_m"> <br><br> I <input type="button" value="convertir" onclick="convertir();" > P </center> </form>
  • 43.
    135 139 <script language="javascript"> function convertir(){ varh_cm = document.getElementById("h_cm").value; var h_m = h_cm / 100; document.getElementById ("h_pd").value = h_m; } </script>
  • 44.
    R M 135 140 </body> </html> P EXERCICES R O Ex ercice 1 G 1) Définir évènement A 2) Quel est l’évènement qui est supporté nativement par le langage HTML M 3) Donner le rôle d’un gestionnaire d’évènement E 4) Décrire brièvement quatre gestionnaires d’évènement R E E x ercice 2 N Soit un formulaire avec une zone de texte (avec cet attribut id = txtZone) J a. Écrire une instruction permettant de garder la valeur de la zone de texte (le texte A V qu’elle contient) dans une variable txtVal A b. Écrire une instruction permettant de remplacer ce contenu par la valeur « trop S C cool » R I P E x ercice 3 T En vous inspirant de l’exemple du cours, a. Créer une page web contenant : i. Une zone de texte (libellée no m complet) ii. Deux boutons radios pour le sexe ( M et F) iii. Un bouton pour valider (OK par exemple). b. Par la suite, écrire une fonction permettant d’afficher le message : « Bienvenu M. nom_complet » ou « Bienvenu Mme. nom_complet », suivant le sexe
  • 45.
    135 141 choisi (où nom_completdésigne le nom saisie par l’utilisateur). Ex : Bienvenu M. Lionel Sop ou Bienvenu Mme. Raïssa Ngah