16 chapitres5 h 22 minDébutant
JavaScript : bases, DOM, formulaires et fetch
Cours JavaScript gratuit pour le BTS SIO en 16 chapitres : bases, tableaux, DOM, événements, formulaires, fetch, async/await, modules, exercices corrigés.
Par Josselyn C., prof de BTS SIO. Mis à jour le .
L'essentiel
JavaScript est le langage de programmation des navigateurs web : c'est lui qui fait réagir une page quand tu cliques, qui vérifie un formulaire avant l'envoi, qui charge des données sans recharger la page. Il tourne aussi hors du navigateur avec Node.js, pour écrire des serveurs et des API. Au BTS SIO, c'est le premier langage de l'option SLAM pour le web : tes réalisations professionnelles de l'E6 ont presque toujours une partie écrite en JavaScript, et l'épreuve écrite de cybersécurité (E7 SLAM) te fait régulièrement repérer et corriger des failles dans un extrait de code, dont le XSS.
À la fin de ce cours, tu sauras :
- écrire du JavaScript moderne : variables, conditions, boucles, fonctions, tableaux, objets et JSON ;
- transformer des listes de données avec
map,filteretreduce; - modifier une page web par le DOM sans ouvrir de faille XSS ;
- gérer les clics, les saisies et les formulaires, avec une validation par expressions régulières ;
- enregistrer des données dans le navigateur avec
localStorage, en sachant ce qu'il ne faut jamais y mettre ; - appeler une API avec
fetch,asyncetawait, et traiter chaque cas d'erreur ; - organiser ton code en modules, le déboguer avec les outils de développement, le tester avec Vitest ;
- rendre tes interactions utilisables au clavier et par un lecteur d'écran.
Avant ce cours. Savoir écrire une page HTML simple avec un formulaire (cours HTML et CSS) et connaître les bases de l'algorithmique : variable, condition, boucle, fonction (cours Algorithmique). Ce cours montre la syntaxe de JavaScript sans réexpliquer ce qu'est une boucle.
Et après. JavaScript sert ensuite côté serveur dans le cours Node.js et Express, puis pour les interfaces dans le cours React. Les concepts de la programmation orientée objet (encapsulation, héritage, polymorphisme) sont enseignés en C# dans le cours Programmation orientée objet ; ici, tu verras seulement la syntaxe des classes JavaScript. Le fonctionnement de HTTP et la conception d'une API sont dans le cours API REST.
Le fil rouge. Tout le cours construit Gestock, une petite application web de gestion de stock pour Réparinfo, un atelier de réparation informatique de trois techniciens. Aujourd'hui, l'atelier suit ses pièces détachées (SSD, barrettes de mémoire, chargeurs, écrans) dans un tableur : personne ne voit qu'une pièce manque avant d'en avoir besoin. Gestock affiche le stock, signale les pièces sous leur seuil d'alerte, permet d'ajouter une pièce par un formulaire validé, garde les données dans le navigateur et les charge depuis une API. C'est le genre d'application que tu peux présenter comme réalisation professionnelle à l'E6.
Les versions. Les exemples suivent la norme ECMAScript 2026 et fonctionnent dans les versions actuelles de Chrome, Edge, Firefox et Safari. Les outils cités sont ceux de 2026 : Node.js en version LTS (26, ou 24 encore maintenue), Vite 8 et Vitest 5. Tout le code du fil rouge a été exécuté dans un navigateur et dans Node.js avant publication.
Comment travailler. Tape chaque exemple toi-même dans la console du navigateur ou dans un fichier, puis compare avec le résultat affiché. Chaque chapitre se termine par des exercices dont la réponse est masquée : cherche d'abord, ouvre ensuite.
| Ton objectif | Chapitres à travailler en priorité |
|---|---|
| Découvrir JavaScript | 1 à 7 |
| Rendre une page interactive (DOM, formulaires) | 7, 8, 9 et 13 |
| Relier une page à une API | 6, 10 et 12 |
| Préparer une réalisation pour l'E6 SLAM | 7 à 14 |
| Réviser la sécurité côté client pour l'E7 SLAM | 7, 9 et 10 |
| Réviser avant une évaluation | 15 et 16 |
Sommaire
JavaScript
0 chapitre sur 16
- Chapitre 1 : C'est quoi JavaScript ? Où s'exécute le code16 min
- Chapitre 2 : Variables, types et opérateurs : let, const et ===17 min
- Chapitre 3 : Conditions et boucles : if, switch, for…of, while17 min
- Chapitre 4 : Fonctions et fonctions fléchées en JavaScript16 min
- Chapitre 5 : Tableaux JavaScript : map, filter, reduce, find et sort18 min
- Chapitre 6 : Objets, JSON, Map et Set en JavaScript21 min
- Chapitre 7 : Le DOM : querySelector, textContent et innerHTML20 min
- Chapitre 8 : Événements et formulaires : addEventListener, validation et regex27 min
- Chapitre 9 : localStorage et sessionStorage : stocker des données dans le navigateur15 min
- Chapitre 10 : JavaScript asynchrone : promesses, async/await et fetch25 min
- Chapitre 11 : Modules ES et classes : organiser le code38 min
- Chapitre 12 : Déboguer JavaScript avec les DevTools et gérer les erreurs18 min
- Chapitre 13 : Accessibilité des interactions : clavier, focus et ARIA16 min
- Chapitre 14 : Tester avec Vitest et passer à TypeScript18 min
- Chapitre 15 : Exercices JavaScript corrigés type examen30 min
- Chapitre 16 : Aide-mémoire JavaScript : la syntaxe et les méthodes9 min
Questions fréquentes
C'est quoi JavaScript et à quoi ça sert ?
JavaScript est le langage de programmation que les navigateurs exécutent : il rend les pages web interactives, en réagissant aux clics, en vérifiant les formulaires et en chargeant des données sans recharger la page. Il est normalisé sous le nom d'ECMAScript, avec une nouvelle édition chaque année. Il s'utilise aussi hors du navigateur avec Node.js, pour écrire des serveurs et des API (où s'exécute JavaScript).
Quelle est la différence entre Java et JavaScript ?
Ce sont deux langages différents, malgré leurs noms : « JavaScript » a été choisi en 1995 pour profiter de la popularité de Java. Java est compilé et s'exécute dans une machine virtuelle, avec des types déclarés ; JavaScript est exécuté par le navigateur ou par Node.js, avec des types dynamiques. Leur syntaxe de base (accolades, if, for) se ressemble, leur fonctionnement très peu.
JavaScript, c'est du front-end ou du back-end ?
Les deux. Dans le navigateur, JavaScript fait le front-end : l'interface que voit l'utilisateur, seul ou avec une bibliothèque comme React. Avec Node.js, il fait le back-end : le serveur, l'API, l'accès à la base de données. Un même développeur peut ainsi écrire toute une application dans un seul langage, ce qu'on appelle une pile JavaScript complète (cours Node.js et Express).
Quelle est la différence entre let, const et var ?
const déclare une variable qu'on ne peut pas réaffecter, let une variable qui peut changer ; les deux n'existent que dans le bloc { } où elles sont déclarées. var, l'ancienne écriture, ignore les blocs et permet de lire une variable avant sa déclaration (elle vaut alors undefined), ce qui cache des bugs. La règle moderne : const par défaut, let si la valeur doit changer, jamais var (déclarer une variable).
C'est quoi le DOM en JavaScript ?
Le DOM (Document Object Model) est la représentation de la page HTML sous forme d'arbre d'objets, que le navigateur construit et que JavaScript peut modifier. document.querySelector y sélectionne un élément, textContent change son texte, createElement et append ajoutent de nouveaux éléments. Toute modification du DOM se voit immédiatement à l'écran (le DOM).
Quelle est la différence entre textContent et innerHTML ?
textContent lit ou écrit du texte : ce que tu y mets s'affiche tel quel, balises comprises. innerHTML lit ou écrit du HTML : ce que tu y mets est interprété par le navigateur. Insérer une saisie de l'utilisateur avec innerHTML ouvre une faille XSS, qui permet d'exécuter du code dans la page des autres visiteurs. Règle : textContent pour toute donnée, innerHTML seulement pour du HTML écrit par toi, sans variable (textContent ou innerHTML).
À quoi servent async et await ?
Ils permettent d'écrire du code asynchrone qui se lit de haut en bas. await met une fonction en pause jusqu'à ce qu'une promesse soit réglée (par exemple la réponse d'un fetch), sans bloquer le reste de la page ; il ne s'utilise que dans une fonction déclarée async, qui renvoie elle-même une promesse. Une erreur se traite alors avec un try…catch ordinaire (async et await).
Pourquoi fetch ne renvoie-t-il pas d'erreur sur un 404 ?
Parce que fetch ne rejette sa promesse que s'il n'a reçu aucune réponse : réseau coupé, serveur injoignable, requête bloquée par CORS, délai dépassé. Une réponse 404 ou 500 est une réponse ; c'est à ton code de tester response.ok (vrai pour les statuts 200 à 299) et de lever une erreur sinon. Sans ce test, ton code essaie de lire une page d'erreur comme des données (gérer les erreurs de fetch).
Peut-on stocker un token JWT dans le localStorage ?
Ce n'est pas recommandé : tout script qui s'exécute dans la page peut lire le localStorage, y compris un script injecté par une faille XSS, qui enverrait le jeton à un attaquant. Pour une application web, la session se garde de préférence dans un cookie posé par le serveur avec les attributs HttpOnly (illisible par JavaScript), Secure et SameSite. Le localStorage sert aux préférences et aux brouillons, pas à la sécurité (ce qu'il ne faut jamais stocker).
Faut-il apprendre JavaScript ou TypeScript en premier ?
JavaScript d'abord : TypeScript, c'est JavaScript plus des annotations de types, vérifiées avant l'exécution. Sans les bases du langage (fonctions, tableaux, asynchrone), les messages du compilateur TypeScript sont difficiles à comprendre. Une fois ce cours maîtrisé, passer à TypeScript prend quelques jours, et c'est un vrai atout : beaucoup de projets web professionnels l'utilisent (passer à TypeScript).