À propos de ce cours
Découvrez les conventions d'écriture du code JavaScript : sensibilité à la casse, points-virgules et blocs, conventions de nommage (camelCase, PascalCase, UPPER_SNAKE_CASE, kebab-case), indentation, guillemets, commentaires et JSDoc, bonnes pratiques modernes (const, let, ===, mode strict) et vérification automatique avec Prettier et ESLint. Avec des exemples avant/après et des activités corrigées.
-
Objectifs
- Connaître les règles de syntaxe de base : instructions, points-virgules, blocs, sensibilité à la casse.
- Appliquer les conventions de nommage (camelCase, PascalCase, UPPER_SNAKE_CASE).
- Écrire un code lisible : indentation, espaces, guillemets, commentaires.
- Adopter les bonnes pratiques modernes (
const,let,===) et les outils qui les vérifient (ESLint, Prettier).
-
Pourquoi des conventions ?
- Un programme est lu beaucoup plus souvent qu'il n'est écrit : par vous dans trois mois, par vos collègues, par votre formateur.
- Les conventions d'écriture sont des règles communes qui rendent le code lisible, homogène et moins sujet aux erreurs. Le navigateur n'en a pas besoin, mais les humains si.
- Les entreprises suivent souvent un guide de style publié : Airbnb JavaScript Style Guide, Google JavaScript Style Guide ou JavaScript Standard Style. Ce qui compte surtout, c'est d'être cohérent dans tout le projet.
-
Les règles de syntaxe de base
- JavaScript est sensible à la casse:
note,NoteetNOTEsont trois variables différentes. De même,console.logfonctionne maisConsole.Logprovoque une erreur. - Une instruction se termine par un point-virgule
;. JavaScript sait en ajouter automatiquement dans beaucoup de cas (ASI), mais ce mécanisme réserve des surprises : nous les écrivons toujours. - Un bloc d'instructions est délimité par des accolades
{ }. L'accolade ouvrante reste sur la même ligne que l'instruction (if,for,function…). - Une instruction par ligne.
// Piège du point-virgule automatique : cette fonction renvoie undefined ! function obtenirStagiaire() { return { nom: "Sami" }; } // Correct : l'accolade reste sur la même ligne que return function obtenirStagiaireCorrect() { return { nom: "Sami" }; } - JavaScript est sensible à la casse:
-
Les conventions de nommage

| Élément | Convention | Exemple |
|---|---|---|
| Variables et fonctions | camelCase: premier mot en minuscules, les suivants commencent par une majuscule | prixTotal, calculerMoyenne() |
| Classes | PascalCase: chaque mot commence par une majuscule | class Stagiaire, class PanierAchat |
| Constantes de configuration | UPPER_SNAKE_CASE | const TAUX_TVA = 0.19; |
| Fichiers et dossiers | kebab-case (minuscules et tirets) | gestion-notes.js |
| Booléens | préfixe est, a, peut (ou is, has, can) | estConnecte, aPaye |
| Fonctions | un verbe qui décrit l'action | afficherResultat(), verifierEmail() |
- Un nom doit être explicite:
moyenneGeneraleplutôt quemoux2. Les noms d'une lettre sont acceptés seulement pour les compteurs de boucle (i,j). - Un nom de variable peut contenir des lettres, des chiffres,
$et_, mais ne commence pas par un chiffre et ne peut pas être un mot réservé (let,class,return,function…). - Évitez les accents dans les noms :
anneeplutôt queannée(autorisé, mais source de problèmes). - Choisissez une langue (français ou anglais) et gardez-la dans tout le projet.
Mise en forme du code
- Indentation: 2 espaces par niveau (convention la plus courante), jamais un mélange d'espaces et de tabulations.
- Espaces autour des opérateurs (
a + b,x = 5) et après les virgules. - Guillemets: choisissez doubles
"..."ou simples'...'et restez cohérent ; les gabarits`...${variable}...`servent quand on insère une valeur. - Longueur des lignes: environ 80 à 100 caractères maximum.
- Une ligne vide pour séparer les blocs logiques.
// ✘ Difficile à lire
let a=12,b=15;function moy(x,y){return (x+y)/2}console.log('Moyenne : '+moy(a,b))
// ✔ Lisible
const noteDevoir = 12;
const noteExamen = 15;
function calculerMoyenne(note1, note2) {
return (note1 + note2) / 2;
}
console.log(`Moyenne : ${calculerMoyenne(noteDevoir, noteExamen)}`);
Les commentaires
// ...: commentaire sur une ligne./* ... */: commentaire sur plusieurs lignes./** ... */: commentaire de documentation JSDoc, reconnu par VS Code qui l'affiche au survol de la fonction.- Un bon commentaire explique pourquoi, pas ce que fait une ligne évidente.
/**
* Calcule la moyenne d'un tableau de notes.
* @param {number[]} notes - Les notes sur 20.
* @returns {number} La moyenne arrondie à 2 décimales.
*/
function calculerMoyenne(notes) {
const total = notes.reduce((somme, note) => somme + note, 0);
// On arrondit pour l'affichage du bulletin (2 chiffres après la virgule)
return Math.round((total / notes.length) * 100) / 100;
}
-
Les bonnes pratiques modernes
constpar défaut,letsi la valeur doit changer, jamaisvar(ancienne syntaxe aux règles de portée piégeuses).===et!==plutôt que==et!=: la comparaison stricte ne convertit pas les types ("5" == 5vauttrue,"5" === 5vautfalse).- Toujours des accolades, même pour un
ifd'une seule ligne. - Éviter les variables globales: déclarer les variables dans le bloc ou la fonction où elles servent.
- Mode strict:
"use strict";en haut d'un script classique transforme certaines erreurs silencieuses en vraies erreurs. Les modules et les classes sont automatiquement en mode strict. - Des fonctions courtes qui font une seule chose.
"use strict"; const NOTE_MAX = 20; let nombreEssais = 0; if (nombreEssais === 0) { console.log("Premier essai"); } totalPoints = 10; // ✘ ReferenceError en mode strict : variable non déclarée -
Faire vérifier ses conventions par des outils
- Prettier s'occupe de la forme: indentation, guillemets, points-virgules, longueur des lignes. Avec Format On Save, le code est remis en forme à chaque enregistrement.
- ESLint s'occupe du fond: variables inutilisées ou non déclarées,
==au lieu de===, code inaccessible… - Configuration minimale d'ESLint (fichier
eslint.config.mjsà la racine, ESLint 9) :
// eslint.config.mjs import js from "@eslint/js"; import globals from "globals"; export default [ js.configs.recommended, { languageOptions: { globals: globals.browser // document, window, console… sont connus }, rules: { eqeqeq: "error", // impose === et !== "no-var": "error", // interdit var "prefer-const": "warn" // conseille const si la variable ne change pas } } ];- Pour l'installer dans un projet (Node.js nécessaire) :
npm init -ypuisnpm install --save-dev eslint @eslint/js globals. - Un fichier
.prettierrcfixe les choix de Prettier pour toute l'équipe :{ "semi": true, "singleQuote": false, "tabWidth": 2 }.
-
Activités
Activité 1 : bon nom ou mauvais nom ?
- Classez chaque nom en « valide et conforme », « valide mais non conforme » ou « invalide » :
prixTTC,2emeNote,Prix_total,class,estMajeur,TAUX_REMISE,calcul moyenne,$bouton,NombreDeStagiaires(pour une variable).
Activité 2 : rendre ce code lisible
- Réécrivez ce code en appliquant toutes les conventions de la leçon :
var N1=14,n2=9,N3=17
function F(a,b,c){var t=a+b+c;return t/3}
if(F(N1,n2,N3)>=10)console.log('admis')
else console.log("ajourné")
Activité 3 : le piège de return
- Exécutez dans la console les deux fonctions
obtenirStagiaire()etobtenirStagiaireCorrect()de la leçon. Expliquez la différence de résultat.
Activité 4 : laisser les outils travailler
- Collez le code de l'activité 2 (version d'origine) dans un fichier, enregistrez avec Prettier activé : que change-t-il ? Que ne change-t-il pas ?
- Installez ESLint dans le projet avec la configuration de la leçon et relevez les messages affichés. Corrigez-les un par un.
- Déposez les deux versions (avant/après) dans votre dépôt GitHub
js-conventions.
Corrigé de l'activité 1. Valides et conformes :
Activité 2 :
prixTTC, estMajeur, TAUX_REMISE, $bouton (convention parfois utilisée pour un élément du DOM). Valides mais non conformes : Prix_total, NombreDeStagiaires (PascalCase réservé aux classes). Invalides : 2emeNote (commence par un chiffre), class (mot réservé), calcul moyenne (espace).Activité 2 :
const note1 = 14;
const note2 = 9;
const note3 = 17;
function calculerMoyenne(a, b, c) {
const total = a + b + c;
return total / 3;
}
if (calculerMoyenne(note1, note2, note3) >= 10) {
console.log("Admis");
} else {
console.log("Ajourné");
}
Activité 3 : après return, JavaScript insère un point-virgule automatique : la fonction renvoie undefined et l'objet n'est jamais atteint.À retenir
- JavaScript est sensible à la casse; on termine les instructions par
;. - camelCase pour les variables et fonctions, PascalCase pour les classes, UPPER_SNAKE_CASE pour les constantes de configuration.
constpar défaut,letsi nécessaire, jamaisvar;===plutôt que==.- Prettier gère la forme, ESLint le fond : ils appliquent les conventions pour vous.
Sources : MDN Web Docs (developer.mozilla.org), documentation de Visual Studio Code et des Chrome DevTools.