← Tous les projets

Les grands concepts de JavaScript

Un guide concis et interactif : chaque section explique un concept clé et propose un exemple que vous pouvez modifier et exécuter directement dans le navigateur.

1. Variables & portées

Trois mots-clés pour déclarer : var, let, const.

  • var : portée fonction, hoisté avec valeur undefined.
  • let : portée bloc, réassignable, zone morte temporelle (TDZ).
  • const : portée bloc, non réassignable (mais le contenu d'un objet reste mutable).
JavaScript

2. Types & coercition

7 types primitifs (string, number, bigint, boolean, undefined, null, symbol) et les objets.

JS coerce automatiquement les types : == compare après coercition, === compare strictement.

JavaScript

3. Fonctions

Citoyennes de première classe : on les assigne, on les passe en argument, on les retourne.

Les fonctions fléchées (=>) n'ont pas leur propre this ni arguments.

JavaScript

4. Closures

Une fonction conserve l'accès aux variables de la portée dans laquelle elle a été créée, même après que cette portée s'est terminée.

JavaScript

5. this & binding

this dépend de comment la fonction est appelée, pas où elle est écrite.

  • Appel libre : this = undefined (strict) ou globalThis.
  • Appel méthode obj.f() : this = obj.
  • fn.call/apply/bind force la valeur de this.
  • Flèche : hérite du this englobant.
JavaScript

6. Prototypes & classes

Tout objet a un prototype dont il hérite des propriétés. Les class ES6 sont du sucre syntaxique au-dessus des prototypes.

JavaScript

7. Méthodes de tableau

map, filter, reduce, find, some, every, flatMap… Pipeline déclaratif pour transformer des collections.

JavaScript

8. Destructuring & spread

Extraire des valeurs d'objets ou de tableaux en une ligne, ou recomposer avec ....

JavaScript

9. Promises & async/await

Une Promise représente une valeur future. async/await permet d'écrire de l'asynchrone comme du séquentiel.

JavaScript

10. Event loop

JS est mono-thread. La call stack exécute le code synchrone ; les tâches asynchrones reviennent via deux files : microtasks (promises) puis macrotasks (setTimeout, I/O).

JavaScript

11. Modules

ES modules : import / export. Chaque module a sa propre portée et est évalué une fois.

Exemple (non exécutable ici, fourni à titre indicatif) :

module math.js
module main.js

▶ Playground libre

Écrivez votre propre code JavaScript. Tout ce qui passe par console.log/info/warn/error apparaît dans la console ci-dessous.

JavaScript