Partie 2 : JavaScript et événements
1. Introduction à JavaScript
Section intitulée « 1. Introduction à JavaScript »1.1 Pourquoi JavaScript ?
Section intitulée « 1.1 Pourquoi JavaScript ? »HTML et CSS produisent des pages statiques : l'utilisateur peut lire le contenu et cliquer sur des liens, mais la page ne réagit pas à ses actions.
JavaScript (souvent abrégé JS) est un langage de programmation qui s'exécute dans le navigateur, côté client. Il permet de :
- Réagir aux actions de l'utilisateur (clic, saisie, survol...)
- Modifier le contenu et l'apparence de la page en temps réel
- Valider un formulaire avant envoi
- Créer des animations et des effets visuels
1.2 JavaScript ≠ Java
Section intitulée « 1.2 JavaScript ≠ Java »1.3 Intégrer JavaScript dans une page HTML
Section intitulée « 1.3 Intégrer JavaScript dans une page HTML »<body> <h1>Ma page</h1> <script> alert("Bonjour !"); </script></body><body> <h1>Ma page</h1> <script src="script.js"></script></body>Fichier script.js :
alert("Bonjour !");2. Bases du langage JavaScript
Section intitulée « 2. Bases du langage JavaScript »2.1 Variables
Section intitulée « 2.1 Variables »let age = 17; // variable modifiableconst nom = "Alice"; // constante (non modifiable)let moyenne = 14.5;let estMajeur = false;| Mot-clé | Usage |
|---|---|
let | Variable dont la valeur peut changer |
const | Constante, valeur fixée à la déclaration |
2.2 Types de données
Section intitulée « 2.2 Types de données »| Type | Exemple | Équivalent Python |
|---|---|---|
number | 42, 3.14 | int, float |
string | "Bonjour", 'NSI' | str |
boolean | true, false | True, False |
undefined | variable non initialisée | - |
null | absence de valeur | None |
2.3 Opérateurs
Section intitulée « 2.3 Opérateurs »// Arithmétiquelet somme = 5 + 3; // 8let reste = 10 % 3; // 1 (modulo)
// Comparaison5 === 5 // true (égalité stricte, type + valeur)5 == "5" // true (égalité souple, à éviter)5 !== 3 // true (différence stricte)
// Logiquetrue && false // false (ET)true || false // true (OU)!true // false (NON)2.4 Structures de contrôle
Section intitulée « 2.4 Structures de contrôle »// Conditionif (age >= 18) { console.log("Majeur");} else { console.log("Mineur");}
// Boucle forfor (let i = 0; i < 5; i++) { console.log(i);}
// Boucle whilelet compteur = 0;while (compteur < 3) { console.log(compteur); compteur++;}Comparaison Python / JavaScript :
| Concept | Python | JavaScript |
|---|---|---|
| Bloc de code | Indentation | Accolades { } |
| Fin d'instruction | Retour à la ligne | Point-virgule ; |
| Affichage | print() | console.log() |
| ET / OU / NON | and, or, not | &&, ||, ! |
2.5 Fonctions
Section intitulée « 2.5 Fonctions »function saluer(prenom) { return "Bonjour " + prenom + " !";}
let message = saluer("Alice");console.log(message); // "Bonjour Alice !"Les fonctions JavaScript se déclarent avec le mot-clé function, suivies du nom, des paramètres entre parenthèses et du corps entre accolades.
3. Le DOM (Document Object Model)
Section intitulée « 3. Le DOM (Document Object Model) »3.1 Qu'est-ce que le DOM ?
Section intitulée « 3.1 Qu'est-ce que le DOM ? »Quand le navigateur charge une page HTML, il construit en mémoire une représentation arborescente du document appelée DOM (Document Object Model). Chaque balise HTML devient un nœud de l'arbre.
Pour le code HTML :
<body> <h1 id="titre">Bonjour</h1> <p class="texte">Un paragraphe.</p></body>L'arbre DOM correspondant est :
document └── html ├── head │ └── ... └── body ├── h1#titre │ └── "Bonjour" └── p.texte └── "Un paragraphe."3.2 Accéder aux éléments du DOM
Section intitulée « 3.2 Accéder aux éléments du DOM »JavaScript permet de sélectionner des éléments du DOM pour les lire ou les modifier :
// Par identifiant (renvoie UN élément)let titre = document.getElementById("titre");
// Par sélecteur CSS (renvoie le PREMIER élément correspondant)let para = document.querySelector(".texte");
// Par sélecteur CSS (renvoie TOUS les éléments correspondants)let tousLesParagraphes = document.querySelectorAll("p");3.3 Modifier le contenu
Section intitulée « 3.3 Modifier le contenu »let titre = document.getElementById("titre");
// Modifier le textetitre.textContent = "Bienvenue en NSI";
// Modifier le HTML internetitre.innerHTML = "Bienvenue en <em>NSI</em>";| Propriété | Effet |
|---|---|
textContent | Modifie le texte brut |
innerHTML | Modifie le contenu HTML |
3.4 Modifier le style
Section intitulée « 3.4 Modifier le style »let titre = document.getElementById("titre");titre.style.color = "blue";titre.style.fontSize = "32px";titre.style.backgroundColor = "#f0f0f0";3.5 Modifier les classes CSS
Section intitulée « 3.5 Modifier les classes CSS »Plutôt que de modifier le style directement, il est préférable d'ajouter ou retirer des classes CSS :
let element = document.getElementById("boite");element.classList.add("visible"); // ajouter une classeelement.classList.remove("cache"); // retirer une classeelement.classList.toggle("actif"); // ajouter si absente, retirer si présente4. Les événements
Section intitulée « 4. Les événements »4.1 Qu'est-ce qu'un événement ?
Section intitulée « 4.1 Qu'est-ce qu'un événement ? »Un événement est une action déclenchée par l'utilisateur (ou le navigateur). Le programme JavaScript peut écouter ces événements et exécuter du code en réponse : c'est la programmation événementielle.
4.2 Les principaux événements
Section intitulée « 4.2 Les principaux événements »| Événement | Déclencheur |
|---|---|
click | Clic gauche sur un élément |
dblclick | Double-clic |
mouseover | La souris entre sur l'élément |
mouseout | La souris quitte l'élément |
keydown | Une touche du clavier est enfoncée |
keyup | Une touche du clavier est relâchée |
input | Le contenu d'un champ de saisie change |
change | La valeur d'un champ est modifiée (après validation) |
submit | Un formulaire est soumis |
load | La page a fini de charger |
4.3 Associer un événement à un élément
Section intitulée « 4.3 Associer un événement à un élément »Il existe trois méthodes pour associer un gestionnaire d'événements :
<button onclick="alert('Clic !')">Cliquez</button>Mélange HTML et JavaScript : à éviter.
let bouton = document.getElementById("monBouton");bouton.onclick = function() { alert("Clic !");};Limite : un seul gestionnaire par événement.
let bouton = document.getElementById("monBouton");bouton.addEventListener("click", function() { alert("Clic !");});Permet d'ajouter plusieurs gestionnaires au même événement.
4.4 L'objet événement
Section intitulée « 4.4 L'objet événement »Quand un événement se produit, JavaScript crée automatiquement un objet événement contenant des informations sur ce qui s'est passé :
document.addEventListener("click", function(e) { console.log("Type :", e.type); // "click" console.log("Cible :", e.target); // l'élément cliqué console.log("Position X :", e.clientX); // position horizontale console.log("Position Y :", e.clientY); // position verticale});| Propriété | Description |
|---|---|
e.type | Type de l'événement ("click", "keydown"...) |
e.target | L'élément qui a déclenché l'événement |
e.clientX, e.clientY | Position de la souris |
e.key | Touche pressée (pour keydown/keyup) |
e.preventDefault() | Empêche le comportement par défaut |
4.5 Exemple complet : changer la couleur au clic
Section intitulée « 4.5 Exemple complet : changer la couleur au clic »HTML :
<!DOCTYPE html><html lang="fr"><head> <meta charset="utf-8"> <title>Couleur au clic</title> <style> .boite { width: 200px; height: 200px; background-color: #3498db; margin: 50px auto; cursor: pointer; display: flex; align-items: center; justify-content: center; color: white; font-size: 18px; border-radius: 10px; } </style></head><body> <div id="maBoite" class="boite">Cliquez ici</div> <script src="couleur.js"></script></body></html>JavaScript (couleur.js) :
let boite = document.getElementById("maBoite");let couleurs = ["#3498db", "#e74c3c", "#2ecc71", "#f39c12", "#9b59b6"];let index = 0;
boite.addEventListener("click", function() { index = (index + 1) % couleurs.length; boite.style.backgroundColor = couleurs[index];});À chaque clic sur la boîte, sa couleur de fond change en parcourant le tableau couleurs de manière cyclique grâce à l'opérateur modulo %.
5. Exemples d'interactions courantes
Section intitulée « 5. Exemples d'interactions courantes »5.1 Afficher / masquer un élément
Section intitulée « 5.1 Afficher / masquer un élément »<button id="btnToggle">Afficher/Masquer</button><p id="texteCache" style="display: none;">Texte secret !</p>let btn = document.getElementById("btnToggle");let texte = document.getElementById("texteCache");
btn.addEventListener("click", function() { if (texte.style.display === "none") { texte.style.display = "block"; } else { texte.style.display = "none"; }});5.2 Compteur de clics
Section intitulée « 5.2 Compteur de clics »<p>Nombre de clics : <span id="compteur">0</span></p><button id="btnCompter">+1</button><button id="btnReset">Réinitialiser</button>let compteur = 0;let affichage = document.getElementById("compteur");let btnPlus = document.getElementById("btnCompter");let btnReset = document.getElementById("btnReset");
btnPlus.addEventListener("click", function() { compteur++; affichage.textContent = compteur;});
btnReset.addEventListener("click", function() { compteur = 0; affichage.textContent = compteur;});5.3 Réagir au clavier
Section intitulée « 5.3 Réagir au clavier »document.addEventListener("keydown", function(e) { console.log("Touche pressée :", e.key); if (e.key === "Escape") { alert("Vous avez appuyé sur Échap !"); }});À retenir
Section intitulée « À retenir »- JavaScript rend les pages Web interactives en s'exécutant côté client (dans le navigateur).
- Le DOM est la représentation arborescente de la page HTML en mémoire.
- On accède aux éléments avec
document.getElementById(),querySelector(),querySelectorAll(). - On modifie le contenu avec
textContent/innerHTMLet le style avec.styleou.classList. - Un événement est une action de l'utilisateur (
click,keydown,input...). addEventListener("evenement", fonction)est la méthode recommandée pour associer un traitement à un événement.- L'objet événement
edonne accès àe.target,e.key,e.clientX,e.preventDefault()...
© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight