Cours JavaScript et TypeScript · Module 1: Bases de JavaScript
Environnements d'exécution (navigateur, Node.js)
Dans cette leçon9
Dans le monde de Jurassic Park, les scientifiques ont besoin d'environnements spéciaux pour que les dinosaures survivent - des habitats aquatiques pour le Mosasaurus aux jungles denses pour les Velociraptors. De même, JavaScript a besoin d'un environnement d'exécution approprié pour fonctionner et « donner vie » à nos applications.
Qu'est-ce qu'un environnement d'exécution ?
Un environnement d'exécution JavaScript est l'espace où le code JavaScript est exécuté. Tout comme différentes zones de Jurassic Park sont adaptées aux besoins d'espèces de dinosaures spécifiques, différents environnements d'exécution JavaScript ont leurs caractéristiques et capacités uniques.
Les navigateurs comme environnement d'exécution
L'environnement original et le plus répandu pour JavaScript, ce sont les navigateurs web. C'est comme la zone principale réservée aux visiteurs de Jurassic Park - l'endroit où la plupart des « invités » (utilisateurs) rencontrent les « attractions » (tes applications).
Anatomie de l'environnement du navigateur
L'environnement JavaScript du navigateur est composé de plusieurs éléments clés :
Le moteur JavaScript - le « cerveau » de toute l'opération, qui interprète et exécute le code
- V8 (Chrome, Edge, Opera)
- SpiderMonkey (Firefox)
- JavaScriptCore (Safari)
- Les moteurs modernes ne se contentent pas d'interpréter le code : les fragments exécutés très souvent sont compilés pendant l'exécution (JIT, just-in-time) en code machine rapide.
Le DOM (Document Object Model) - une représentation de la page HTML sous forme d'arbre d'objets que JavaScript peut manipuler. C'est comme la carte génétique des dinosaures - il définit la structure et les capacités de notre page.
Le BOM (Browser Object Model) - un ensemble d'objets fournis par le navigateur pour interagir avec la fenêtre du navigateur (p. ex.
window,navigator,location). On peut le comparer aux systèmes de surveillance et de contrôle de Jurassic Park.Les Web API - des interfaces supplémentaires fournies par le navigateur, telles que :
- Fetch API (pour la communication réseau)
- Canvas et WebGL (pour les graphismes)
- Web Storage (pour le stockage de données)
- Géolocalisation, Caméra, Microphone (accès aux appareils)
Ce sont comme les équipements spécialisés utilisés par les scientifiques et les gardes de Jurassic Park - ils étendent les capacités opérationnelles.
Limitations de l'environnement du navigateur
Pour des raisons de sécurité, les navigateurs imposent certaines limitations à JavaScript :
- Accès limité au système de fichiers
- Communication inter-domaines limitée (Same-Origin Policy)
- Pas d'accès direct aux ressources matérielles
Ces limitations ressemblent aux mesures de sécurité de Jurassic Park - elles protègent les utilisateurs des menaces potentielles, tout comme les clôtures électriques et les douves protègent les visiteurs du parc des dinosaures dangereux.
Node.js - Quand JavaScript quitte le navigateur
En 2009, JavaScript a réalisé ce qui semblait impossible - tout comme les dinosaures de Jurassic Park qui se sont échappés de l'île - il s'est affranchi des contraintes du navigateur et a investi le domaine des serveurs grâce à Node.js.
Qu'est-ce que Node.js ?
Node.js est un environnement d'exécution pour JavaScript basé sur le moteur V8 de Chrome, qui permet d'exécuter du code JavaScript en dehors du navigateur. C'est comme créer un nouvel écosystème où une espèce auparavant limitée à un seul environnement peut prospérer dans un environnement totalement nouveau.
Caractéristiques clés de Node.js
Accès au système de fichiers - la possibilité de lire et d'écrire des fichiers
1const fs = require('fs'); 2fs.writeFileSync('dinosaurs.txt', 'T-Rex, Velociraptor, Triceratops');Modules système - la possibilité d'organiser le code en paquets et d'utiliser des bibliothèques existantes
1const http = require('http'); 2const parkSystem = require('./park-monitoring-system');E/S non bloquantes - l'exécution d'opérations d'entrée/sortie sans bloquer le thread principal
1fs.readFile('dino-dna-sequences.txt', (err, data) => { 2 if (err) throw err; 3 console.log('Séquences ADN chargées !'); 4}); 5console.log('Analyse ADN démarrée...'); // S'exécute avant le chargement du fichierTout l'écosystème npm (Node Package Manager) - le plus grand registre de paquets logiciels au monde, semblable à la diversité génétique du laboratoire de Jurassic Park
Applications de Node.js
Node.js a trouvé sa place dans de nombreux domaines :
- API et serveurs web - Express.js, Nest.js, Koa.js
- Outils de développement - Webpack, Babel, ESLint
- Applications en temps réel - chats, jeux en ligne, collaboration en temps réel
- Microservices - petites applications serveur spécialisées
- Outils en ligne de commande - scripts automatisant les workflows des développeurs
Deno et autres branches évolutives
Tout comme l'évolution des dinosaures a créé de nouvelles espèces adaptées à des conditions changeantes, l'écosystème JavaScript évolue en créant de nouveaux environnements d'exécution :
- Deno - un environnement d'exécution plus récent créé par le créateur original de Node.js, conçu en pensant à la sécurité et aux fonctionnalités modernes de JavaScript
- Bun - un environnement d'exécution JavaScript et gestionnaire de paquets ultra-rapide
- Electron - permet d'utiliser JavaScript pour créer des applications de bureau
Choisir le bon environnement
Le choix d'un environnement d'exécution dépend du projet, tout comme à Jurassic Park différentes espèces de dinosaures ont besoin d'habitats différents :
- Navigateur : Idéal pour les applications avec interfaces utilisateur, les sites web et les applications web
- Node.js : Excellent pour les applications serveur, les outils CLI et le traitement des données
- Environnements hybrides : Pour les applications qui doivent fonctionner à la fois côté client et côté serveur
Outils pour travailler avec différents environnements
Pour gérer efficacement du code s'exécutant dans différents environnements (un peu comme gérer différentes espèces de dinosaures), les développeurs utilisent :
- Les bundlers (webpack, Parcel, Rollup) - des outils qui empaquettent le code pour différents environnements
- Les transpileurs (Babel) - qui transforment du code plus récent en versions plus anciennes
- Les gestionnaires de paquets (npm, yarn, pnpm) - pour gérer les dépendances
- Les systèmes CI/CD - pour automatiser les tests et le déploiement
Comment commencer à travailler avec différents environnements
Navigateur
La manière la plus simple de commencer à travailler avec JavaScript dans le navigateur :
Ouvre un éditeur de texte et crée un fichier HTML :
1<!DOCTYPE html> 2<html> 3<head> 4 <title>Jurassic Park - JavaScript</title> 5</head> 6<body> 7 <h1>Bienvenue à Jurassic Park !</h1> 8 <script> 9 console.log("Les dinosaures ont été lâchés !"); 10 </script> 11</body> 12</html>Ouvre ce fichier dans un navigateur et consulte la console développeur (F12 ou clic droit -> Inspecter -> Console)
Node.js
Pour commencer à travailler avec Node.js :
Installe Node.js depuis nodejs.org
Crée un fichier
park.js:1console.log("Bienvenue à Jurassic Park - Édition Backend !"); 2 3// Lecture d'un fichier 4const fs = require('fs'); 5try { 6 const dinoData = fs.readFileSync('dinos.json', 'utf8'); 7 const dinos = JSON.parse(dinoData); 8 console.log(`Données chargées pour ${dinos.length} dinosaures`); 9} catch (err) { 10 console.log("Erreur d'accès à la base de données des dinosaures :", err.message); 11}Exécute le script dans le terminal :
1node park.js
Débogage dans différents environnements
Navigateur
- Console développeur (F12)
- Points d'arrêt et inspection des variables
- Suivi des performances et de la mémoire
Node.js
- Utilisation du drapeau
--inspect - Débogage dans VS Code
- Journaux et surveillance
Résumé
Les environnements d'exécution JavaScript sont différents « habitats » où notre code peut vivre et fonctionner. Tout comme à Jurassic Park, où chaque espèce de dinosaure requiert des conditions particulières, différents types d'applications JavaScript fonctionnent mieux dans leurs environnements appropriés.
Comprendre les différences entre l'environnement du navigateur et l'environnement serveur comme Node.js est essentiel pour exploiter efficacement le potentiel de JavaScript. C'est comme la connaissance du comportement et des besoins de différentes espèces de dinosaures - cela nous permet de créer des solutions qui prospéreront dans leur écosystème.
Dans les prochaines leçons, nous commencerons à explorer la syntaxe et les capacités du langage lui-même, tout comme les généticiens de Jurassic Park étudiaient l'ADN des dinosaures pour mieux comprendre leurs capacités et leurs limites.
Code de cette leçon : index.js
1// Terminal de Jurassic Park - Système de journalisation
2// Exercice : Utiliser console.log() pour afficher des informations
3
4// console.log() affiche des données dans la console
5console.log("=== Système de journalisation du parc ===");
6
7// Affichage de différents types de données
8console.log("Statut du laboratoire : ACTIF");
9console.log("Nombre de dinosaures:", 42);
10console.log("Système de sécurité:", true);
11
12// Ta mission :
13// 1. Affiche le message « Statut du laboratoire : ACTIF »
14// 2. Affiche le nombre d'espèces dans le parc
15// 3. Utilise console.log() avec plusieurs arguments séparés par des virgules
16
17// Ton code ici :
18Tu as repéré une erreur dans cette leçon ?
Teste tes connaissances
Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.
1. Où le code JavaScript peut-il être exécuté ?
2. Quel moteur JavaScript est utilisé dans le navigateur Chrome ?
3. Qu'est-ce que le DOM (Document Object Model) dans l'environnement du navigateur ?
4. Laquelle des propositions suivantes est une caractéristique de Node.js ?
Tâches pratiques dans le jeu
- Tri vertical
Classe les composants de l'environnement d'exécution du navigateur en partant du plus bas niveau :
- Tri vertical
Classe les étapes de création d'un site web :