JavaScript online - IDE, editor, compilatore, interprete

Esegui subito JavaScript in un worker isolato in sandbox con output della console, async/await e le funzionalità moderne di ES2024. Senza registrazione, nulla da installare.

ES2024 (your browser's engine) · Funziona nel tuo browser, quindi il tuo codice non raggiunge mai i nostri server.
main.jsJavaScript
Output

            
        
Ctrl/⌘ + Enter per eseguire

Funzionalità del compilatore JavaScript online (IDE, editor e interprete)

Scrivi, esegui e testa codice JavaScript online gratis. Questa pagina è al tempo stesso IDE JavaScript online, editor di codice, compilatore e interprete: scrivi il codice, premi Esegui e vedi subito l'output. Tutto funziona nel tuo browser, senza nulla da installare e senza creare un account.

  • Esecuzione immediata: ES2024 (your browser's engine), con output in meno di un secondo dopo il primo caricamento.
  • Editor di codice: evidenziazione della sintassi, numeri di riga, corrispondenza e chiusura automatica delle parentesi.
  • Errori chiari: messaggi di errore e avvisi compaiono nel pannello di output, come sul tuo computer.
  • Schermo intero: Ctrl/⌘ + Shift + F, dimensione del carattere regolabile, layout affiancato o impilato e pannelli ridimensionabili.
  • Salvataggio automatico: il tuo codice resta nel browser; scaricalo come main.js o copialo con un clic.
  • Sperimenta in sicurezza: un limite di tempo e un pulsante Interrompi fermano i cicli infiniti.
  • Privato: il runtime JavaScript funziona sul tuo dispositivo, quindi il codice non viene mai caricato.
  • Modalità scura e scorciatoie da tastiera: Ctrl/⌘ + Enter esegue il codice.
  • Gratis: nessuna registrazione, nessun limite di utilizzo.

Impara altri linguaggi di programmazione

Come usare il compilatore JavaScript online

  1. Scrivi o incolla il tuo JavaScript nell'editor. Puoi ripristinare l'esempio iniziale con Ripristina esempio.
  2. Premi Esegui oppure usa Ctrl + Invio (⌘ + Invio su Mac).
  3. L'output di console.log, console.info e console.debug compare nel pannello Output. console.warn, console.error e le eccezioni non gestite, compresi i relativi stack trace, vengono evidenziati come errori.
  4. Scegli un limite di tempo di 5, 15 o 60 secondi. Uno script che dura di più viene interrotto automaticamente, e puoi premere Interrompi quando vuoi.

Non c'è niente da scaricare. JavaScript gira sul motore già integrato nel tuo browser, quindi la pagina è pronta subito. Usa Copia o main.js per salvare il tuo codice.

Il tuo codice viene eseguito in locale, in un Web Worker nel tuo browser. Non viene mai caricato né salvato sui nostri server. L'editor ricorda il tuo ultimo codice nella memoria locale del browser, e in nessun altro posto.

Cosa è supportato

  • JavaScript moderno: tutto ciò che il tuo browser supporta, comprese classi, arrow function, destrutturazione, optional chaining (?.), nullish coalescing (??), BigInt, Map/Set e i metodi degli array più recenti.
  • await al livello principale: il tuo codice viene racchiuso in una funzione asincrona, quindi puoi usare await direttamente sulle promise.
  • Timer e promise: setTimeout, setInterval, Promise.all e funzioni simili funzionano. L'esecuzione si considera terminata quando il codice di livello principale (compreso tutto il lavoro atteso con await) è completato.
  • Web API utilizzabili nei worker come JSON, Intl, TextEncoder, crypto.getRandomValues e structuredClone.

Limitazioni:

  • Niente DOM. Il codice gira in un worker, quindi document, window e alert() non sono disponibili.
  • Niente import/require. Questo non è Node.js, quindi non si possono caricare pacchetti npm né moduli di Node come fs.
  • console.table stampa i dati come JSON invece che come tabella disegnata.
  • Il comportamento dipende dal browser che usi. Le funzionalità molto recenti potrebbero mancare nei browser più vecchi.

Riferimento rapido 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"] come JSON

const sleep = ms => new Promise(r => setTimeout(r, ms));
await sleep(100);
console.log(scores.bob ?? 'no score');
OperazioneSintassi
Dichiarare variabiliconst x = 1; let y = 2;
Arrow functionconst add = (a, b) => a + b;
Template literal`Total: ${sum}`
Uguaglianza strettaa === b
Destrutturazioneconst { id, name } = user;
Attendere una promiseconst data = await promise;

Suggerimenti

  • Oggetti e array vengono stampati come JSON indentato. Stampali direttamente, per esempio console.log({ a, b }), per vedere i nomi delle variabili accanto ai loro valori.
  • Map e Set vengono stampati con dimensione e contenuto (per esempio Map(2) [...]), e i valori BigInt con il suffisso n.
  • Copia l'output JSON nel formattatore JSON per validarlo, oppure per comprimere ed esplorare strutture di grandi dimensioni.
  • Per sistemare codice disordinato o minificato, passalo nel formattatore JavaScript prima di incollarlo qui.
  • I valori assegnati a globalThis restano tra un'esecuzione e l'altra finché non premi Interrompi. Le variabili dichiarate con const o let no.
Suggerimento: vuoi le annotazioni di tipo? Il compilatore TypeScript online funziona allo stesso modo e mostra anche il JavaScript che genera.

Domande frequenti

Quale versione di JavaScript usa questo compilatore?

Quella supportata dal motore del tuo browser: V8 in Chrome ed Edge, SpiderMonkey in Firefox o JavaScriptCore in Safari. Le versioni attuali di tutti supportano ECMAScript moderno, comprese le funzionalità di ES2024.

Perché document è undefined?

Per mantenere la pagina reattiva e sicura, il tuo codice gira in un Web Worker, che non ha accesso alla pagina. Usa questo strumento per logica, algoritmi ed elaborazione dei dati, non per manipolare il DOM.

Posso usare i pacchetti npm?

No. import, require e i moduli integrati di Node.js non sono disponibili. Puoi usare solo il linguaggio e le Web API standard messe a disposizione dai worker.

Cosa succede se scrivo un ciclo infinito?

La pagina resta reattiva, perché il ciclo gira in un worker. Quando si raggiunge il limite di tempo, o quando premi Interrompi, il worker viene chiuso e il tuo codice si ferma.

Aggiornato

Copiato negli appunti