Par Loïc Durand / Formateur et développeur
Le JavaScript est un langage de programmation qui s'exécute directement dans votre navigateur web.
Il permet de rendre vos pages web vivantes et réactives.
Je vous entends déjà 😅
"J'ai déjà appris HTML et CSS, maintenant il faut encore apprendre autre chose ?"C'est une compétence qui vous ouvrira de nombreuses portes.
Eh oui, les interfaces de contrôle des fusées utilisent du JavaScript !
sourcesPoints clés :
Le JavaScript peut s'exécuter dans plusieurs contextes :
Chrome, Firefox, Safari, Edge...
C'est ce que nous allons étudier principalement.
Avec Node.js, vous pouvez créer des applications serveur complètes en JavaScript.
Tout ce que vous allez apprendre ici sera transférable à tous ces environnements.
Vous apprenez un seul langage pour créer des sites web, des applications mobiles, des applications desktop et des serveurs !
Vous entendrez parler de plusieurs noms...
JavaScript suit un standard appelé ECMAScript (ou ES)
Chaque navigateur implémente JavaScript à sa façon :
Oui, c'est un peu le bazar...
C'est à la fois une bonne et une mauvaise nouvelle :
✅ De nouvelles fonctionnalités arrivent régulièrement
❌ Toutes les fonctionnalités ne sont pas supportées partout
C'est LE site de référence pour vérifier la compatibilité des fonctionnalités web.
Maintenant que nous savons où et comment JavaScript fonctionne, voyons comment nous allons l'utiliser.
C'est-à-dire JavaScript pur, sans aucune bibliothèque externe.
Avantage : Vous maîtrisez tout et vos pages sont ultra-légères Inconvénient : Parfois plus verbeuxUne bibliothèque qui simplifie grandement JavaScript.
CODEBLOCK0Très populaire pendant des années, aujourd'hui moins utilisée (mais toujours pertinente pour découvrir).
Pour des applications web complexes.
Pour apprendre, on va commencer par VanillaJS.
Pourquoi ? Parce que comprendre les bases vous permettra de mieux utiliser n'importe quelle bibliothèque ou framework par la suite !
Voyons concrètement ce que JavaScript va vous permettre de faire.
Vérifier qu'un email est correct, qu'un mot de passe est assez fort... Tout ça avant d'envoyer les données au serveur.
Menus déroulants, sliders, onglets, modales... Tout ce qui rend une page vivante !
Graphiques, cartes interactives, éditeurs de texte... Des milliers de bibliothèques sont disponibles.
Même si CSS peut faire beaucoup, JavaScript permet des animations beaucoup plus complexes et interactives.
Deux possibilités s'offrent à vous.
Pratique pour tester rapidement, mais déconseillé pour de vrais projets.
Dès le début, organisez votre code :
js/ pour vos scripts JavaScriptVous me remercierez plus tard ! 😊
Vous entendrez peut-être parler d'autres langages...
Syntaxe plus concise, très utilisée dans le monde Ruby.
Moins populaire aujourd'hui.
JavaScript avec du typage fort. Développé par Microsoft.
Idéal pour les gros projets où vous devez maintenir du code propre.
Le langage d'Android peut aussi être compilé en JavaScript !
Intéressant si vous venez du monde mobile.
Avant de commencer à coder, parlons des outils qui vont vous accompagner.
Tous les navigateurs modernes intègrent des DevTools (outils de développement).
Raccourci magique :F12 ou Ctrl+Shift+I (ou Cmd+Option+I sur Mac)C'est votre meilleur ami pour :
Vous allez passer beaucoup de temps avec elle !
Quelques recommandations :
Le moment est venu d'écrire votre première ligne de code JavaScript !
Suivez le guide pratique iciMaintenant que vous avez les bases, passons à la pratique !
Accéder au TP1Maintenant que vous avez touché du code, parlons plus en détail du langage lui-même.
Qu'est-ce que ça veut dire ? 🤔
En programmation, chaque donnée a un type :
En JavaScript, vous n'avez pas à déclarer explicitement le type de vos variables.
Le langage s'adapte automatiquement !
Oui, ça peut faire un peu peur au début...
Ne vous inquiétez pas, avec un peu de pratique, tout deviendra naturel.
JavaScript est conçu pour être accessible aux débutants.
Comme tout langage de programmation, JavaScript a sa syntaxe et ses règles.
Voyons les plus importantes.
;Chaque instruction se termine par un point-virgule.
CODEBLOCK0 Note : En JavaScript moderne, il est souvent optionnel, mais je vous recommande de l'utiliser pour plus de clarté.Commenter votre code est essentiel pour vous et vos collègues !
Une variable, c'est comme une boîte dans laquelle vous rangez une information.
let : pour les variablesUtilisez let quand la valeur de votre variable va changer.
const : pour les constantesUtilisez const quand la valeur ne doit jamais changer.
const ?Cela rend votre code plus sûr et plus prévisible.
Si vous savez qu'une valeur ne doit pas changer, utilisez const !
JavaScript connaît plusieurs types de données. Découvrons-les !
En JavaScript, pas de distinction entre entiers et décimaux : tout est number.
Trois façons d'écrire du texte, avec une préférence pour les backticks (\`) qui permettent d'insérer des variables.
Un booléen ne peut avoir que deux valeurs : true (vrai) ou false (faux).
Très utile pour les conditions !
Un tableau, c'est une liste ordonnée d'éléments.
Un objet, c'est une structure avec des propriétés (ou "clés") et leurs valeurs.
| Type | Exemple | Usage |
| --------- | -------------------------- | ------------------------------------------ |
| number | 42 ou 3.14 | Pour les calculs mathématiques |
| string | "Bonjour" | Pour stocker du texte |
| boolean | true ou false | Pour les conditions logiques |
| array | [1, 2, 3] | Pour les listes d'éléments |
| object | {nom: "Durand"} | Pour structurer des données complexes |
JavaScript permet de changer le type d'une variable.
C'est puissant mais peut causer des erreurs, soyez vigilant !
Une variable ne peut être déclarée qu'une seule fois avec let ou const.
Imaginez que vous gérez des statuts de commande :
CODEBLOCK0Les constantes rendent votre code auto-documenté !
Avant d'aller plus loin, familiarisons-nous avec notre meilleur allié : la console.
La console permet de tester du code sans avoir à créer de fichier.
Ouvrez-la et expérimentez !
Vous pouvez mettre en pause l'exécution de votre code pour l'inspecter.
Extrêmement utile pour comprendre ce qui se passe !
Une fonction, c'est comme une recette de cuisine : un ensemble d'instructions qu'on peut réutiliser.
C'est aussi simple que ça !
Les paramètres permettent de personnaliser le comportement.
Le mot-clé return permet à la fonction de renvoyer un résultat.
Ouvrez la console et créez vos propres fonctions :
Les conditions permettent à votre programme de prendre des décisions.
"Si l'âge est supérieur ou égal à 18, alors ... sinon ..."
Quand la variable est déjà un booléen, pas besoin de == true !
Vous pouvez utiliser des fonctions dans vos conditions !
Créez un petit programme qui :
Testez dans la console !
Une boucle permet de répéter une action plusieurs fois.
"Tant que compteur est inférieur à 5, affiche et incrémente"
Évitez ça ! Votre navigateur va se bloquer.
La syntaxe classique, très utilisée.
forlet i = 0 : Initialisationi < 5 : Condition de continuationi++ : Incrémentation (équivalent à i = i + 1)En JavaScript moderne, on préfère utiliser des méthodes plus élégantes.
Plus lisible et moins d'erreurs possibles !
map crée un nouveau tableau transformé.filter garde seulement les éléments qui répondent au critère.Quand il n'y a qu'une instruction, on peut simplifier !
Privilégiez les méthodes modernes (forEach, map, filter) aux boucles for classiques.
Elles sont :
Vous trouverez beaucoup d'anciens tutoriels utilisant les boucles for classiques.
Ce n'est pas faux, mais c'est moins moderne.
Apprenez les deux, mais préférez les nouvelles méthodes dans votre code.
Ouvrez la console et testez :
Prenez votre temps, la pratique est la clé !
Maintenant que vous maîtrisez JavaScript, voyons comment interagir avec votre page HTML.
C'est une représentation de votre page HTML sous forme d'arbre.
Chaque élément HTML est un nœud dans cet arbre.
CODEBLOCK0 Visualiser le DOMOuvrez les outils de développement (F12) et allez dans l'onglet Elements.
Vous voyez votre page représentée sous forme d'arbre !
Vous pouvez :
Comme en CSS, on utilise des sélecteurs pour cibler des éléments.
| Sélecteur CSS | Dans HTML | Usage |
| ------------- | --------------------- | ------------------------------ |
| #monId | id="monId" | Élément unique |
| .maClasse | class="maClasse" | Plusieurs éléments similaires |
| p | | Tous les éléments de ce type |
Deux approches : l'ancienne et la moderne.
Fonctionnelle mais verbeuse.
Plus simple et cohérent avec CSS !
On change la couleur de tous les paragraphes !
jQuery simplifie encore plus la syntaxe (si vous incluez la bibliothèque).
CODEBLOCK0Simple et élégant, mais moins utilisé aujourd'hui.
Vous pouvez créer de nouveaux éléments HTML avec JavaScript !
Guide complet iciCette méthode peut créer une faille XSS (Cross-Site Scripting) si vous insérez du contenu utilisateur non nettoyé.
CODEBLOCK0JavaScript peut changer le CSS de vos éléments.
Passons à la pratique pour bien assimiler tout ça !
Accéder au TP Manipulation du DOMÉlément crucial pour créer des formulaires interactifs !
Encore plus concis !
Un TP amusant pour pratiquer tout ce que nous avons vu !
Accéder au TP Générateur de punitionsC'est là que votre page devient vraiment interactive !
Un événement, c'est quelque chose qui se passe :
Voyons comment écouter ces événements.
Simple mais mélange HTML et JavaScript (pas idéal).
thisthis fait référence à l'élément qui a déclenché l'événement.Au début, les événements peuvent sembler complexes.
Mais avec la pratique, ils deviennent naturels !
Il existe beaucoup d'événements possibles.
Consultez la documentation MDN pour la liste complète.Pratiquons avec des exercices concrets !
Accéder au TP3Continuons avec des cas plus avancés !
Accéder au TP3.1Le Saint Graal du web moderne !
Cela permet à votre page de communiquer avec un serveur sans recharger la page.
Quand vous aimez une photo sur Instagram, la page ne recharge pas.
C'est de l'AJAX !
Concept fondamental à comprendre.
Que va afficher le console.log() ?
Il va afficher une chaîne vide "" !
Pourquoi ? Parce que la requête AJAX prend du temps, et le console.log() s'exécute avant que la réponse arrive.
JavaScript continue de s'exécuter sans attendre la fin de l'AJAX.
C'est comme si vous envoyiez un email et que vous continuiez votre travail sans attendre la réponse.
Avec fetch et les Promises
Une Promise représente une valeur qui sera disponible plus tard.
C'est un domaine complexe, on pourrait y passer des heures.
Commençons par une première expérimentation pratique !
Une fois les bases maîtrisées, vous pouvez explorer des outils plus puissants.
Pour des applications web complexes :
Vous avez terminé cette introduction au JavaScript.
JavaScript est un langage immense.
Continuez à pratiquer, à expérimenter, à casser (et à réparer) !
"Le meilleur moment pour planter un arbre était il y a 20 ans.
Le deuxième meilleur moment, c'est maintenant."
Continuez à apprendre et à créer ! 💪
Des questions ?
Formateur et développeur
Bon courage pour la suite de votre parcours ! 🚀