Cours JS
Cours JS
TakiAcademy
I. Introduction
JavaScript (« JS » en abrégé) est un langage de programmation dynamique complet
qui, appliqué à un document HTML, peut fournir une interactivité dynamique sur
les sites Web.
C’est un langage de script web côté client qui est adopté universellement par
chaque navigateur Web pour son support.
C'est le navigateur qui interprète les codes HTML, CSS et JavaScript. L'interprétation
dépend naturellement du type de navigateur utilisé et de sa version.
JavaScript est un langage orienté objet et événementiel. Le développeur peut créer
des objets sur la page, avec des propriétés et des méthodes et leur associer des
actions en fonction d'événements déclenchés par le visiteur (passage de souris, clic,
saisie clavier, etc.)
<!DOCTYPE HTML>
<html>
<head>
<meta charset ="utf-8" />
<title>emplacements code JavaScript</title>
<script>
function fermer()
{
close();
}
</script>
</head>
<body>
<script>
document.write("Pour fermer cette fenêtre vous pouvez cliquer : ");
</script>
<a href ="" onclick="fermer()">ici</a>
</body>
</html>
❖ Fichier code.js
function fermer()
{
close();
}
❖ Fichier page.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset ="utf-8" />
<title>emplacements code JavaScript</title>
<script src="code.js"></script>
</head>
<body>
<script>
document.write("Pour fermer cette fenêtre vous pouvez cliquer : ");
</script>
<a href ="" onclick="fermer()">ici</a>
</body>
</html>
IV. Les actions élémentaires simples
1) Les instructions d’affichage
a) La méthode : document.write
La méthode write() de l’objet document permet d’écrire des expressions HTML ou du
code JavaScript dans un document. Elle est principalement utilisée pour les tests : si
elle est utilisée après le chargement complet d'un document HTML, elle supprimera
tout le HTML existant.
Exemple :
<script>
let d=new Date() ;
document.write("Nous somme le : "+d);
</script>
b) La méthode : alert()
La méthode alert () affiche une boîte d'alerte avec un message spécifié et un bouton
« OK ». Une boîte d'alerte est souvent utilisée si vous souhaitez vous assurer que les
informations parviennent à l'utilisateur.
Exemple :
<script>
let a=5 ;
alert("La valeur de a est : "+a);
</script>
c) La propriété « innerHTML »
innerHTML, est une propriété de tout élément HTML qui désigne le contenu qui se
trouve entre la balise ouvrante et la balise fermante. On l'utilise pour lire et/ou insérer
dynamiquement un contenu dans une page.
Exemple :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>exemple</title>
<script>
function modifier()
{
a=document.getElementById("p1").innerHTML="Texte modifié";
}
</script>
</head>
<body>
<p id="p1">Texte du paragraphe avant modification</p>
<button type="button" onclick="modifier()">Modifier le texte</button>
</body>
</html>
Exemple :
<script>
let a=prompt("Donner votre nom : ","") ;
let b= prompt("Donner votre prénom : ","") ;
alert(" Bonjour : "+b+" "+a) ;
</script>
Exemple :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>exemple</title>
<script>
function somme()
{
a=Number(document.getElementById("n1").value);
b=Number(document.getElementById("n2").value);
s=a+b;
document.getElementById("res").value=s ;
}
</script>
</head>
<body>
<form>
<p><label for="n1">Nombre 1 : </label><input type="text" id="n1" /></p>
<p><label for="n2">Nombre 2 : </label><input type="text" id="n2" />< /p>
<p><label for="res">Résultat : </label><input type="text" id="res" readonly /></p>
<button type="button" onclick="somme()">Somme</button>
</form>
</body></html>
Remarque :
La méthode « getElementById » de l’objet « document » renvoie l'élément qui a
l'attribut ID avec la valeur spécifiée. Cette méthode est l'une des méthodes les plus
courantes du DOM HTML (Document Object Model) et elle est utilisée presque chaque
fois que vous souhaitez manipuler ou obtenir des informations sur un élément de votre
document. Syntaxe : document.getElementById(elementID)
c) L’affectation
L'opération d’affectation consiste à attribuer une valeur à une variable. Elle est
représentée par le symbole « = » en Javascript.
b) De façon explicite
Le mot-clé « let » permet de définir une variable locale. Ces variables ont une portée
de bloc, c’est-à-dire qu’elles ne sont accessibles qu’au sein du bloc de code dans lequel
elles sont définies. Un bloc est délimité par des accolades {} (if, for, while, function, …).
Exemple :
<script>
let age = prompt ("Donnez votre âge : ","");
let moy = 15.85 ;
</script>
Exemple :
<script>
const pi=3.14;
const h=24;
</script>
Remarque :
• Il ne faut pas déclarer le type de données d’une variable.
• La fonction « typeof nom_variable » permet de connaître le type de donnée
d’une variable.
Votre âge : 18
Vous êtes :
Exemple2 :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>portée</title>
</head>
<body>
<p id="p1"></p>
<p id="p2"></p>
<p id="p3"></p>
<p id="p4"></p>
<p id="p5"></p>
<p id="p6"></p>
<script>
let x=2;
y=3;
function tester()
{
x=22;
let y=33;
document.getElementById("p3").innerHTML="La valeur de x :"+x;
document.getElementById("p4").innerHTML="La valeur de y :"+y;
}
document.getElementById("p1").innerHTML="La valeur de x avant :"+x;
document.getElementById("p2").innerHTML="La valeur de y avant :"+y;
tester();
document.getElementById("p5").innerHTML="La valeur de x après :"+x;
document.getElementById("p6").innerHTML="La valeur de y après :"+y;
</script>
</body>
</html>
➔Résultat affiché :
La valeur de x avant :2
La valeur de y avant :3
La valeur de x :22
La valeur de y :33
La valeur de x après :22
La valeur de y après :3
Remarque : Les éléments du bloc seront locaux pour le code qui contient le bloc
(que ce soit une fonction ou le contexte global).
Exemple1 :
<script>
let N = Number(prompt ("Donnez un entier : ",""));
let msg = "impair" ;
if (N%2 == 0)
{
msg = "pair";
}
alert(N+" est "+msg) ;
</script>
Exemple2 :
<script>
let N = Number(prompt ("Donnez un entier : ",""));
if (N%2 == 0)
{
msg = "pair" ;
}
else
{
msg = "impair" ;
}
alert(N+" est "+msg) ;
</script>
2) La structure généralisée
Vocabulaire et syntaxe
if (condition 1)
{Traitement 1 ;}
else if (condition 2)
{Traitement 2 ;}
……………………
else if (condition n-1)
{Traitement n-1 ;}
else
{Traitement n ;}
Exemple :
<script>
let c=prompt("Tapez un caractère : ","");
c=c.toUpperCase();
if (c[0]>="A" && c[0]<="Z")
msg="Une lettre";
else if (c[0]>="0" && c[0]<="9")
msg="Un chiffre";
else
msg="Un symbole";
alert("Le caractère saisie correspond à "+msg) ;
</script>
Remarques :
• L’instruction break permet de quitter la structure switch après l’exécution du
bloc convenable ;
• Lorsque le résultat de l’expression est différent de toutes les valeurs envisagées,
c’est le bloc n relatif à default qui sera exécuté ;
• La clause default : bloc n est facultative.
Exemple : Afficher les nombres parfaits compris entre 2 et 1000. (Un nombre est dit
parfait s’il est égal à la somme de ses diviseurs sauf lui-même).
<script>
for(let n=2 ; n<=1000 ; n++)
{
let s=1;
for(let i=2 ; i<=n/2 ; i++)
if(n%i==0)
s+=i;
if (s==n)
document.write(n+"<br/>");
}
</script>
2) La structure do … while
Permet de répéter l’exécution des instructions tant que la condition est vérifiée.
do
{
instructions;
} while (condition(s));
3) La structure while
while (condition(s))
{
instructions ;
}
Exemple :
<script>
i=1 ;
while(i<20)
{
i=i*2 ;
document.write(i+"<br>");
}
</script>
X. Les fonctions en JavaScript
En JavaScript, il existe deux types de fonctions :
➢ Les fonctions prédéfinies, on les appelle « méthodes ». Elles sont associées à un
objet particulier comme la méthode write() de l’objet document.
➢ Les fonctions déclarées par le programmeur selon les besoins de l’application.
Pour déclarer une fonction, on utilise la syntaxe suivante :
function nom_de_la_fonction(arguments)
{
Instructions ;
[return nom_variable ;]
}
<!DOCTYPE html>
<html><head>
<meta charset='utf-8'>
<title>Les fonctions</title>
</head>
<body>
<script>
function somme()
{
let n1=document.getElementById('n1').value;
let n2=document.getElementById('n2').value;
if(isNaN(n1)||isNaN(n2)||n1==""||n2=="")
alert("vérifiez vos valeurs");
else
{
let s=Number(n1)+Number(n2);
alert("La somme est "+s);
}
}
</script>
<form>
<p><label for="n1">Nombre 1 : </label><input type="text" id="n1"/></p>
<p><label for="n2">Nombre 2 : </label><input type="text" id="n2"/></p>
<input type="button" value="Somme" onclick="somme()"/>
<input type="reset" value="Annuler"/>
</form>
</body>
</html>
Exemple :
Soit la page web nommée « evenement.html » contenant le formulaire suivant qui est
composé de deux zones de saisie, et offrant les fonctionnalités suivantes :
➢ Au chargement de la page le message « Soyez le bienvenu » est affiché ;
➢ Au fur et à mesure que le texte est saisi dans la première zone, la deuxième zone
indique le nombre de caractères tapés ;
➢ Lorsque le curseur quitte la première zone le texte saisi est mis en majuscule.
<!DOCTYPE html>
<html><head>
<meta charset='utf-8'>
<title>Les évènements</title>
</head>
<body onload="alert('Soyez le bienvenu');">
<script>
function majuscule()
{
ch1=document.getElementById('nom').value.toUpperCase();
document.getElementById('nom').value=ch1;
}
function longueur()
{
L=document.getElementById('nom').value.length;
document.getElementById("nbr").value=L;
}
</script>
<form>
<p><label for="nom">Votre Nom et Prénom : </label>
<input type="text" id="nom" onchange="majuscule()" oninput="longueur()"></p>
<p><label for="nbr">Nombre de caractères : </label>
<input type="text" id="nbr" value="0"/></p>
</form>
</body></html>
<!DOCTYPE html>
<html><head>
<meta charset='utf-8'>
<title>bouton radio</title></head>
<script>
function solutions()
{
if (document.getElementById('v1').checked==true)
alert(document.getElementById('v1').value+" solution(s)");
else if (document.getElementById('v2').checked==true)
alert(document.getElementById('v2').value+" solution(s)");
else if (document.getElementById('v3').checked==true)
alert(document.getElementById('v3').value+" solution(s)");
else
alert("veuillez choisir une option svp") ;
}
</script>
<form>
<fieldset><legend>Signe du discriminant</legend>
<p><input type="radio" name="r1" id="v1" value="2"/>Strictement positif</p>
<p><input type="radio" name="r1" id="v2" value="1"/>Nul</p>
<p><input type="radio" name="r1" id="v3" value="0"/>Strictement négatif</p>
<input type="button" value="Nombre de solutions" onclick="solutions()"/>
<input type="reset" value="Annuler" />
</fieldset>
</form></body></html>
Solution 2 :
<script>
function solutions()
{
signe=document.getElementsByName('r1');
if (signe[0].checked==true)
alert(signe[0].value+" solution(s)");
else if (signe[1].checked==true)
alert(signe[1].value+" solution(s)");
else if (signe[2].checked==true)
alert(signe[2].value+" solution(s)");
else
alert("veuillez choisir une option svp") ;
}
</script>
Remarques :
➢ Pour vérifier l’état d’une case d’option (cochée ou pas), on utilise la propriété
« checked » qu’on peut affecter à une variable booléenne.
➢ Pour récupérer la valeur d’une case d’option on utilise la propriété « value » qu’on
peut affecter à une variable.
3) Les cases à cocher
Exemple :
Soit le fichier nommé « premier.html » qui comporte un script JavaScript permettant
de sélectionner les nombres premiers parmi la liste des nombres suivants : 11 ; 24 ;
37 ; 49 puis affiche si la réponse est correcte ou non.
<!DOCTYPE html>
<html><head>
<meta charset='utf-8'>
<title>bouton radio</title></head>
<script>
function reponse()
{
if (document.getElementById('n1').checked==true &&
document.getElementById('n2').checked==false &&
document.getElementById('n3').checked==true &&
document.getElementById('n4').checked==false)
alert("Bonne réponse");
else
alert("Réponse incorrecte");
}
</script>
<form>
<fieldset><legend>Les nombres premiers</legend>
<p><input type="checkbox" name="choix" id="n1"/>11</p>
<p><input type="checkbox" name="choix" id="n2"/>24</p>
<p><input type="checkbox" name="choix" id="n3"/>37</p>
<p><input type="checkbox" name="choix" id="n4"/>49</p>
<input type="button" value="Votre réponse" onclick="reponse()"/>
<input type="reset" value="Annuler" />
</fieldset></form></body></html>
Solution 2 :
<script>
function reponse()
{
rep=document.getElementsByName('choix');
if (rep[0].checked==true && rep[1].checked==false &&
rep[2].checked==true && rep[3].checked==false)
alert("Bonne réponse");
else
alert("Réponse incorrecte");
}
</script>
Remarques :
➢ Pour vérifier l’état d’une case à cocher (cochée ou pas), on utilise la propriété
« checked » qu’on peut affecter à une variable booléenne.
➢ Pour récupérer la valeur d’une case à cocher on utilise la propriété « value » qu’on
peut affecter à une variable.
4) La liste déroulante
Exemple :
Soit le fichier nommé « couleur.html » qui comporte un script JavaScript permettant
de modifier la couleur d’un texte en sélectionnant la couleur souhaitée à partir d’une
liste déroulante.
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>liste deroulante</title>
</head>
<script>
function colorer()
{
s=document.getElementById("couleur").selectedIndex;
if(s<=0)
alert("Veuillez choisir votre couleur");
else
{
c=document.getElementById("couleur").value;
texte=document.getElementById("para");
texte.style.color=c;
}
}
</script>
<form>
<fieldset>
<p id="para">Texte à colorer</p>
<p><select name="couleur" id="couleur">
<option value="">Choisir la couleur</option>
<option value="red">Rouge</option>
<option value="blue">Bleu</option>
<option value="green">Vert</option>
</select></p>
<input type="button" value="Colorer le texte" onclick="colorer()"/>
</fieldset>
</form>
</body></html>
Remarques :
• La propriété « selectedIndex » : retourne l’indice de l’élément sélectionné dans
une liste déroulante à sélection unique. (L’indice d’une liste déroulante commence
par 0)
Exemple : s = document.getElementById("nom_id").selectedIndex ;
• La propriété « value » : renvoie la valeur de l’élément sélectionné.
Exemple : valeur = document.getElementById("nom_id").value ;
• La propriété « text » : renvoie le texte de l’élément sélectionné ;
Exemple : texte = document.getElementById("nom_id").text ;