Cómo se usa
- Escribe el código a la izquierda, o edita el ejemplo.
- Haz clic en «Ejecutar» o pulsa Ctrl+Enter (⌘+Enter en Mac). La salida de la consola aparece a la derecha.
- Si el código tarda demasiado, haz clic en «Detener», o ajusta el límite de tiempo abajo a la derecha.
Opciones explicadas
- Entorno
- Un Web Worker en tu navegador, con la sintaxis de JavaScript más reciente que admita tu navegador, fetch, setTimeout, Intl y crypto, pero sin document ni window.
- Consola
- console.log, info, warn, error, debug, table, count y time/timeEnd, con los marcadores %s, %d y %o. Los objetos se expanden de forma parecida a Node.js.
- Await de nivel superior
- El código se ejecuta dentro de una función async, así que puedes usar await directamente.
Qué se imprime
En la salida solo aparece lo que envías a la consola. El valor de la última línea no se muestra como ocurriría en la consola de un navegador, así que envuélvelo en console.log. La impresión sigue el estilo de Node.js: los arrays y los objetos se expanden, las cadenas que contienen se muestran entre comillas, y los marcadores %s y %d se rellenan con los argumentos siguientes.
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);
Las tres primeras líneas imprimen [ 1, 4, 9 ], Ada is 36 years old y { name: "Ada", tags: [ "a", "b" ] }. Las dos últimas líneas necesitan conexión de red e imprimen el estado HTTP de la petición. El límite de tiempo puede fijarse en 5, 10, 30 o 60 segundos; al alcanzarlo, la ejecución termina y un mensaje lo indica.
Preguntas frecuentes
¿Puedo importar paquetes de npm?
No con instrucciones import. Puedes cargar paquetes ESM dinámicamente con await import('https://esm.sh/nombre-del-paquete'), lo que necesita conexión a internet.
¿Qué pasa si escribo un bucle infinito?
Haz clic en «Detener» para acabarlo al instante, o se detiene solo al llegar al límite de tiempo. Cada ejecución usa un worker nuevo, así que la página no se ve afectada.
¿Se sube mi código?
No. Solo se ejecuta en tu navegador; las únicas peticiones de red son las que haga tu propio código.
¿Se admite TypeScript?
Por ahora solo JavaScript; quita antes las anotaciones de tipos de TypeScript.
Privacidad
Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.