Comment utiliser le compilateur JavaScript en ligne
- Écrivez ou collez votre JavaScript dans l'éditeur. Vous pouvez rétablir l'exemple de départ avec Réinitialiser l'exemple.
- Appuyez sur Exécuter ou utilisez Ctrl + Entrée (⌘ + Entrée sur Mac).
- La sortie de
console.log,console.infoetconsole.debugapparaît dans le panneau Sortie.console.warn,console.erroret les exceptions non interceptées, y compris leur pile d'appels, sont signalés comme des erreurs. - 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/Setet les nouvelles méthodes de tableau. awaitau niveau supérieur : votre code est enveloppé dans une fonction asynchrone, vous pouvez donc utiliserawaitdirectement sur des promesses.- Minuteurs et promesses :
setTimeout,setInterval,Promise.allet 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.getRandomValuesetstructuredClone.
Limites :
- Pas de DOM. Le code s'exécute dans un worker :
document,windowetalert()ne sont donc pas disponibles. - Pas d'
import/require. Ce n'est pas Node.js : les paquets npm et les modules Node commefsne peuvent pas être chargés. console.tableaffiche 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âche | Syntaxe |
|---|---|
| Déclarer des variables | const x = 1; let y = 2; |
| Fonction fléchée | const add = (a, b) => a + b; |
| Littéral de gabarit | `Total: ${sum}` |
| Égalité stricte | a === b |
| Décomposition | const { id, name } = user; |
| Attendre une promesse | const 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. MapetSets'affichent avec leur taille et leur contenu (par exempleMap(2) [...]), et les valeursBigIntavec le suffixen.- 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 à
globalThispersistent 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 avecconstoulet.
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