Vai al contenuto
ToolMug

Esegui JavaScript online

Incolla o scrivi JavaScript e fai clic su Esegui per vedere output di console.log, warn ed error: utile per provare snippet, esercitarti con algoritmi o diagnosticare una logica. Funziona await al livello superiore e il codice gira in un worker separato, quindi un ciclo infinito non blocca la pagina.

Funziona nel tuo browser: nulla di ciò che inserisci viene caricato

Ctrl+Enter / ⌘+Enter

Console

Qui compare l’output di console.log.

Viene eseguito in un worker separato: niente DOM (document, window), ma funzionano fetch, timer, JSON, Intl e altre funzioni integrate.

Come si usa

  1. Scrivi il codice a sinistra oppure modifica l'esempio.
  2. Fai clic su Esegui o premi Ctrl+Invio (⌘+Invio su Mac). L'output appare nella console a destra.
  3. Se il codice dura troppo, fai clic su Ferma oppure imposta il limite di tempo in basso a destra.

Opzioni spiegate

Ambiente
Un Web Worker nel browser, con la sintassi JavaScript più recente supportata dal browser, fetch, setTimeout, Intl e crypto, ma senza document o window.
Console
console.log, info, warn, error, debug, table, count e time/timeEnd, con placeholder %s, %d e %o. Gli oggetti vengono espansi in modo simile a Node.js.
await al livello superiore
Il codice viene eseguito dentro una funzione async, quindi puoi usare await direttamente.

Che cosa viene stampato

Nell’output compare solo ciò che invii alla console. Il valore dell’ultima riga non viene mostrato come accadrebbe in una console del browser, quindi racchiudilo in console.log. La stampa segue lo stile di Node.js: array e oggetti vengono espansi, le stringhe al loro interno sono tra virgolette e i segnaposto %s e %d vengono riempiti con gli argomenti successivi.

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);

Le prime tre righe stampano [ 1, 4, 9 ], Ada is 36 years old e { name: "Ada", tags: [ "a", "b" ] }. Le ultime due righe richiedono una connessione di rete e stampano lo stato HTTP della richiesta. Il limite di tempo può essere impostato a 5, 10, 30 o 60 secondi; quando viene raggiunto, l’esecuzione termina e un messaggio lo segnala.

Domande frequenti

Posso importare pacchetti npm?

Non con istruzioni import statiche. Puoi caricare dinamicamente pacchetti ESM con await import('https://esm.sh/package-name'), ma serve una connessione di rete.

Cosa succede se scrivo un ciclo infinito?

Fai clic su Ferma per terminarlo subito oppure si arresterà automaticamente al limite di tempo. Ogni esecuzione usa un worker nuovo, quindi la pagina non viene compromessa.

Il mio codice viene caricato?

No. Viene eseguito solo nel browser; le uniche richieste di rete sono quelle effettuate dal tuo codice.

TypeScript è supportato?

Per ora solo JavaScript: rimuovi prima le annotazioni di tipo TypeScript.

Privacy

Questo strumento funziona interamente nel tuo browser. File e testi vengono elaborati sul tuo dispositivo e non vengono mai caricati sui nostri server.

Strumenti correlati