Aller au contenu
ToolMug

Exécuter du JavaScript en ligne

Collez ou écrivez du JavaScript et cliquez sur Exécuter pour voir les sorties de console.log, warn et error — pour essayer des extraits, s'exercer aux algorithmes ou déboguer un bout de logique. Le top-level await fonctionne, et le code s'exécute dans un worker séparé, donc une boucle infinie ne fige pas la page.

Fonctionne dans votre navigateur — rien de ce que vous saisissez n’est envoyé

Ctrl+Enter / ⌘+Enter

Console

La sortie de console.log apparaît ici.

S’exécute dans un worker séparé : pas de DOM (document, window), mais fetch, les minuteurs, JSON, Intl et les autres fonctions natives fonctionnent.

Mode d’emploi

  1. Écrivez du code à gauche, ou modifiez l'exemple.
  2. Cliquez sur Exécuter ou appuyez sur Ctrl+Entrée (⌘+Entrée sur Mac). La sortie de la console apparaît à droite.
  3. Si le code s'exécute trop longtemps, cliquez sur Arrêter, ou réglez la limite de temps en bas à droite.

Explication des options

Environnement
Un Web Worker dans votre navigateur, avec la syntaxe JavaScript la plus récente prise en charge par votre navigateur, fetch, setTimeout, Intl et crypto, mais sans document ni window.
Console
console.log, info, warn, error, debug, table, count et time/timeEnd, avec les substitutions %s, %d et %o. Les objets sont développés à peu près comme dans Node.js.
Top-level await
Le code s'exécute à l'intérieur d'une fonction asynchrone, ce qui permet d'utiliser await directement.

Ce qui est affiché

Seul ce que vous envoyez à la console apparaît dans la sortie. La valeur de la dernière ligne n’est pas affichée comme elle le serait dans la console d’un navigateur : entourez-la donc de console.log. L’affichage suit le style de Node.js : les tableaux et les objets sont développés, les chaînes qu’ils contiennent sont entre guillemets, et les marqueurs %s et %d sont remplis à partir des arguments suivants.

console.log([1, 2, 3].map((n) => n * n));
console.log('%s is %d years old', 'Ada', 36);
console.log({ name: 'Ada', tags: ['a', 'b'] });
const data = await fetch('https://example.com/').then((r) => r.status);
console.log(data);

Les trois premières lignes affichent [ 1, 4, 9 ], Ada is 36 years old et { name: "Ada", tags: [ "a", "b" ] }. Les deux dernières lignes nécessitent une connexion réseau et affichent le statut HTTP de la requête. La limite de temps peut être réglée sur 5, 10, 30 ou 60 secondes ; lorsqu’elle est atteinte, l’exécution est interrompue et un message l’indique.

Questions fréquentes

Puis-je importer des paquets npm ?

Pas avec des instructions import. Vous pouvez charger des paquets ESM dynamiquement avec await import('https://esm.sh/nom-du-paquet'), ce qui nécessite une connexion réseau.

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

Cliquez sur Arrêter pour y mettre fin immédiatement, ou elle s'arrête automatiquement à la limite de temps. Chaque exécution utilise un nouveau worker, donc la page n'est pas affectée.

Mon code est-il envoyé quelque part ?

Non. Il s'exécute uniquement dans votre navigateur ; les seules requêtes réseau sont celles que votre propre code effectue.

TypeScript est-il pris en charge ?

Seulement JavaScript pour l'instant ; retirez d'abord les annotations de type TypeScript.

Confidentialité

Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers et vos textes sont traités sur votre appareil et ne sont jamais envoyés à nos serveurs.

Outils similaires