Como usar
- Escreva o código à esquerda, ou edite o exemplo.
- Clique em Executar ou pressione Ctrl+Enter (⌘+Enter no Mac). A saída do console aparece à direita.
- Se o código demorar demais, clique em Parar, ou defina o limite de tempo no canto inferior direito.
Opções explicadas
- Ambiente
- Um Web Worker no seu navegador, com a sintaxe mais recente de JavaScript suportada pelo seu navegador, fetch, setTimeout, Intl e crypto, mas sem document nem window.
- Console
- console.log, info, warn, error, debug, table, count e time/timeEnd, com os marcadores %s, %d e %o. Objetos são expandidos de forma parecida ao Node.js.
- Await de nível superior
- O código roda dentro de uma função async, então você pode usar await diretamente.
O que é impresso
Só aparece na saída o que você envia ao console. O valor da última linha não é mostrado como seria no console de um navegador, então envolva-o em console.log. A impressão segue o estilo do Node.js: arrays e objetos são expandidos, as strings dentro deles aparecem entre aspas, e os marcadores %s e %d são preenchidos com os argumentos seguintes.
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);
As três primeiras linhas imprimem [ 1, 4, 9 ], Ada is 36 years old e { name: "Ada", tags: [ "a", "b" ] }. As duas últimas precisam de conexão com a rede e imprimem o status HTTP da requisição. O limite de tempo pode ser definido como 5, 10, 30 ou 60 segundos; ao ser atingido, a execução é encerrada e uma mensagem avisa isso.
Perguntas frequentes
Posso importar pacotes do npm?
Não com instruções import. Você pode carregar pacotes ESM dinamicamente com await import('https://esm.sh/nome-do-pacote'), o que exige conexão com a internet.
E se eu escrever um loop infinito?
Clique em Parar para encerrá-lo na hora, ou ele para automaticamente ao atingir o limite de tempo. Cada execução usa um worker novo, então a página não é afetada.
Meu código é enviado a algum servidor?
Não. Ele roda só no seu navegador; as únicas requisições de rede são as que o seu próprio código faz.
TypeScript é suportado?
Por enquanto só JavaScript; remova as anotações de tipo do TypeScript antes.
Privacidade
Esta ferramenta funciona inteiramente no seu navegador. Seus arquivos e textos são processados no seu dispositivo e nunca são enviados aos nossos servidores.