Introduction à JavaScript et ses Fonctions
Introduction à JavaScript et ses Fonctions
JAVASCRIPT
est un langage
événementiel
(association d’actions interprété par le
aux événements navigateur client
déclenchés par code PHP (interprété
l’utilisateur (passage de du coté serveur).
souris, clic, saisie clavier,
etc...).
Intérêts de JavaScript ?
• Interactivité côté client : JavaScript permet d'ajouter des fonctionnalités interactives aux pages web,
offrant ainsi une expérience utilisateur plus dynamique.
• Utilisation fluide : JavaScript permet de mettre en place des animations sans l’inconvénient des longs
temps de chargement nécessités par les données multimédia.
• Compatibilité avec les navigateurs populaires : JavaScript est supporté par les principaux navigateurs,
c.-à-d., il ne nécessite pas de plug-in particulier.
• Sécurité : JavaScript est considéré comme un langage sécurisé, car il ne permet pas la lecture ou
l'écriture directe sur le disque client, éliminant ainsi la possibilité de récupérer un virus par ce biais.
• Validation des formulaires: JavaScript rend possible la vérification des informations saisies dans un
formulaire directement sur le navigateur de l'utilisateur.
Il existe 2 manières pour insérer un code JavaScript dans une page HTML:
<html>
<head>
<title> une page simple </title>
</head>
<body>
Bonjour
<script>
alert('bonjour');
[Link] (prompt('quel est votre nom ?','Indiquer votre nom ici'));
confirm('quel bouton allez-vous choisir ?');
</script>
</body>
</html>
Fonctions simples
Syntaxe:
function nom_fonction ([param1, …]){
//Corps de la fonction
}
Corps de la fonction :
Déclaration des variables,
Instructions réalisés par la fonction,
Instruction return pour renvoyer une valeur ou un objet (Facultative)
Déclaration de variables
4 façons pour déclarer une variable en JavaScript :
• Utilisation de l’instruction
[var , let , const , ] variable=valeur;
• Avant ES6 (2015), JavaScript n'avait que la portée globale et la portée fonction.
Les variables déclarées à l'intérieur d'un bloc { } ne sont pas accessibles depuis l'extérieur
du bloc
Déclaration de variables: portée bloc
Variable nom à une portée bloc Variable nom à une portée fonction
function test() { function test() {
if (true) { if (true) {
let nom = "Rachid"; var nom = "Rachid";
} }
[Link](nom); // Rachid
[Link](nom);/*ReferenceError }
:nom is not defined*/
}
Déclaration de variables: portée bloc
La portée bloc signifie que vous pouvez masquer des variables dans une fonction :
function test() {
let nb = 5;
if (···) {
let nb = 10; // Masquer la variable externe
`nb`
[Link](nb); // 10
}
[Link](nb); // 5
}
Déclaration de variables: let vs const
<script>
let age=prompt("quel est votre age");
if (age>=18){
alert("vous etes Majeur...");
}else{
alert("vous etes Mineur...");
}
</script>
Structures conditionnelles
<script>
</script>
Structures conditionnelles
La structure: switch
<script>
var jour = "lundi";
switch (jour) {
case "lundi":
[Link]("C'est le début de la semaine.");
break;
case "vendredi":
[Link]("C'est bientôt le week-end !");
break;
default:
[Link]("C'est un jour de la semaine.");
}
</script>
Structures de contrôle
La boucle conditionnelle : While
while(condition) { ... instructions ... }
<script>
<script>
</script>
Expressions de Fonction
En JavaScript, une expression de fonction est une façon de déclarer une fonction en tant qu'expression.
Elles peuvent être anonymes, nommées ou fléchées, et sont souvent utilisées dans le contexte de
l'affectation d'une variable ou de la transmission d'un argument à une autre fonction.
Fonction Anonyme
<script>
// Expression de fonction anonyme
var addition = function(a, b) {
return a + b;
};
// Utilisation de la fonction
var resultat = addition(3, 5);
[Link](resultat); // Affiche 8
</script>
Expressions de Fonction
<script>
// Expression de fonction anonyme auto-exécutante
var resultat = (function(a, b) {
return a + b;
})(3, 5);
</script>
Expressions de Fonction
// Utilisation de la fonction
var produit = multiplication(4, 5);
[Link](produit); // Affiche 20
</script>
Expressions de Fonction
Fonction Fléchée
La version ECMAScript 6 (ES6) introduit une nouvelle syntaxe pour définir des fonctions nommée par
Les fonctions fléchées.
<script>
// Expression de fonction fléchée
const carre = (x) => {
return x * x;
};
// Utilisation de la fonction
var resultatCarre = carre(4);
[Link](resultatCarre); // Affiche 16
</script>
Expressions de Fonction
const nom_fonction=([param1,…])=>{
//Corps de la fonction
}
function ajouter(a, b) {
return a + b;
}
function carre(x) {
return x * x;
}
function estPair(nombre) {
return nombre % 2 === 0;
}
Javascript
Objets prédéfinis & propres
Objets prédéfinis
En JavaScript, il existe plusieurs objets prédéfinis qui sont intégrés dans le
langage et qui fournissent diverses fonctionnalités.
Array
Boolean
Date
Function
Image
Number
Object
String
Tableau de données (Objet array)
• Déclaration par l’utilisation de
• var/let.
Le premier élément du tableau est
indexé à 0.
• Il est possible de déclarer un tableau sans dimension fixée: Sa taille
s'adapte en fonction du contenu.
// Avec la syntaxe littérale
let fruits = ['pomme', 'orange', 'banane'];
fruits[1] = 'kiwi';
[Link](fruits); // Affiche ['pomme', 'kiwi',
'banane']
Tableau de données (Objet array):
Propriétés & méthodes
• La propriété length: renvoie la longueur du tableau (le nombre d'éléments).
[Link]([Link]); // Affiche
3
• La méthode push(): ajoute un ou plusieurs éléments à la fin du tableau.
[Link]('grape');
[Link](fruits); // Affiche [‘pomme', 'kiwi', 'banane',
‘raisin']
• La méthode pop(): retire le dernier élément du tableau.
[Link]();
[Link](fruits); // Affiche [‘pomme', 'kiwi', 'banane']
• La méthode indexOf(): renvoie l'index du premier élément correspondant trouvé dans le tableau,
sinon -1.
[Link]([Link]('banane')); // Affiche 2
• La méthode splice() peut être utilisée pour ajouter ou supprimer des éléments à partir d'une
position spécifiée.
[Link](0, 2); // Supprime 2 éléments à partir de
l'index 0
[Link](fruits); // Affiche ['banane']
[Link](1, 0, 'orange'); // Ajoute 'orange' à l'index 1
[Link](fruits); // Affiche ['banane', 'orange']
Tableau de données (Objet
array):Utilisation de tableaux
• Parcourir un tableau
// Parcourir un tableau sans connaître le nombre d'éléments
let tableau= new Array(1, "a", 9) ;
for (let i=0; i<[Link]; i++)
[Link]("tableau[" + i + "] = "+tableau[i]);
...
alert("Votre nom est: "+tab["nom"]);
...
• La méthode concat(): est utilisée pour concaténer deux tableaux ou plus, créant ainsi un nouveau
tableau qui contient les éléments des tableaux d'origine.
• La méthode join(): crée une chaîne de caractères en concaténant tous les éléments d'un tableau,
en les séparant par une virgule ou un autre séparateur spécifié.
let fruits = ['pomme', 'orange', 'banane'];
let chaineFruits = [Link](', ');
[Link](chaineFruits); // Affiche "pomme, orange, banane"
Tableau de données (Objet array): Autres
méthodes
• La méthode slice(): retourne une section du tableau en spécifiant les indices de début et de fin.
let nombres = [1, 2, 3, 4, 5];
let sousTableau = [Link](1, 4);
// La tranche va du premier index (1) jusqu'au deuxième index (4, non
inclus)
[Link](sousTableau); // Affiche [2, 3, 4]
• La méthode sort(): est utilisée pour trier les éléments d'un tableau.
let fruits = ['orange', 'pomme', 'banane'];
[Link]();
[Link](fruits); // Affiche ["banane", "orange", "pomme"]
L'objet String fournit diverses méthodes pour effectuer des opérations sur ces chaînes.
• La méthode substring(debut, fin): renvoie une sous-chaîne de caractères comprise entre les indices
spécifiés début et fin.
let sousChaine = [Link](0,
7);
// La position fin est non inclus
[Link](sousChaine); // Affiche
"Bonjour"
• La méthode substr(debut, longueur): renvoie une sous-chaîne de caractères, en commençant à l'index
spécifié début et en extrayant un certain nombre de caractères déterminé par la valeur de longueur.
let sousChaine = [Link](0, 8);
[Link](sousChaine); // Affiche "Bonjour,"
Objet string: Propriétés & méthodes
Propriétés :
• E : renvoie la valeur de la constante d'Euler (~2.718);
• LN2 : renvoie le logarithme népérien de 2 (~0.693);
• LN10 : renvoie le logarithme népérien de 10 (~2.302);
• LOG2E : renvoie le logarithme en base 2 de e (~1.442);
• LOG10E : renvoie le logarithme en base 10 de e (~0.434);
• PI : renvoie la valeur du nombre pi (~3.14159);
• SQRT1_2 : renvoie la racine carrée de ½ (~0.707);
• SQRT2 : renvoie la racine carrée de 2 (~1.414);
L'objet Math
Méthodes :
• abs( ), exp( ), log(), sin( ), cos( ), tan( ), asin( ), acos( ), atan( ), max( ),
min( ), sqrt( ) sont les opérations mathématiques habituelles;
• atan2( ) : retourne la valeur radian de l'angle entre l'axe des abscisses
et un point;
• ceil( ) : retourne le plus petit entier supérieur à un nombre;
• floor( ) : retourne le plus grand entier inférieur à un nombre;
• pow( ) : retourne le résultat d'un nombre mis à une certaine puissance;
• random( ) : retourne un nombre aléatoire entre 0 et 1;
• round( ) : arrondi un nombre à l'entier le plus proche.
L'objet Images: Propriétés
Exemple
img = new Image() ;
// Attribution de la source (URL) à l'image pour le préchargement
[Link] = '[Link]’ ;
// Attente du chargement complet de l'image
[Link] = function(){
// Modification de la 13e image de la page Web
[Link][12].src = [Link] ;
}
L'objet Date
[Link](2024);
[Link](5);
[Link](20);
[Link](09);
[Link](55);
[Link](10); let jour = new Date();
alert([Link]());// 2023
let anniversaire= new Date(2023, 11,
25);
alert([Link]());
// 25/12/2023 [Link]
L'objet Function
• L'objet fonction est une fonction constructrice qui permet de créer de nouvelles instances de
fonctions.
• Un objet fonction comprend une chaîne qui contient le code réel de la fonction.
• Bien que cela ne soit pas recommandé, vous pouvez créer un nouvel objet fonction en transmettant
au constructeur Function le nom et le corps de la fonction.
• eval(chaine): est une fonction qui prend une chaîne de caractères et l'évalue comme du code
JavaScript.
[Link](eval("2+2")); //
affiche 4
• isFinite(nombre): est utilisée pour vérifier si une valeur numérique est finie, c'est-à-dire si elle n'est
ni Infinity ni -Infinity. Elle renvoie true si la valeur est finie et false sinon.
[Link](isFinite(42)); // true
[Link](isFinite(Infinity)); //
false
[Link](isFinite(-Infinity));
[Link](isFinite("hello")); ////
false
false
[Link](isFinite("42")); // true (converti en
nombre)
Fonctions supérieures
• isNaN(objet) : est une fonction qui vérifie si une valeur est de type NaN (Not-a-Number).
[Link](isNaN(12)); // false
[Link](isNaN("12")); // false
[Link](isNaN("hello")); //
true
• parseFloat(chaine) : est une fonction qui prend une chaîne de caractères représentant un nombre à
virgule flottante et renvoie ce nombre.
[Link]("3.14"+2); // 3.142
[Link](parseFloat("3.14")+2); // 5.14
• parseInt(chaine) : est une fonction qui prend une chaîne de caractères représentant un nombre
entier et renvoie ce nombre.
[Link](parseInt("3.14")
+2); // 5
Objets propres : Déclaration et création
d’objets
• En JavaScript, les objets sont des structures de données clés-valeurs flexibles.
• Les objets peuvent être créés à l'aide de littéraux d’objets du constructeur Object avec new Object().
• les objets créés à partir d'une expression littérale seront des instances d'Object.
const Animal = {
type: "Invertébrés", // Valeur par défaut
afficherType : function() { // Une méthode pour afficher le type
Animal
[Link]([Link]);
}
}
let animal1 = [Link](Animal); // On crée un nouveau type
d'animal: animal1
[Link](); // affichera Invertébrés
let animal2 = [Link](Animal); // On crée un nouveau type
d'animal: animal2
animal2["type"]= "poisson"; // ou bien [Link]= "poisson";
[Link](); // affichera poisson
Objets propres : Déclaration et création
d’objets
Création d’objets propres en utilisant un constructeur par:
• Définition d’une fonction constructrice (un constructeur).
• Utilisation de this pour faire référence à l’objet courant.
• Instanciation des objets à partir du constructeur avec new.
function Etudiant(Le_nom,Le_prenom,Le_CODE){
[Link]=Le_nom;
[Link]=Le_prenom;
[Link]=Le_CODE;
}
let e1=new Etudiant("Ben Ali", "Mohamed", "1298742046");
alert("Votre nom est: "+[Link]);
Objets propres : Déclaration et création
d’objets
Déclaration de méthodes
• Association de fonctions dans la création de l’objet
function Etudiant(Le_nom,Le_prenom,Le_CODE){
[Link]=Le_nom;
[Link]=Le_prenom;
[Link]=Le_CODE;
[Link]=affiche_Etudiant;
}
function affiche_Etudiant(){
[Link]("Votre nom et prénom est: "+ [Link]+" "
+[Link]+ ",Votre CODE est: "+ [Link] );
}
let e=new Etudiant("Ben Ali", "Mohamed", "1298742046");
[Link]();
Objets propres : Déclaration et création
d’objets
La méthode constructeur est une méthode spéciale d'une classe pour créer et initialiser une
instance d'objet de cette classe.
Définir une fonction constructeur « Produit » avec les attributs libelle , catégorie et
prix et une méthode description() pour afficher le détail du produit.
JavaScript est souvent qualifié de "langage réactif" en raison de sa capacité à réagir aux
actions de l'utilisateur.
L'interaction avec l'utilisateur est principalement gérée via des événements qui peuvent être
déclenchés par des actions de l'utilisateur (clics, survols, etc.) ou par d'autres parties du
code.
Déclenchement d’instructions JavaScript
Événements JavaScript
• blur : Déclenché lorsque le focus est enlevé d'un objet. Par exemple, lorsque l'utilisateur quitte un
champ de formulaire.
• focus : Déclenché lorsque le focus est donné à un objet. Cela se produit généralement lorsque
l'utilisateur clique sur un champ de formulaire ou un autre élément interactif.
• change : Déclenché lorsque la valeur d'un champ de formulaire a été modifiée par l'utilisateur. Cela
peut s'appliquer à des champs de texte, des menus déroulants, etc.
• mouseover : Déclenché lorsque la souris est déplacée sur un objet. Utile pour créer des effets visuels
lorsque la souris survole un élément.
• click : Déclenché lorsqu'un clic de souris est effectué sur un objet. Très couramment utilisé pour
capturer les actions de l'utilisateur, comme cliquer sur un bouton.
Déclenchement d’instructions JavaScript
Événements JavaScript
• select : Déclenché lorsqu'un champ de formulaire est sélectionné, généralement par tabulation.
• submit : Déclenché lorsqu'un formulaire est soumis. Vous pouvez utiliser cet événement pour valider
les données du formulaire ou effectuer d'autres actions lors de la soumission.
• load : Déclenché lorsque la page est complètement chargée par le navigateur. Souvent utilisé pour
effectuer des initialisations ou des actions spécifiques une fois que la page est prête.
• unload : Déclenché lorsque l'utilisateur quitte la page. Il offre l'opportunité d'effectuer des opérations
de nettoyage ou d'enregistrer des données avant que l'utilisateur ne quitte définitivement la page.
Déclenchement d’instructions JavaScript
Les événements sont reconnaissables par leur nom précédé de "on", tels que:
L'association d'un événement à une action peut être réalisée dans le code HTML, de manière
similaire à la déclaration d'une propriété, par exp:
<button
onClick="envoyer()">Envoyer</button>
Déclenchement d’instructions JavaScript
<html>
<head>
<title>Exemples de déclenchements</title>
<script>
function saluer() {
alert("Bonjour tout le monde");
}
</script>
</head>
<body onLoad="saluer()">
<h1 onMouseover="saluer()">Survoler le pointeur pour exécuter
l’événement</h1>
<form>
<input type="button" name="bouton" value="salut"
onClick="saluer()">
</form>
<h1>Exécution sur protocole javascript:</h1>
<a href="javascript:saluer()">pour saluer</a>
</body>
Changer l’aspect du formulaire
<head>
<body> <script>
<form> function saluer() {
<input type="text" value="" name="texte1" alert("Bonjour tout le
onBlur="unchanger(this)" monde");
onFocus="changer(this)"/> }
let changer=function(texte){
<input type="text" value="" name="texte2" [Link]="4px solid green";
onBlur="unchanger(this)" onFocus }
="changer(this)"/> let unchanger=function(texte){
<input type="submit"/> [Link]="4px solid
</form> gray";
}
</body>
</script>
</head>
Contrôle du formulaire
<body>
<form onSubmit="return verifier()">
<input type="text"
name="texte"/>
<input type="submit" />
</form>
</body>
<script>
let verifier=function(){
if
([Link][0].elements["texte"].value==""){
alert("zone vide");
return false;
}
}
</script>
DOM
Document Object Model
DOM = Document Object Model
Le DOM (Document Object Model) en JavaScript est une interface de programmation qui
représente la structure d'un document HTML sous forme d’arbre d’objets.
Le DOM permet aux développeurs d'interagir dynamiquement avec le contenu d'une page
web en utilisant JavaScript.
Le DOM est l'adresse par laquelle vous pouvez localiser un objet de la page HTML
DOM permet également de réagir aux événements déclenchés par les utilisateurs, tels que
les clics de souris ou les touches de clavier
DOM = Document Object Model
A l’aide de Javascript :
• On peut sélectionner un élément (<p> par exemple), et modifier sa couleur (DOM document
+ DOM element).
• On peut sélectionner les attributs ("title" par exemple) et changer leur contenu (je remplace
title="image2" par title="beau tigre") (DOM document + DOM attribute).
DOM « document »
• L'objet document est la racine de la structure hiérarchique et fournit des méthodes et des
propriétés permettant de sélectionner les éléments d'une page web.
[Link]() ; // par son ID
[Link]() ; // par son attribut « name
»
[Link]() ; // par son nom de balise
HTML
[Link]() ; // par son nom de la classe
let
zone1=[Link]("rechercher");
let
zone2=[Link]("rechercher");
let
zone3=[Link]("input");
DOM « document »
• Deux autres méthodes basées sur les selecteurs CSS:
let zone1=[Link](".c1")[1];
//retourne le deuxième élément qui a la classe «
c1 ».
let zone2=[Link](".c1");
//retourne le premier élément qui a la classe «
c1 ».
let zone3=[Link]("#text");
//retourne l’élément qui a un id « text ».
DOM « element » +DOM « attribute »
• DOM « element »: Lorsque vous sélectionnez un élément du DOM, que ce soit par son ID, sa
classe, ou tout autre sélecteur, vous obtenez une référence à cet élément en tant qu'objet
element, qui permet d'effectuer diverses actions sur les éléments sélectionnés.
Cet objet zone1 possède des propriétés et des méthodes qui permettent de manipuler cet élément
particulier.
Vous pouvez utiliser cette référence pour accéder et modifier le contenu, les styles, les classes, les
attributs, etc., de cet élément sur la page.
DOM « element » +DOM « attribute »
• DOM « attribute »: permet de manipuler les attributs des éléments HTML sélectionnés.
var attribut=[Link]("type");
// obtenir la valeur de l'attribut "type" et renvoie
« search »
[Link]("placeholder");
// supprimer l’attribut « placeholder »
DOM « events »
• DOM « events »: permet de réagir et de faire des actions en réponse à des événements sur
une page web. Les événements peuvent être déclenchés par différentes actions de
l'utilisateur, comme un clic de souris, une pression de touche, un survol de la souris, etc.
<script> <script>
let
let
zone=[Link]("c");
zone=[Link]("c");
[Link]=vider;
[Link]=function(){
function vider(){
[Link]=""; [Link]="";
} }
</script> </script>
DOM « events »: addEventListener
[Link](eventType,
listenerFunction)
objet : l’objet ciblé (window, document ou un élément de la page).
• Exemple 1:
[Link]('load',function(){
[Link]('la page est totalement chargée');
});
Exemple 2:
[Link]('DOMContentLoaded',function(){
let img = [Link]("img")[0];
[Link]('mouseover',function(){
[Link]=0.5;
});
[Link]('mouseout',function(){
[Link]('opacity',1);
});
});
DOM « events »: addEventListener
• Dans une fonction de gestionnaire d'événements (listener), la valeur de this est généralement définie
sur l'objet qui a déclenché l'événement.
<button id="monBouton">Cliquez</button>
[Link]('click', function() {
[Link](this);
// 'this' fait référence à l'objet qui a déclenché
l'événement, dans ce cas, l'élément bouton
});
DOM « events »: addEventListener
• chaque fois qu'un événement est déclenché, un objet event est créé pour représenter cet
événement. Cet objet event est passé en tant que paramètre à la fonction de gestionnaire
d'événements (listener) associée à cet événement.
• L'objet event possède différentes propriétés qui fournissent des informations sur l'événement,
[Link]('click', function(event) {
});
DOM « events »: addEventListener
Exemple
[Link]('DOMContentLoaded',function(){
let box=[Link]('#box');
[Link]('click',function(event){
[Link]('tu as cliqué sur la div');
});
let bt=[Link]('button');
[Link]('click',function(event){
[Link]();
if ([Link]=='BUTTON'){
[Link]('tu as cliqué sur le bouton');
}
});
});
Modifier le DOM
Accéder à un élément
e = [Link]("un_id");
• Ecrire une page HTML qui contient un script qui vérifie lors de la
soumission du formulaire, si le champ n’est pas vide, sinon, un
message d’erreur est affiché.
1. Utiliser innerHTML pour insérer le message dans la balise span, en gras avec
une couleur rouge.
2. Utiliser une modification manuelle sur le DOM.
Solution: HTML
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="[Link]
rel="stylesheet">
<title>Document</title>
</head>
<body>
<br><br>
<div class="container">
<form>
<div id="message" class="alert alert-danger" role="alert">
Veuillez remplir tous les champs!
</div>
<input type="text" name="nom" class="form-control" id="firstname"/>
<input type="text" name="prenom" class="form-control" id="lastname"/>
<input type="button" class="btn btn-outline-primary" value="S'inscrire">
</form>
</div>
</body>
Solution : script
<script> else{
text1[1].setAttribute("class","form-control is-
valid");
[Link]("DOMContentLoaded",functio }
n(){ [Link]("display","block");
if (text1[0].getAttribute("class")=="form-control
let message=[Link]("message"); is-invalid" ||
[Link]="none" text1[1].getAttribute("class")=="form-control is-
let invalid"){
[Link]("class","alert alert-
btn=[Link]("input[type=button]"); danger");
[Link]("click",function(){ [Link]="<b>Veuillez remplir tous
let les champs!</b>";
}else{
text1=[Link]("input[type=text]"); [Link]("class","alert alert-
if (text1[0].value==""){ info");
text1[0].setAttribute("class","form-control is- [Link]="<b>Données envoyées avec
succès</b>";
invalid"); }
}else{ })
text1[0].setAttribute("class","form-control is- })
</script>
valid");
}
if (text1[1].value==""){