Nesrine JALLOULI
Présenté par :
Conception de page web
JavaScript
Plan
01
02
03
04
Introduction
Insertion de code JavaScript dans une page HTML
Syntaxes
Les objets liés au navigateur
Introduction
 Javascript (souvent abrégé JS) est un langage de programmation de scripts utilisé dans
les pages web interactives. Le langage a été créé en 1995 par Netscape Communications
Corporation. Il est devenu un standard ECMA (European Computer Manufacturers
Association) en 1997 sous le nom officiel ECMAScript ou en core ES.
 Javascript est actuellement à la version 7 (ES7) depuis Juin 2016.
 Le Javascript est sensible à la casse, c'est-à-dire qu'il fait une différence entre un nom de
variable contenant ou non des majuscules.
Introduction
Javascript Java
Langage interprété
Langage pseudo-compilé
(Chargement d'une machine virtuelle)
Code intégré au HTML
Code (applet) à part du document HTML, appelé
à partir de la page
Langage peu typé
Langage fortement typé (déclaration du type de
variable)
Liaisons dynamiques : les références des
objets sont vérifiées au chargement
Liaisons statiques : les objets doivent exister au
chargement (compilation)
Accessibilité du code Confidentialité du code
Insertion de code JavaScript dans une page HTML
1. Utilisation de la balise “script”
 Un script 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. Les balises annonçant un code Javascript sont les suivantes :
<script type="text/javascript" >
//Placez ici le code de votre script
</script>
L’attribut type="text/javascript" n’est pas obligatoire si on est en HTML5.
Insertion de code JavaScript dans une page HTML
1. Utilisation de la balise “script”
Le script peut être insérer n’importe où sur
la page. Généralement on insère les
fonctions JS utiles dans l’élément “head”
et le code JS principal juste avant la balise
de fermeture
</body> de la page HTML.
Exemple : programme bonjour() qui
permettra d’afficher une petite fenêtre avec
le texte:
"Bonjour Tout le monde!!!"
<head>
<TITLE>Bonjour avec JavaScript</TITLE>
<script>// ICI on définit une fonction JavaScript
function bonjour() { alert("Bonjour tout le monde!!! ") ;}
</script> </head>
<body>< !--code HTML de la page -->
<script>
//code principal. Ici on appelle
la fonction bonjour() bonjour()
;
</script>
</body>
Insertion de code JavaScript dans une page HTML
2. Script Externe
Il est possible de mettre les portions de code dans un fichier externe. L'appel se fait via
l'attribut src, placé dans la balise <script>.
<html>
<head>
<script src="mesFonctions.js"></script>
</head>
<body>
< !-- code HTML de la page -->
<script src="index.js"></script>
</body>
</html>
Syntaxes
1. Déclaration des variables
En JavaScript les variables ne sont pas typées. La déclaration peut se faire
d’une manière explicite grâce aux mots clefs var ou let ou d’une manière
implicite.
Var i; //Déclaration de variable d’une façon explicite
i = 2;
Chaine = "bonjour"; //Déclaration de variable d’une façon implicite
Let bool ;
Bool = true;
Les variables ne doivent pas être des mots-
clefs JavaScript : var, form, int,
document, etc.
Le mot clé let permet de déclarer une
variable de portée locale à un bloc (bloc if,
boucle, ...)
L’utilisation du mode strict du Javascript
exige la déclaration de toute variables
avant son utilisation. Pour ecrire en mode
strict, il suffit de mettre la ligne suivante au
début
du script : "use strict" ;
Syntaxes
2. Définition des fonctions
Une fonction est introduite par function. function nom(arg0, arg1, ..., argN) { //votre script. }
//ou
var nom = function (arg0, arg1, ..., argN) { //votre script. }
Exemples <head>
<title>Page JavaScript </title>
<script type="text/javascript">
function somme(n1, n2) { return n1+n2; }
alert(somme(5,10));
</script>
// ou bien
var somme = function (n1, n2) { return n1+n2; };
alert(somme(5,10));
exercice
<html>
<head>
<title>Page JavaScript </title>
<script type="text/javascript">
function Message()
{
alert("Afficher ce message lorsque vous cliquez sur le bouton Afficher")
}
</script>
</head>
<body>
Exemple de code JavaScript <br /><br />
<input type = "button" value ="Afficher" Name = "Bouton1" onClick="Message()" />
</body>
</html>
Syntaxes
2.1. Portée locale d’une variable
<script type="text/javascript">
function test() {
var message = "hi"; //déclarée avec var dans une fonction
}
test();
alert(message); // undefined
</script>
2.2. Portée globale
<script type="text/javascript">
var message1 ; //variable globale déclarée en dehors des fonctions
function test() {
message2 = "hi"; //variable globale (déclarée sans var dans la fonction)
}
test();
alert(message2); // "hi"
</script>
exemple
<html>
<head> <title> Exemple 9</title>
<script type="text/javascript">
function somme_N_entiers (nb)
{
var somme=0;
for (i=1; i <=nb ; i++)
{
somme=somme + i ;
}
return somme;
}
</script>
</head>
<body>
<form name="form3">
Entrer un nombre <br />
<input type="text" name="nbre"/>
<input type = "button" value ="calculer" name = "Bouton2"
onClick="alert(somme_N_entiers (nbre.value))"/>
</form>
</body>
</html>
Syntaxes
3. Types de variables
Javascript assigne des types aux variables en fonction de leurs contenus. Il y a principalement
trois types classiques de données Boolean, Number, String et un type complexe Object ( liste
de couples nom-valeurs). Il est possible de déterminer le type (courant) d'une variable avec
l'opérateur typeof() qui retourne l'une des valeurs suivantes:
- Undefined si la valeur est indéfinie (variable déclarée mais pas initialisée ou variable non
déclarée)
- boolean
- number
- string
- object si la valeur est un objet ou null
- function si la valeur est une fonction
Syntaxes
4. Valeurs prédéfinies
JavaScript présente des valeurs prédéfinies que peut contenir une variable :
-undefined : si la valeur est indéfinie (variable déclarée mais pas initialisée ou variable non
déclarée).
- NaN : Not-a-Number habituellement générée comme résultat d’une opération mathématique
incohérente. Exp : a = "ali" / 3 →NaN
-+Infinity et –Infinity : valeur représentant un nombre infini (dépassant la capacité des
nombres à virgule flottant). Exp : var v=10e308→Infinity
-null : signifie l’absence de donnée dans une variable. Utile pour vider une variable (x=null).
Syntaxes
5. Fonctions prédéfinies
Relatifs aux valeurs et conversions des nombres, on trouve les fonctions suivantes :
- isNaN : détermine si un paramètre donné n'est pas un nombre
- isFinite : Détermine si le paramètre est un nombre fini. Renvoie false si ce n'est pas un
nombre ou l'infini positif ou infini négatif
- Number : effectue une conversion
- parseInt : effectue une conversion en valeur entière
- parseFloat : effectue une conversion en valeur réelle
- eval : exécute un code JavaScript à partir d’une chaine de caractères
Syntaxes
5. Fonctions prédéfinies
<script type="text/javascript">
alert(isNaN(10)); // false
alert(isNaN("10")); // false - peut être convertie
alert(isNaN("blue")); // true - ne peut pas être convertie
var num1 = Number("hello world"); // NaN
var num2 = Number("00001"); // 1
var num3 = Number(true); // 1
var num3 = parseInt(""); // NaN
var num4 = parseInt(22.5); // 22
var num5 = parseInt("70",10); // 70 - la base 10 est spécifiée
var num6 = parseFloat("22.5"); // 22.5
alert(isfinite(Infinity)); // false
alert(eval("5*2+3" )); // 13
</script>
Syntaxes
6. Les boites de dialogues
Des boites de dialogues peuvent être ouvertes en utilisant les méthodes alert,
confirm et prompt.
- alert("Message")→ afficher un message dans une boite de dialogue
- prompt("Message")→ afficher une invite pour saisir une chaine dans
une boite de dialogue. Retourne la valeur saisie si le bouton "ok" est appuyé, "null
" sinon.
- confirm("Message")→ afficher une boite de dialogue de confirmation
(deux "oui" et "non"). Retourne true si le bouton "oui" est appuyé, false sinon.
<html>
<head>
<title> une page simple </title>
</head>
<body>
Bonjour
<script language='javascript'>
alert('bonjour');
document.write (
prompt('quel est votre nom ?','Indiquer votre nom
ici')
);
confirm('quel bouton allez-vous choisir ?');
</script>
</body>
</html>
Syntaxes
6. Les boites de dialogues
Syntaxes
6. Les boites de dialogues
Syntaxes
7. Opérateurs
Typiquement, ceux de C, C++ et java:
- incrémentation/décrémentation (++, --)
- arithmétiques (+, /, *, -, =, %)
- relationnels (>, <, >=, <=, ==, != ) et (===, !==)
- logique (!, &&, ||)
- affectation (=, +=, -=, *=, /=, %=)
- concaténation des chaines de caractères : +
Syntaxes
7. Opérateurs
var age = 10;
age++;
alert(age); // 11
alert( age > 10 && age < 20); // true
alert(26 % 5); // 1
age *= 2;
alert(age); // 22
x = 5 ;
alert(x == "5") ; // true→ égalité de valeurs
alert(x === "5") ; // false→ pas d’égalité de valeurs et de types
alert(x !== "5") ; // true→ inégalité de valeurs ou de types
Syntaxes
8.1. Alternatives (ou conditionnelles)
L'instruction if sans partie else :
if (condition) instruction;
if (condition) {instruction; }
if (condition) { instruction1; instruction2; ... }
<html>
<body>
<script type="text/javascript">
var d = new Date();
var time = d.getHours();
if (time < 10)
{document.write("<b>Good morning</b>");}
if (time > 10)
{document.write("<b>Good day</b>");}
</script>
</body>
</html>
Exemples
Syntaxes
8.1. Alternatives (ou conditionnelles)
L'instruction if...else :
if (condition) instruction1;
else instruction2;
if (condition) {
instructions1;
} else {
instructions2;
}
if (condition1)
{ instructions1;
} else if (condition2)
{ instructions2;
} else
{ instructions3;
}
<html>
<body>
<script type="text/javascript">
var d = new Date();
var time = d.getHours();
if (time < 10)
{document.write("<b>Good morning</b>");}
else{document.write("<b>Good day</b>");}
</script>
</body>
</html>
Exercice
Calculer combien de mot dans une phrase
<script type="text/javascript">
ch=window.prompt('Ecrire la phrase:');
mot=1;
for(i=0;i<=ch.length;i++)
{
if (ch[i]==" ")
{
mot=mot+1;
}
}
document.write('le nombre de mots' + mot );
</script>
Exercice
Calculer combien de mot dans une phrase
<script type="text/javascript">
ch=window.prompt('Ecrire la phrase:');
var mot;
ch = ch.trim();
if(ch[0]==null || ch[0]==" ")
{mot=0}
else{
mot=1;
for(i=0;i<ch.length;i++)
{
if (ch[i]==" " && ch[i+1] != " ")
{
mot=mot+1;
}
}
}
document.write('le nombre de mots' +
mot );
</script>
<script type="text/javascript">
ch=window.prompt('Ecrire la phrase:');
var count = 0;
var words = ch.split(" ");
for (i = 0; i < words.length; i++) {
if (words[i] != "") {
count += 1;
}
}
document.write('le nombre de mots' + count);
</script>
Exercice
Calculer le moyen d’un étudient en insérant les trois moyenne de trois
trimestre et en indiquant la mention
si moyenne>16  Excellent
si moyenne>14 Bien
si moyenne>12Assez bien
si moyenne>10Passable
si moyenne<10Refusé malheureusement
<script type="text/javascript" >
var moy1,moy2,moy3,moy;
moy1=window.prompt('Saisir la moyenne de 1er trimestre:');
if (isNaN(moy1))
{moy1=window.prompt('Saisir une moyenne valide:'); }
else if ((moy1>=20)||(moy1<=0))
{moy1=window.prompt('Saisir une moyenne entre 0 et 20:');}
moy2=window.prompt('Saisir la moyenne de 2eme trimestre:');
if (isNaN(moy2))
{moy2=window.prompt('Saisir une moyenne valide:'); }
else if ((moy2>=20)||(moy2<=0))
{moy2=window.prompt('Saisir une moyenne entre 0 et 20:'); }
moy3=window.prompt('Saisir la moyenne de 3eme trimestre:');
if (isNaN(moy2))
{moy3=window.prompt('Saisir une moyenne valide:');}
else if ((moy3>=20)||(moy3<=0))
{moy3=window.prompt('Saisir une moyenne entre 0 et 20:');}
moy=(parseInt(moy1)+parseInt(moy2)+parseInt(moy3))/3;
if (moy<10)
{window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Refusé malheureusement");}
else if ((moy<12)&&(moy>=10))
{window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Passable");}
else if ((moy<14)&&(moy>=12))
{window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Assez bien");}
else if ((moy<16)&&(moy>=14))
{window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Bien"); }
else if (moy>=16)
{window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Excellent"); }
</script>
<html>
<body>
<script type="text/javascript">
var d = new Date();
var time = d.getHours();
if (time < 10)
{
document.write("<b>Good morning</b>");
}
else
{
document.write("<b>Good day</b>");
}
</script>
</body>
</html>
Syntaxes
8.1. Alternatives (ou conditionnelles)
Syntaxes
8.1. Alternatives (ou conditionnelles)
L'opérateur ternaire ? :
Permet de remplacer une instruction if...else simple. Sa syntaxe (lorsqu'utilisée pour donner
une valeur à une variable) est :
variable = condition ? expressionIf : expressionElse;
Elle est équivalente à :
if (condition) variable=expressionIf;
else variable=expressionElse;
Exemple var civilite = (sexe == "F") ? "Madame" : "Monsieur" ;
Syntaxes
8.1. Alternatives (ou conditionnelles)
L'instruction switch:
switch (expression) {
case valeur1 :instructions1;break;
case valeur2 :instructions2;break;
...
case valeurN : instructionsN;break;
default: instructionsDefault;
}
Syntaxes
8.1. Alternatives (ou conditionnelles)
<html>
<body>
<script type="text/javascript">
var d=new Date();
theDay=d.getDay();
switch (theDay)
{
case 5:
document.write("Finally Friday");
break;
case 6:
document.write("Super Saturday");
break;
case 0:
document.write("Sleepy Sunday");
break;
default:
document.write("I'm looking forward to this weekend!");
}
</script>
</body>
</html>
<html>
<head>
<title>Nouvelle page 1</title>
<head>
<script type="text/javascript">
function Menu(x)
{
switch(x)
{
case 1 :
window.location='programmeur.html';break;
case 2 : window.location='outils.html';break;
case 3 : window.location='interets.html';break;
case 4 :
window.location='formulaire.html';break;
}
}
</script>
</head>
Syntaxes
8.1. Alternatives (ou conditionnelles)
<body>
<form name="forme1">
<select name="selection" onChange="Menu(
selection.selectedIndex)">
<option>Choisissez une option :</option>
<option >La fonction de programmeur</option>
<option >Nos outils</option>
<option >Nos intérêts</option>
<option >Soumettre sa candidature</option>
</select>
</form>
</body>
</html>
Syntaxes
8.2. Itératives (les boucles)
L'instruction while :
while (condition) instruction;
while (condition) { instruction1;
instruction2; ... }
Var num = 1;
while (num <= 5) { alert(num); num++;
}
Exemple
L'instruction for :
for (instructionInit; condition;
instructionIter) instruction;
for (instructionInit; condition;
instructionIter) { instruction1;
instruction2; ... }
for (var num = 1; num<= 5; num++)
alert(num);
Exemple
<html>
<body>
<script type="text/javascript">
for (i = 0; i <= 5; i++)
{
document.write("The number is " + i);
document.write("<br />");
}
</script>
</body>
</html>
L'instruction for : <html>
<body>
<script type="text/javascript">
var i=0;
while (i<=5)
{
document.write("The number is " + i);
document.write("<br />");
i++;
}
</script>
</body>
</html>
L'instruction while :
Exercice
Vérifier combien de fois se trouve une lettre saisie dans une chaine de caractère saisie aussi
<script type="text/javascript">
mot=window.prompt('Saisir votre paragraphe ');
lettre=window.prompt('Saisir lettre rechercher
');
var nbre_de_fois_trouve = 0;
for(var i = 0; i < mot.length; i++)
{
if(lettre == mot[i])
nbre_de_fois_trouve++;
}
document.write ("la lettre " +lettre+ "
se trouve " +nbre_de_fois_trouve+ " fois
dans la phrase : " +mot);
</script>
<script type="text/javascript">
mot=window.prompt('Saisir votre paragraphe ');
lettre=window.prompt('Saisir lettre rechercher
');
var nb = 0;
mot1 = mot.split(lettre);
nbre_de_fois_trouve= mot1.length-1;
document.write ("la lettre " +lettre+ " se trouve "
+nbre_de_fois_trouve+ " fois dans la phrase : " +mot);
</script>
calculatrice numérique
Ecrire un script qui permet à l'utilisateur de saisir deux nombres ainsi que
l'opération mathématique souhaitée, le résultat de cette opération s'affiche en
HTML.
Les opérations mathématiques acceptées sont :
• L'addition : a + b
• La soustraction : a – b
• La multiplication : a * b
• La division : a / b
• La puissance : a ^ b (exemple : 3 ^ 2 = 9)
Remarques:
- Il faut afficher une erreur en cas d'opération mathématique inconnue.
- Les nombres saisis peuvent être à virgule.
- L'utilisateur peut saisir le nom de l'opération ou l'opérateur correspondant : + - * /
^ (exemple : plus ou +)
Correction
HTML :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>JavaScript - Exercice</title>
</head>
<body>
<h1>Calculatrice Numérique</h1>
<script src="index.js"></script>
</body>
</html>
Index.JS
var nombre1;
var nombre2;
var operation;
var resultat;
nombre1 = parseFloat(window.prompt('Saisir nombre1'));
nombre2 = parseFloat(window.prompt('Saisir nombre2'));
operation = window.prompt('Quelle opération voulez-vous
effectuer?');
if(isNaN(nombre1) || isNaN(nombre2))
{
document.write('<p>Le nombres sont invalides</p>');
}
else
{
switch(operation.toLowerCase())
{
case '+':
case 'addition':
resultat = nombre1 + nombre2;
break;
case '-':
case 'soutsraction':
resultat = nombre1 - nombre2;
break;
case '*':
case 'multiplication':
resultat = nombre1 * nombre2;
break;
case '^':
case 'puissance':
resultat = nombre1 ** nombre2;
break;
case '/':
case 'division':
if(nombre2 == 0)
{
document.write('<p>Division par zéro</p>');
}
else
{
resultat = nombre1 / nombre2;
}
break;
default:
document.write('<p>Opération inconnue</p>');
}
if(resultat != undefined)
{
document.write('<p>Le résultat est ' + resultat + '<p>');
}
}
Exercice de revision
Exercice 1 :
Créez un script qui prend un nombre comme entrer et renvoie « pair » pour les
nombres pairs et « impair » pour les nombres impairs.
Exercice 2 : Écrivez un script qui supprime toutes les caractères spéciaux
dans une chaîne.
Exercice 3 : Écrivez une fonction qui supprime toutes les caractères spéciaux
dans une chaîne.
Syntaxes
8.2. Itératives (les boucles)
L'instruction do...while :
do {
instruction1; instruction2;
...
} while (condition);
L'instruction for-in pour les objets :
for (var prop in window)
document.write(prop);
Certaines instructions permettent un contrôle supplémentaire sur les boucles :
break permet de quitter la boucle courante
continue permet de terminer l'itération en cours de la boucle courante
Syntaxes
8.2. Itératives (les boucles)
Exemples
var text = "";
var i;
for (i = 0; i < 10; i++) {
if (i === 3) { break; }
text += "Le nombre est " + i + "<br>";
}
document.writeln(text);
for (i = 0; i < 10; i++) {
if (i === 3) { continue; }
text += "Le nombre est " + i + "<br>";
}
document.writeln(text);
Les objets liés au navigateur
Window
Exemples
var vW = window.open("http://www.isetr.rnu.tn/","ISETR");
if (vW == null)
alert("fenetrebloquee");
else {
vW.alert("Bienvenue au site de l'ISET");
vW.resizeTo(600,600);
}
L'objet window représente la fenêtre du navigateur.
Les objets liés au navigateur
Document
L'objet document représente le document html chargé dans de la page.
Le tableau suivant représente quelques propriétés de l’objet document :
Les objets liés au navigateur
Document
Les objets liés au navigateur
Document
Les objets liés au navigateur
console
L'objet console est très utile durant la phase d’écriture de code pour voir l’état de certaines
variables. Il dispose d’une méthode log() qui permet d’évaluer et d’afficher n’importe quelle
expression sur la console du navigateur.
Exemple
for(let i =1 ; i<= 10 ; i++)
{
console.log(i) ;
}

javascript cours developpement nbhdjcbhdcjbn

  • 1.
    Nesrine JALLOULI Présenté par: Conception de page web JavaScript
  • 2.
    Plan 01 02 03 04 Introduction Insertion de codeJavaScript dans une page HTML Syntaxes Les objets liés au navigateur
  • 3.
    Introduction  Javascript (souventabrégé JS) est un langage de programmation de scripts utilisé dans les pages web interactives. Le langage a été créé en 1995 par Netscape Communications Corporation. Il est devenu un standard ECMA (European Computer Manufacturers Association) en 1997 sous le nom officiel ECMAScript ou en core ES.  Javascript est actuellement à la version 7 (ES7) depuis Juin 2016.  Le Javascript est sensible à la casse, c'est-à-dire qu'il fait une différence entre un nom de variable contenant ou non des majuscules.
  • 4.
    Introduction Javascript Java Langage interprété Langagepseudo-compilé (Chargement d'une machine virtuelle) Code intégré au HTML Code (applet) à part du document HTML, appelé à partir de la page Langage peu typé Langage fortement typé (déclaration du type de variable) Liaisons dynamiques : les références des objets sont vérifiées au chargement Liaisons statiques : les objets doivent exister au chargement (compilation) Accessibilité du code Confidentialité du code
  • 5.
    Insertion de codeJavaScript dans une page HTML 1. Utilisation de la balise “script”  Un script 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. Les balises annonçant un code Javascript sont les suivantes : <script type="text/javascript" > //Placez ici le code de votre script </script> L’attribut type="text/javascript" n’est pas obligatoire si on est en HTML5.
  • 6.
    Insertion de codeJavaScript dans une page HTML 1. Utilisation de la balise “script” Le script peut être insérer n’importe où sur la page. Généralement on insère les fonctions JS utiles dans l’élément “head” et le code JS principal juste avant la balise de fermeture </body> de la page HTML. Exemple : programme bonjour() qui permettra d’afficher une petite fenêtre avec le texte: "Bonjour Tout le monde!!!" <head> <TITLE>Bonjour avec JavaScript</TITLE> <script>// ICI on définit une fonction JavaScript function bonjour() { alert("Bonjour tout le monde!!! ") ;} </script> </head> <body>< !--code HTML de la page --> <script> //code principal. Ici on appelle la fonction bonjour() bonjour() ; </script> </body>
  • 7.
    Insertion de codeJavaScript dans une page HTML 2. Script Externe Il est possible de mettre les portions de code dans un fichier externe. L'appel se fait via l'attribut src, placé dans la balise <script>. <html> <head> <script src="mesFonctions.js"></script> </head> <body> < !-- code HTML de la page --> <script src="index.js"></script> </body> </html>
  • 8.
    Syntaxes 1. Déclaration desvariables En JavaScript les variables ne sont pas typées. La déclaration peut se faire d’une manière explicite grâce aux mots clefs var ou let ou d’une manière implicite. Var i; //Déclaration de variable d’une façon explicite i = 2; Chaine = "bonjour"; //Déclaration de variable d’une façon implicite Let bool ; Bool = true; Les variables ne doivent pas être des mots- clefs JavaScript : var, form, int, document, etc. Le mot clé let permet de déclarer une variable de portée locale à un bloc (bloc if, boucle, ...) L’utilisation du mode strict du Javascript exige la déclaration de toute variables avant son utilisation. Pour ecrire en mode strict, il suffit de mettre la ligne suivante au début du script : "use strict" ;
  • 9.
    Syntaxes 2. Définition desfonctions Une fonction est introduite par function. function nom(arg0, arg1, ..., argN) { //votre script. } //ou var nom = function (arg0, arg1, ..., argN) { //votre script. } Exemples <head> <title>Page JavaScript </title> <script type="text/javascript"> function somme(n1, n2) { return n1+n2; } alert(somme(5,10)); </script> // ou bien var somme = function (n1, n2) { return n1+n2; }; alert(somme(5,10));
  • 10.
    exercice <html> <head> <title>Page JavaScript </title> <scripttype="text/javascript"> function Message() { alert("Afficher ce message lorsque vous cliquez sur le bouton Afficher") } </script> </head> <body> Exemple de code JavaScript <br /><br /> <input type = "button" value ="Afficher" Name = "Bouton1" onClick="Message()" /> </body> </html>
  • 11.
    Syntaxes 2.1. Portée localed’une variable <script type="text/javascript"> function test() { var message = "hi"; //déclarée avec var dans une fonction } test(); alert(message); // undefined </script> 2.2. Portée globale <script type="text/javascript"> var message1 ; //variable globale déclarée en dehors des fonctions function test() { message2 = "hi"; //variable globale (déclarée sans var dans la fonction) } test(); alert(message2); // "hi" </script>
  • 12.
    exemple <html> <head> <title> Exemple9</title> <script type="text/javascript"> function somme_N_entiers (nb) { var somme=0; for (i=1; i <=nb ; i++) { somme=somme + i ; } return somme; } </script> </head> <body> <form name="form3"> Entrer un nombre <br /> <input type="text" name="nbre"/> <input type = "button" value ="calculer" name = "Bouton2" onClick="alert(somme_N_entiers (nbre.value))"/> </form> </body> </html>
  • 13.
    Syntaxes 3. Types devariables Javascript assigne des types aux variables en fonction de leurs contenus. Il y a principalement trois types classiques de données Boolean, Number, String et un type complexe Object ( liste de couples nom-valeurs). Il est possible de déterminer le type (courant) d'une variable avec l'opérateur typeof() qui retourne l'une des valeurs suivantes: - Undefined si la valeur est indéfinie (variable déclarée mais pas initialisée ou variable non déclarée) - boolean - number - string - object si la valeur est un objet ou null - function si la valeur est une fonction
  • 14.
    Syntaxes 4. Valeurs prédéfinies JavaScriptprésente des valeurs prédéfinies que peut contenir une variable : -undefined : si la valeur est indéfinie (variable déclarée mais pas initialisée ou variable non déclarée). - NaN : Not-a-Number habituellement générée comme résultat d’une opération mathématique incohérente. Exp : a = "ali" / 3 →NaN -+Infinity et –Infinity : valeur représentant un nombre infini (dépassant la capacité des nombres à virgule flottant). Exp : var v=10e308→Infinity -null : signifie l’absence de donnée dans une variable. Utile pour vider une variable (x=null).
  • 15.
    Syntaxes 5. Fonctions prédéfinies Relatifsaux valeurs et conversions des nombres, on trouve les fonctions suivantes : - isNaN : détermine si un paramètre donné n'est pas un nombre - isFinite : Détermine si le paramètre est un nombre fini. Renvoie false si ce n'est pas un nombre ou l'infini positif ou infini négatif - Number : effectue une conversion - parseInt : effectue une conversion en valeur entière - parseFloat : effectue une conversion en valeur réelle - eval : exécute un code JavaScript à partir d’une chaine de caractères
  • 16.
    Syntaxes 5. Fonctions prédéfinies <scripttype="text/javascript"> alert(isNaN(10)); // false alert(isNaN("10")); // false - peut être convertie alert(isNaN("blue")); // true - ne peut pas être convertie var num1 = Number("hello world"); // NaN var num2 = Number("00001"); // 1 var num3 = Number(true); // 1 var num3 = parseInt(""); // NaN var num4 = parseInt(22.5); // 22 var num5 = parseInt("70",10); // 70 - la base 10 est spécifiée var num6 = parseFloat("22.5"); // 22.5 alert(isfinite(Infinity)); // false alert(eval("5*2+3" )); // 13 </script>
  • 17.
    Syntaxes 6. Les boitesde dialogues Des boites de dialogues peuvent être ouvertes en utilisant les méthodes alert, confirm et prompt. - alert("Message")→ afficher un message dans une boite de dialogue - prompt("Message")→ afficher une invite pour saisir une chaine dans une boite de dialogue. Retourne la valeur saisie si le bouton "ok" est appuyé, "null " sinon. - confirm("Message")→ afficher une boite de dialogue de confirmation (deux "oui" et "non"). Retourne true si le bouton "oui" est appuyé, false sinon.
  • 18.
    <html> <head> <title> une pagesimple </title> </head> <body> Bonjour <script language='javascript'> alert('bonjour'); document.write ( prompt('quel est votre nom ?','Indiquer votre nom ici') ); confirm('quel bouton allez-vous choisir ?'); </script> </body> </html> Syntaxes 6. Les boites de dialogues
  • 19.
  • 20.
    Syntaxes 7. Opérateurs Typiquement, ceuxde C, C++ et java: - incrémentation/décrémentation (++, --) - arithmétiques (+, /, *, -, =, %) - relationnels (>, <, >=, <=, ==, != ) et (===, !==) - logique (!, &&, ||) - affectation (=, +=, -=, *=, /=, %=) - concaténation des chaines de caractères : +
  • 21.
    Syntaxes 7. Opérateurs var age= 10; age++; alert(age); // 11 alert( age > 10 && age < 20); // true alert(26 % 5); // 1 age *= 2; alert(age); // 22 x = 5 ; alert(x == "5") ; // true→ égalité de valeurs alert(x === "5") ; // false→ pas d’égalité de valeurs et de types alert(x !== "5") ; // true→ inégalité de valeurs ou de types
  • 22.
    Syntaxes 8.1. Alternatives (ouconditionnelles) L'instruction if sans partie else : if (condition) instruction; if (condition) {instruction; } if (condition) { instruction1; instruction2; ... } <html> <body> <script type="text/javascript"> var d = new Date(); var time = d.getHours(); if (time < 10) {document.write("<b>Good morning</b>");} if (time > 10) {document.write("<b>Good day</b>");} </script> </body> </html> Exemples
  • 23.
    Syntaxes 8.1. Alternatives (ouconditionnelles) L'instruction if...else : if (condition) instruction1; else instruction2; if (condition) { instructions1; } else { instructions2; } if (condition1) { instructions1; } else if (condition2) { instructions2; } else { instructions3; } <html> <body> <script type="text/javascript"> var d = new Date(); var time = d.getHours(); if (time < 10) {document.write("<b>Good morning</b>");} else{document.write("<b>Good day</b>");} </script> </body> </html>
  • 24.
    Exercice Calculer combien demot dans une phrase <script type="text/javascript"> ch=window.prompt('Ecrire la phrase:'); mot=1; for(i=0;i<=ch.length;i++) { if (ch[i]==" ") { mot=mot+1; } } document.write('le nombre de mots' + mot ); </script>
  • 25.
    Exercice Calculer combien demot dans une phrase <script type="text/javascript"> ch=window.prompt('Ecrire la phrase:'); var mot; ch = ch.trim(); if(ch[0]==null || ch[0]==" ") {mot=0} else{ mot=1; for(i=0;i<ch.length;i++) { if (ch[i]==" " && ch[i+1] != " ") { mot=mot+1; } } } document.write('le nombre de mots' + mot ); </script> <script type="text/javascript"> ch=window.prompt('Ecrire la phrase:'); var count = 0; var words = ch.split(" "); for (i = 0; i < words.length; i++) { if (words[i] != "") { count += 1; } } document.write('le nombre de mots' + count); </script>
  • 26.
    Exercice Calculer le moyend’un étudient en insérant les trois moyenne de trois trimestre et en indiquant la mention si moyenne>16  Excellent si moyenne>14 Bien si moyenne>12Assez bien si moyenne>10Passable si moyenne<10Refusé malheureusement
  • 27.
    <script type="text/javascript" > varmoy1,moy2,moy3,moy; moy1=window.prompt('Saisir la moyenne de 1er trimestre:'); if (isNaN(moy1)) {moy1=window.prompt('Saisir une moyenne valide:'); } else if ((moy1>=20)||(moy1<=0)) {moy1=window.prompt('Saisir une moyenne entre 0 et 20:');} moy2=window.prompt('Saisir la moyenne de 2eme trimestre:'); if (isNaN(moy2)) {moy2=window.prompt('Saisir une moyenne valide:'); } else if ((moy2>=20)||(moy2<=0)) {moy2=window.prompt('Saisir une moyenne entre 0 et 20:'); } moy3=window.prompt('Saisir la moyenne de 3eme trimestre:'); if (isNaN(moy2)) {moy3=window.prompt('Saisir une moyenne valide:');} else if ((moy3>=20)||(moy3<=0)) {moy3=window.prompt('Saisir une moyenne entre 0 et 20:');} moy=(parseInt(moy1)+parseInt(moy2)+parseInt(moy3))/3; if (moy<10) {window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Refusé malheureusement");} else if ((moy<12)&&(moy>=10)) {window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Passable");} else if ((moy<14)&&(moy>=12)) {window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Assez bien");} else if ((moy<16)&&(moy>=14)) {window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Bien"); } else if (moy>=16) {window.alert("Votre moyenne annuelle est:"+moy+" et votre mention est : Excellent"); } </script>
  • 28.
    <html> <body> <script type="text/javascript"> var d= new Date(); var time = d.getHours(); if (time < 10) { document.write("<b>Good morning</b>"); } else { document.write("<b>Good day</b>"); } </script> </body> </html> Syntaxes 8.1. Alternatives (ou conditionnelles)
  • 29.
    Syntaxes 8.1. Alternatives (ouconditionnelles) L'opérateur ternaire ? : Permet de remplacer une instruction if...else simple. Sa syntaxe (lorsqu'utilisée pour donner une valeur à une variable) est : variable = condition ? expressionIf : expressionElse; Elle est équivalente à : if (condition) variable=expressionIf; else variable=expressionElse; Exemple var civilite = (sexe == "F") ? "Madame" : "Monsieur" ;
  • 30.
    Syntaxes 8.1. Alternatives (ouconditionnelles) L'instruction switch: switch (expression) { case valeur1 :instructions1;break; case valeur2 :instructions2;break; ... case valeurN : instructionsN;break; default: instructionsDefault; }
  • 31.
    Syntaxes 8.1. Alternatives (ouconditionnelles) <html> <body> <script type="text/javascript"> var d=new Date(); theDay=d.getDay(); switch (theDay) { case 5: document.write("Finally Friday"); break; case 6: document.write("Super Saturday"); break; case 0: document.write("Sleepy Sunday"); break; default: document.write("I'm looking forward to this weekend!"); } </script> </body> </html>
  • 32.
    <html> <head> <title>Nouvelle page 1</title> <head> <scripttype="text/javascript"> function Menu(x) { switch(x) { case 1 : window.location='programmeur.html';break; case 2 : window.location='outils.html';break; case 3 : window.location='interets.html';break; case 4 : window.location='formulaire.html';break; } } </script> </head> Syntaxes 8.1. Alternatives (ou conditionnelles) <body> <form name="forme1"> <select name="selection" onChange="Menu( selection.selectedIndex)"> <option>Choisissez une option :</option> <option >La fonction de programmeur</option> <option >Nos outils</option> <option >Nos intérêts</option> <option >Soumettre sa candidature</option> </select> </form> </body> </html>
  • 33.
    Syntaxes 8.2. Itératives (lesboucles) L'instruction while : while (condition) instruction; while (condition) { instruction1; instruction2; ... } Var num = 1; while (num <= 5) { alert(num); num++; } Exemple L'instruction for : for (instructionInit; condition; instructionIter) instruction; for (instructionInit; condition; instructionIter) { instruction1; instruction2; ... } for (var num = 1; num<= 5; num++) alert(num); Exemple
  • 34.
    <html> <body> <script type="text/javascript"> for (i= 0; i <= 5; i++) { document.write("The number is " + i); document.write("<br />"); } </script> </body> </html> L'instruction for : <html> <body> <script type="text/javascript"> var i=0; while (i<=5) { document.write("The number is " + i); document.write("<br />"); i++; } </script> </body> </html> L'instruction while :
  • 35.
    Exercice Vérifier combien defois se trouve une lettre saisie dans une chaine de caractère saisie aussi <script type="text/javascript"> mot=window.prompt('Saisir votre paragraphe '); lettre=window.prompt('Saisir lettre rechercher '); var nbre_de_fois_trouve = 0; for(var i = 0; i < mot.length; i++) { if(lettre == mot[i]) nbre_de_fois_trouve++; } document.write ("la lettre " +lettre+ " se trouve " +nbre_de_fois_trouve+ " fois dans la phrase : " +mot); </script> <script type="text/javascript"> mot=window.prompt('Saisir votre paragraphe '); lettre=window.prompt('Saisir lettre rechercher '); var nb = 0; mot1 = mot.split(lettre); nbre_de_fois_trouve= mot1.length-1; document.write ("la lettre " +lettre+ " se trouve " +nbre_de_fois_trouve+ " fois dans la phrase : " +mot); </script>
  • 36.
    calculatrice numérique Ecrire unscript qui permet à l'utilisateur de saisir deux nombres ainsi que l'opération mathématique souhaitée, le résultat de cette opération s'affiche en HTML. Les opérations mathématiques acceptées sont : • L'addition : a + b • La soustraction : a – b • La multiplication : a * b • La division : a / b • La puissance : a ^ b (exemple : 3 ^ 2 = 9) Remarques: - Il faut afficher une erreur en cas d'opération mathématique inconnue. - Les nombres saisis peuvent être à virgule. - L'utilisateur peut saisir le nom de l'opération ou l'opérateur correspondant : + - * / ^ (exemple : plus ou +)
  • 37.
    Correction HTML : <!DOCTYPE html> <htmllang="fr"> <head> <meta charset="utf-8"> <title>JavaScript - Exercice</title> </head> <body> <h1>Calculatrice Numérique</h1> <script src="index.js"></script> </body> </html> Index.JS var nombre1; var nombre2; var operation; var resultat; nombre1 = parseFloat(window.prompt('Saisir nombre1')); nombre2 = parseFloat(window.prompt('Saisir nombre2')); operation = window.prompt('Quelle opération voulez-vous effectuer?');
  • 38.
    if(isNaN(nombre1) || isNaN(nombre2)) { document.write('<p>Lenombres sont invalides</p>'); } else { switch(operation.toLowerCase()) { case '+': case 'addition': resultat = nombre1 + nombre2; break; case '-': case 'soutsraction': resultat = nombre1 - nombre2; break; case '*': case 'multiplication': resultat = nombre1 * nombre2; break; case '^': case 'puissance': resultat = nombre1 ** nombre2; break; case '/': case 'division': if(nombre2 == 0) { document.write('<p>Division par zéro</p>'); } else { resultat = nombre1 / nombre2; } break; default: document.write('<p>Opération inconnue</p>'); } if(resultat != undefined) { document.write('<p>Le résultat est ' + resultat + '<p>'); } }
  • 39.
    Exercice de revision Exercice1 : Créez un script qui prend un nombre comme entrer et renvoie « pair » pour les nombres pairs et « impair » pour les nombres impairs. Exercice 2 : Écrivez un script qui supprime toutes les caractères spéciaux dans une chaîne. Exercice 3 : Écrivez une fonction qui supprime toutes les caractères spéciaux dans une chaîne.
  • 40.
    Syntaxes 8.2. Itératives (lesboucles) L'instruction do...while : do { instruction1; instruction2; ... } while (condition); L'instruction for-in pour les objets : for (var prop in window) document.write(prop); Certaines instructions permettent un contrôle supplémentaire sur les boucles : break permet de quitter la boucle courante continue permet de terminer l'itération en cours de la boucle courante
  • 41.
    Syntaxes 8.2. Itératives (lesboucles) Exemples var text = ""; var i; for (i = 0; i < 10; i++) { if (i === 3) { break; } text += "Le nombre est " + i + "<br>"; } document.writeln(text); for (i = 0; i < 10; i++) { if (i === 3) { continue; } text += "Le nombre est " + i + "<br>"; } document.writeln(text);
  • 42.
    Les objets liésau navigateur Window Exemples var vW = window.open("http://www.isetr.rnu.tn/","ISETR"); if (vW == null) alert("fenetrebloquee"); else { vW.alert("Bienvenue au site de l'ISET"); vW.resizeTo(600,600); } L'objet window représente la fenêtre du navigateur.
  • 43.
    Les objets liésau navigateur Document L'objet document représente le document html chargé dans de la page. Le tableau suivant représente quelques propriétés de l’objet document :
  • 44.
    Les objets liésau navigateur Document
  • 45.
    Les objets liésau navigateur Document
  • 46.
    Les objets liésau navigateur console L'objet console est très utile durant la phase d’écriture de code pour voir l’état de certaines variables. Il dispose d’une méthode log() qui permet d’évaluer et d’afficher n’importe quelle expression sur la console du navigateur. Exemple for(let i =1 ; i<= 10 ; i++) { console.log(i) ; }