Technologies Et Programmation Web: Le Langage Javascript
Technologies Et Programmation Web: Le Langage Javascript
Technologies et
Programmation Web
Le langage JavaScript
Dr Riadh BOUSLIMI
Introduction
JavaScript
– Langage de script incorporé dans le HTML
– Historiquement, premier langage de script pour le Web
– Apporte des améliorations au HTML
• HTML permet d'écrire
• JavaScript permet de programmer, c'est-à-dire de
gérer l'information
Qualités :
– Disponible sur les navigateurs actuels et gratuit
Défauts :
– Interprété et donc très lent, pas de débogueur
1
03/03/2023
Introduction
A quoi ressemble un script ?
– C’est une portion de code qui vient s'insérer dans une
page HTML
– Le code du script n'est toutefois pas visible dans la
fenêtre du navigateur car il est compris entre des balises
(ou tags) spécifiques qui signalent au navigateur qu'il
s'agit d'un script écrit en langage JavaScript
– Balises annonçant le code Javascript :
<SCRIPT language="Javascript">
Placez ici le code de votre script
</SCRIPT>
Introduction
Code interprété ou compilé ?
– Dès que le navigateur rencontre la balise <script> il passe la
main à l'interprète du langage appelé
– Votre navigateur interprétera votre script, puis l'exécutera
Que mettre dans le script ?
– Des variables et instructions, organisées selon votre
algorithme, c'est-à-dire selon le résultat que vous souhaitez
obtenir
Où placer les scripts ?
– Au début, dans le conteneur <body>...</body>
• Dès que vous serez capables de comprendre les fonctions,
nous les placerons le plus souvent dans le conteneur
<head>...</head>
2
03/03/2023
Introduction
Masquage du script pour les anciens navigateurs
– Attention :
• Comme Javascript a été inventé après l’arrivée des
navigateurs, ceux-ci peuvent ne pas le reconnaître
• On place alors le code dans le body en commentaire
<SCRIPT language="Javascript">
<!--
Placez ici le code de votre script
//-->
</SCRIPT>
Éléments du langage
Les commentaires
– Pour mettre en commentaires toute une ligne, on utilise
le double slash:
// Tous les caractères derrière le // sont ignorés
– Pour mettre en commentaire une partie du texte
(éventuellement sur plusieurs lignes) on utilise le /* et le
*/:
/* Toutes les lignes comprises entre ces repères sont
ignorées par l'interpréteur de code */
3
03/03/2023
Lire/Écrire
prompt()
– ouvre une boîte de dialogue avec une zone de saisie et 2
bouton : OK et Annuler, rend l’information lue
alert ()
– permet d’écrire un message dans une fenêtre
– Exemple : lire-ecrire.html
<html>
<head><title>Programme In1</title></head>
<body>
<script language="JavaScript">
<!--
annee=prompt('En quelle année sommes-nous ? ', 2000);
alert('Vous avez répondu : ' + annee);
//-->
</script>
</body>
</html>
7
Lire/Ecrire
Résultat
4
03/03/2023
Lire/Écrire
document.write :
– Permet d’écrire directement dans la fenêtre HTML
– Exemple : lire-ecrire2.html
<html>
<head>
<title>Programme Out1</title>
</head>
<body>
<script language="JavaScript">
<!--
document.write('Vous avez le bonjour de
JavaScript <br>');
//-->
</script>
</body>
</html>
Lire/Écrire
document.write pour écrire le contenu de variable
Exemple : lire-ecrire-var.html
<html>
<head><title>Programme Out2</title></head>
<body>
<script language="JavaScript">
<!--
var jour = 21; var
mois = 'juin';
document.write(jour + ' ' + mois + ' : solstice');
//-->
</script>
</body>
</html>
10
10
5
03/03/2023
Lire/Écrire
Confirm ()
– Cette méthode ouvre une boîte de dialogue avec 2
boutons : OK et Annuler. Elle permet :
• d'envoyer une information, de recevoir un booléen
– Exemple : lire-ecrire-confirm.html
<script language="JavaScript">
if (confirm('Je vais dire sur quel bouton vous avez
appuyé : '))
{alert(' Sur OK \n Continuez avec :') }
else {alert(' Sur Annuler \n Sortez avec Ok !') };
</script>
11
11
Lire/Écrire
Écriture dans une fenêtre : open() +
document.write
– Permet d’ouvrir une fenêtre et d’écrire dedans
– Exemple : lire-ecrire-open.html
<script>
fille=open('', '', 'height=50, width=300, status=yes');
fille.document.write('<title>' + 'Titre fenetre fille' +
'</title>');
fille.document.write('Texte dans la fenêtre fille');
</script>
12
12
6
03/03/2023
Variables
Déclaration
<script language="JavaScript">
var date; // Déclaration sans affectation
var compteur=0; // Déclaration avec affectation
toto='coucou'; // Déclaration implicite par affectation
var prem, second; // variables séparées par des virgules
</script>
13
13
Types
Déclaration
<script language="JavaScript">
monNombre = new Number(); // Déclaration typée sans
affectation
e = new Number(2.71828); // Déclaration typée avec
affectation
var maChaine = new String(); //Déclaration de chaîne
var toto = new Boolean(true); //Déclaration de booléen
</script>
14
14
7
03/03/2023
Types
Visibilité des variables :
– Bien que de même nom, les variables "x" sont indépendantes
– Exemple : variable-visibilite.html
<script language="JavaScript">
var x = new String('abc');
function commencer() {
var x = new Number(123);
x++;
alert(x);
};
function suivre() {
var x = new Boolean(true);
alert(x);
};
x='ABC';
commencer();
suivre();
</script>
15
15
Tableau
Array
– Le type des éléments : nombres, chaînes, booléens, ...
– La dimension 1, 2, ou 3, ... : tab(7) ; tab(x,y) ; tab(A,B,C) ; ...
– Les indices : souvent des nombres entiers
– Exemple : tableau.html
<script language=JavaScript>
// Tableau de chaînes, de dimension 1, indicé de 0 à 6 :
Jour=new Array(7);
Jour[0]='Dimanche' ;
Jour[1]='Lundi' ;
Jour[2]='Mardi' ; //...
Jour[6]='Samedi' ;
// En énumérant les éléments :
jour=new Array('dimanche','lundi','mardi', ...
,'vendredi','samedi');
document.write(Jour[1], ' ' , Jour[0]); //affiche : Lundi
dimanche
</script>
16
16
8
03/03/2023
Tableau
Array
– Autre exemple : tableau2.html
<script language="JavaScript">
temp=new Array(30);
function relever() {
for (i=1;i<=30;i++); // i commence à 1
{
temp[i-1]=17+Math.floor(5*Math.random());
}; // i-1=0, donne le premier indice
};
function moyenner() {
som=0;
for (i=1;i<=30;i++) {
som+=temp[i-1]; };
return Math.round(10*som/30)/10;
};
relever();
alert('la moyenne du tableau est ='+ moyenner());
</script>
17
17
18
9
03/03/2023
Opérateurs
Arithmétiques
19
19
Opérateurs
De comparaison
– La comparaison se fait entre deux objets de même type
• renvoie un booléen : true ou false
20
20
10
03/03/2023
Opérateurs
Logique
– Opèrent sur des booléens et renvoient un booléen
21
21
Opérateurs
d’affectation
22
22
11
03/03/2023
Conditionnelles
Syntaxe
if (condition booléenne)
{Instructions à exécuter si "oui"}
else
{Instructions à exécuter si "non"};
23
23
Conditionnelles
Exemple : conditionnelle.html
<script
language="JavaScript"> a =
prompt('a=',2);
b=
prompt('b=',6); if
(a==0)
{if (b==0)
{alert(a+'x='+b+ '\n' +'tout nombre est solution')}
else
{alert(a+'x='+b+ '\n'+'0x est différent de '+b +
'\n'+'Pas de solution') }
}
else
{alert(a+'x='+b+ '\n' +'Une seule solution \n'+'x='+b/a) }
24
</script>
24
12
03/03/2023
Choix
Choix multiple
switch(x) {
case 1 : instructions 1; break;
case 2 : instructions 2; break;
...
case n : instructions 3; break;
default : instructions 4; break;
};
25
25
Choix
Exemple : choix.html
function preferer(k) {
switch(k) {
case 1 : alert(1); break;
case 2 : alert(2); break;
};
};
preferer(2);
26
26
13
03/03/2023
Itération
For
for (valeur de départ ; contrôle pour sortie ; progression )
{ Instructions à itérer }
Exemple
for (i=1;i<=5;i++) {
Instructions à répéter
}
27
27
Itération
Table de multiplication
– Exemple : iteration.html
<html>
<head><title>Programme iterer1</title></head>
<body>
<script language="JavaScript">
<!--
var n=0;
n=prompt('Quelle table ? ',7);
for (i=1;i<10;i++) {
document.write(i+' x '+n+' = '+n*i+'<br>');
};
//-->
</script>
</body>
</html>
28
28
14
03/03/2023
29
29
Fonctions
– Syntaxe
function maFonction(x, toto) {
... instructions; ...
return valeur du résultat;
}
– Exemple
<script language="JavaScript">
function VolCylindre(r,h) {
pi=3.14159;
return pi*r*r*h;
}
document.write(VolCylindre(1,2));
</script>
30
30
15
03/03/2023
Fonctions
– Autre exemple
<script language="JavaScript">
var volume;
function VolCylindre(r,h) {
pi=3.14159;
volume = pi*r*r*h;
}
VolCylindre(1,2);
document.write(volume);
</script>
31
31
Fonctions prédéfinies
Dates
– Javascript peut gérer le temps :
– Aujourd'hui : mardi 16 août 2005, l'horloge de votre
ordinateur donne 13h 24min
– Il vous propose plusieurs fonctions prédéfinies
32
32
16
03/03/2023
Fonctions prédéfinies
Exemple : date.html
<html>
<head> <title>Aujourd'hui</title> </head>
<body> Date de votre machine :
<script language="JavaScript">
var aujourd_hui = new Date();
document.write(aujourd_hui.getDate()+' / ');
document.write(aujourd_hui.getMonth()+1+' / ');
document.write(aujourd_hui.getFullYear());
</script>
</body>
</html>
33
33
Fonctions prédéfinies
Mathématiques :
34
34
17
03/03/2023
Fonctions prédéfinies
mathématiques : utilisation
35
35
36
36
18
03/03/2023
37
38
38
19
03/03/2023
39
39
40
40
20
03/03/2023
41
41
42
42
21
03/03/2023
43
43
44
44
22
03/03/2023
45
46
46
23
03/03/2023
47
48
48
24
03/03/2023
– Résultat : on l’affiche
49
49
50
25
03/03/2023
51
51
52
26
03/03/2023
53
53
54
54
27
03/03/2023
Applications
Création de menus
– On cherche à créer des menus hiérarchiques, comme ci-
dessous
– En passant sur un menu, il passe au gris clair
• En cliquant sur Menu 2, des sous-menus apparaissent. Il
sont cliquables
http://css.alsacreations.com/Construction-de-menus-en-CSS/ 55
55
Applications
Pour lier les menus et les sous-menus : on utilise les listes de
définition <DL>
– Les listes de définitions comportent deux parties,
• un terme et une description
– Pour marquer une liste de définitions, il vous faut trois éléments HTML :
• un <dl> conteneur,
• un terme de définition <dt>,
• et une description de définition <dd>
– Par exemple :
<dl>
<dt>Grenouille</dt>
<dd>Truc vert humide</dd>
<dt>Lapin</dt>
<dd>Truc chaud et doux</dd>
</dl>
http://css.alsacreations.com/Construction-de-menus-en-CSS/ 56
56
28
03/03/2023
<dl id="menu">
<dt onclick="javascript:montre();"><a href="#">Menu1</a></dt>
<dt onclick="javascript:montre('smenu2');">Menu2</dt>
<dd id="smenu2">
<ul>
<li><a href="#">Sous-Menu 2.1</a></li>
<li><a href="#">Sous-Menu 2.2</a></li>
<li><a href="#">Sous-Menu 2.3</a></li>
</ul>
</dd>
<dt onclick="javascript:montre('smenu3');">Menu3</dt>
<dd id="smenu3">
<ul>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
<li><a href="#">Sous-Menu 3.1</a></li>
</ul>
</dd>
<dt onclick="javascript:montre('smenu4');">Menu4</dt>
<dd id="smenu4">
<ul>
<li><a href="#">Sous-Menu 4.1</a></li>
<li><a href="#">Sous-Menu 4.1</a></li>
</ul>
</dd>
</dl>
</body>
57
<script type="text/javascript">
<!--
window.onload=montre; //montre le menu principal au chargement
function montre(id) {
var d = document.getElementById(id);
//On cache les sous-menus
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i))
{document.getElementById('smenu'+i).
style.display='none';}
}
//On affiche le sous-menu
if (d) {d.style.display='block';}
}
//-->
</script>
58
29
03/03/2023
59
60
60
30