JavaScript en ligne - IDE, éditeur, compilateur, interpréteur

Exécutez du JavaScript instantanément dans un worker isolé, avec la sortie console, async/await et les fonctionnalités modernes d'ES2024. Sans inscription, rien à installer.

ES2024 (your browser's engine) · S'exécute dans votre navigateur : votre code n'atteint jamais nos serveurs.
main.jsJavaScript
Sortie

            
        
Ctrl/⌘ + Enter pour exécuter

Fonctionnalités du compilateur JavaScript en ligne (IDE, éditeur & interpréteur)

Écrivez, exécutez et testez du code JavaScript en ligne gratuitement. Cette page réunit un IDE JavaScript en ligne, un éditeur de code, un compilateur et un interpréteur : saisissez votre code, cliquez sur Exécuter et voyez le résultat immédiatement. Tout s'exécute dans votre navigateur, sans rien à installer ni compte à créer.

  • Exécution instantanée : ES2024 (your browser's engine), avec un résultat en moins d'une seconde après le premier chargement.
  • Éditeur de code : coloration syntaxique, numéros de ligne, correspondance et fermeture automatique des parenthèses.
  • Erreurs claires : les messages d'erreur et avertissements s'affichent dans le panneau de sortie, comme sur votre propre ordinateur.
  • Plein écran : Ctrl/⌘ + Shift + F, taille de police réglable, disposition côte à côte ou empilée et panneaux redimensionnables.
  • Enregistrement automatique : votre code est conservé dans votre navigateur ; téléchargez-le sous main.js ou copiez-le en un clic.
  • Expérimentez sans risque : une limite de temps et un bouton Arrêter interrompent les boucles infinies.
  • Confidentiel : l'environnement d'exécution JavaScript tourne sur votre appareil : votre code n'est jamais envoyé.
  • Mode sombre et raccourcis clavier : Ctrl/⌘ + Enter exécute le code.
  • Gratuit : sans inscription, sans limite d'utilisation.

Découvrez d'autres langages de programmation

Comment utiliser le compilateur JavaScript en ligne

  1. Écrivez ou collez votre JavaScript dans l'éditeur. Vous pouvez rétablir l'exemple de départ avec Réinitialiser l'exemple.
  2. Appuyez sur Exécuter ou utilisez Ctrl + Entrée (⌘ + Entrée sur Mac).
  3. La sortie de console.log, console.info et console.debug apparaît dans le panneau Sortie. console.warn, console.error et les exceptions non interceptées, y compris leur pile d'appels, sont signalés comme des erreurs.
  4. Choisissez une limite de temps de 5, 15 ou 60 secondes. Un script qui dure plus longtemps est arrêté automatiquement, et vous pouvez appuyer sur Arrêter à tout moment.

Il n'y a rien à télécharger. Le JavaScript s'exécute sur le moteur déjà intégré à votre navigateur : la page est donc prête immédiatement. Utilisez Copier ou main.js pour enregistrer votre code.

Votre code s'exécute localement, dans un Web Worker de votre propre navigateur. Il n'est jamais envoyé ni stocké sur nos serveurs. L'éditeur mémorise votre dernier code dans le stockage local de votre navigateur, et nulle part ailleurs.

Ce qui est pris en charge

  • JavaScript moderne : tout ce que votre navigateur prend en charge, y compris les classes, les fonctions fléchées, la décomposition (destructuring), le chaînage optionnel (?.), l'opérateur de coalescence des nuls (??), BigInt, Map/Set et les nouvelles méthodes de tableau.
  • await au niveau supérieur : votre code est enveloppé dans une fonction asynchrone, vous pouvez donc utiliser await directement sur des promesses.
  • Minuteurs et promesses : setTimeout, setInterval, Promise.all et les fonctions similaires fonctionnent. L'exécution est considérée comme terminée lorsque votre code de niveau supérieur (y compris le travail attendu avec await) se termine.
  • Les API Web disponibles dans les workers, comme JSON, Intl, TextEncoder, crypto.getRandomValues et structuredClone.

Limites :

  • Pas de DOM. Le code s'exécute dans un worker : document, window et alert() ne sont donc pas disponibles.
  • Pas d'import/require. Ce n'est pas Node.js : les paquets npm et les modules Node comme fs ne peuvent pas être chargés.
  • console.table affiche ses données en JSON plutôt que sous forme de tableau dessiné.
  • Le comportement dépend du navigateur que vous utilisez. Les fonctionnalités très récentes peuvent manquer dans les navigateurs plus anciens.

Aide-mémoire JavaScript

const scores = { ada: 91, linus: 78, grace: 85 };

const passed = Object.entries(scores)
  .filter(([, s]) => s >= 80)
  .map(([name, s]) => `${name}: ${s}`);

console.log(passed);           // ["ada: 91", "grace: 85"] en JSON

const sleep = ms => new Promise(r => setTimeout(r, ms));
await sleep(100);
console.log(scores.bob ?? 'no score');
TâcheSyntaxe
Déclarer des variablesconst x = 1; let y = 2;
Fonction fléchéeconst add = (a, b) => a + b;
Littéral de gabarit`Total: ${sum}`
Égalité strictea === b
Décompositionconst { id, name } = user;
Attendre une promesseconst data = await promise;

Astuces

  • Les objets et les tableaux s'affichent en JSON indenté. Affichez-les directement, par exemple avec console.log({ a, b }), pour voir le nom des variables à côté de leur valeur.
  • Map et Set s'affichent avec leur taille et leur contenu (par exemple Map(2) [...]), et les valeurs BigInt avec le suffixe n.
  • Copiez la sortie JSON dans le formateur JSON pour la valider, ou pour replier et explorer de grandes structures.
  • Pour remettre en forme du code désordonné ou minifié, passez-le dans le formateur JavaScript avant de le coller ici.
  • Les valeurs attachées à globalThis persistent d'une exécution à l'autre jusqu'à ce que vous appuyiez sur Arrêter. Ce n'est pas le cas des variables déclarées avec const ou let.
Astuce : Vous voulez des annotations de type ? Le compilateur TypeScript en ligne fonctionne de la même façon et affiche aussi le JavaScript qu'il génère.

Questions fréquentes

Quelle version de JavaScript est utilisée ?

Celle que prend en charge le moteur de votre navigateur : V8 dans Chrome et Edge, SpiderMonkey dans Firefox ou JavaScriptCore dans Safari. Les versions actuelles de tous ces moteurs prennent en charge l'ECMAScript moderne, y compris les fonctionnalités d'ES2024.

Pourquoi document est-il undefined ?

Pour que la page reste réactive et sûre, votre code s'exécute dans un Web Worker, qui n'a pas accès à la page. Utilisez cet outil pour la logique, les algorithmes et le traitement de données, pas pour manipuler le DOM.

Puis-je utiliser des paquets npm ?

Non. import, require et les modules intégrés de Node.js ne sont pas disponibles. Seuls le langage et les API Web standard fournies aux workers peuvent être utilisés.

Que se passe-t-il si j'écris une boucle infinie ?

La page reste réactive, car la boucle s'exécute dans un worker. Lorsque la limite de temps est atteinte, ou quand vous appuyez sur Arrêter, le worker est arrêté et votre code s'interrompt.

Mis à jour

Copié dans le presse-papiers