Come usare il compilatore JavaScript online
- Scrivi o incolla il tuo JavaScript nell'editor. Puoi ripristinare l'esempio iniziale con Ripristina esempio.
- Premi Esegui oppure usa Ctrl + Invio (⌘ + Invio su Mac).
- L'output di
console.log,console.infoeconsole.debugcompare nel pannello Output.console.warn,console.errore le eccezioni non gestite, compresi i relativi stack trace, vengono evidenziati come errori. - 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/Sete i metodi degli array più recenti. awaital livello principale: il tuo codice viene racchiuso in una funzione asincrona, quindi puoi usareawaitdirettamente sulle promise.- Timer e promise:
setTimeout,setInterval,Promise.alle 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.getRandomValuesestructuredClone.
Limitazioni:
- Niente DOM. Il codice gira in un worker, quindi
document,windowealert()non sono disponibili. - Niente
import/require. Questo non è Node.js, quindi non si possono caricare pacchetti npm né moduli di Node comefs. console.tablestampa 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');
| Operazione | Sintassi |
|---|---|
| Dichiarare variabili | const x = 1; let y = 2; |
| Arrow function | const add = (a, b) => a + b; |
| Template literal | `Total: ${sum}` |
| Uguaglianza stretta | a === b |
| Destrutturazione | const { id, name } = user; |
| Attendere una promise | const 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. MapeSetvengono stampati con dimensione e contenuto (per esempioMap(2) [...]), e i valoriBigIntcon il suffisson.- 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
globalThisrestano tra un'esecuzione e l'altra finché non premi Interrompi. Le variabili dichiarate conconstoletno.
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