Votre premier programme
Écrire et exécuter son premier programme JavaScript avec Node.js.
Objectifs
À la fin de cette leçon, vous saurez :
- expliquer pourquoi le cours utilise JavaScript ;
- écrire et exécuter votre premier programme avec Node.js ;
- distinguer le code, l'interpréteur et la sortie ;
- lancer des programmes JavaScript sans interface graphique.
🔗 Pour vous rafraîchir la mémoire : manipulation de fichiers (
cp,mv,rm)
Pourquoi JavaScript ?
Un seul langage sera utilisé :
- dans le terminal, avec Node.js ;
- dans le navigateur, pour le web ;
- dans le backend (avec Node.js) ;
- puis comme base de TypeScript.
Un même langage partout : cela simplifie grandement l'apprentissage et la pratique. Tout au long du cursus, chaque nouvelle leçon vous fera réutiliser les mêmes concepts.
Node.js : moteur et interpréteur
JavaScript = langage
Node.js = runtime (environnement d'exécution)
V8 = moteur JavaScript
- JavaScript est le langage, défini par une norme.
- V8 est le moteur qui traduit le code en instructions machine.
- Node.js est le programme qui donne à V8 l'accès aux fichiers, au réseau, aux variables d'environnement.
Quand on exécute node hello.js, voici la chaîne :
vous
↓
node (interprète V8)
↓
hello.js (votre code)
↓
console.log écrit sur stdout
↓
terminal
Vérifier Node
node --version
Si la réponse contient un numéro de version, Node est installé et opérationnel.
Écrire le programme
Créez un fichier hello.js :
console.log("Hello World");
Une seule ligne suffit. console.log est une fonction fournie par le runtime Node : elle envoie ce qu'on lui passe, ici la chaîne de caractères "Hello World", vers la sortie standard.
Exécuter
node hello.js
Résultat :
Hello World
Le fichier ne s'exécute pas seul : c'est node qui le charge, le lit et l'interprète. Votre disque contient des fichiers inertes ; seul le programme Node sait les traduire en actions.
Modifier le programme
Essayez dans l'ordre :
console.log("Mon premier");
console.log(1 + 2);
console.log("1 + 2");
C'est la différence entre une opération réelle (calculée) et une chaîne (affichée simplement) : 1 + 2 calcule 3, "1 + 2" affiche le texte. La machine ne mélange jamais les deux.
En cours d'écriture : la console interactive
node
Sans argument, node ouvre une console : vous tapez du code, Enter l'évalue, la réponse s'affiche. Idéal pour tester une ligne avant de la mettre dans un fichier. Ctrl+C puis Ctrl+D quittent.
Exercice
- Créez
hello.jset exécutez-le : que voyez-vous ? - Ajoutez une ligne
console.log(20 + 22)et relancez : quel résultat ? - Testez maintenant
console.log("20 + 22"). - Pourquoi les deux lignes précédentes affichent-elles presque la même chose ?
- Ouvrez la console interactive et calculez
7 * 6sans créer de fichier. - Exécutez le fichier avec
node hello.jsdepuis un autre répertoire (par exemple/tmp) : est-ce qu'il fonctionne toujours ? Que faut-il lui donner ?
Résumé
- JS s'utilise dans le terminal, le navigateur et le backend.
- Node = runtime ; V8 = moteur ; JS = langage.
- Un fichier .js ne s'exécute que sous Node.
console.log(...)affiche sur la sortie standard.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
Réponses détaillées
Exercice 1. On voit Hello World : Node a lu le fichier, puis interprété son contenu.
Exercice 2. On voit 42. L'addition est bien calculée puis convertie en texte d'affichage.
Exercice 3. On voit 20 + 22 : le texte entre guillemets, sans calcul. "..." en JS délimite une chaîne.
Exercice 4. Presque identiques, mais différents : la première calcule puis affiche 42, la seconde affiche le texte 20 + 22 tel quel, sans calculer. Tout ce qui est entre guillemets est du texte : il s'affiche littéralement, sans être évalué.
Exercice 5. Dans la console : 7 * 6 → 42. Pour sortir : Ctrl+C, puis Ctrl+D.
Exercice 6. Depuis /tmp :
cd /tmp
node /home/cours/cours/hello.js
Il faut donner le chemin absolu du fichier (ou un chemin relatif correct). node hello.js seul depuis /tmp ne le trouverait pas : Node cherche le fichier dans le répertoire courant, comme toutes les commandes.