Cómo usar el compilador de JavaScript online
- Escribe o pega tu código JavaScript en el editor. Puedes recuperar el ejemplo inicial con Restablecer ejemplo.
- Pulsa Ejecutar o usa Ctrl + Intro (⌘ + Intro en un Mac).
- La salida de
console.log,console.infoyconsole.debugaparece en el panel Salida.console.warn,console.errory las excepciones no capturadas, incluidas sus trazas de pila, se resaltan como errores. - Elige un límite de tiempo de 5, 15 o 60 segundos. Un script que tarde más se detiene automáticamente, y puedes pulsar Detener cuando quieras.
No hay nada que descargar. JavaScript se ejecuta en el motor que ya lleva integrado tu navegador, así que la página está lista al instante. Usa Copiar o main.js para guardar tu código.
Tu código se ejecuta en local, en un Web Worker dentro de tu propio navegador. Nunca se sube ni se guarda en nuestros servidores. El editor recuerda tu último código en el almacenamiento local de tu navegador, y en ningún otro sitio.
Qué se admite
- JavaScript moderno: todo lo que admita tu navegador, incluidas clases, funciones flecha, desestructuración, encadenamiento opcional (
?.), el operador de fusión nula (??),BigInt,Map/Sety los métodos de array más recientes. awaitde nivel superior: tu código se envuelve en una función asíncrona, así que puedes usarawaitcon promesas directamente.- Temporizadores y promesas:
setTimeout,setInterval,Promise.ally funciones similares funcionan. La ejecución se da por terminada cuando acaba tu código de nivel superior (incluido cualquier trabajo con await). - Web APIs compatibles con workers, como
JSON,Intl,TextEncoder,crypto.getRandomValuesystructuredClone.
Limitaciones:
- Sin DOM. El código se ejecuta en un worker, así que
document,windowyalert()no están disponibles. - Sin
import/require. Esto no es Node.js, así que no se pueden cargar paquetes de npm ni módulos de Node comofs. console.tablemuestra sus datos como JSON en lugar de dibujar una tabla.- El comportamiento depende del navegador que uses. Es posible que las funciones más recientes no estén disponibles en navegadores antiguos.
Referencia rápida de 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"] como JSON
const sleep = ms => new Promise(r => setTimeout(r, ms));
await sleep(100);
console.log(scores.bob ?? 'no score');
| Tarea | Sintaxis |
|---|---|
| Declarar variables | const x = 1; let y = 2; |
| Función flecha | const add = (a, b) => a + b; |
| Plantilla literal | `Total: ${sum}` |
| Igualdad estricta | a === b |
| Desestructuración | const { id, name } = user; |
| Esperar una promesa | const data = await promise; |
Consejos
- Los objetos y arrays se muestran como JSON con sangría. Muéstralos directamente en la consola, por ejemplo con
console.log({ a, b }), para ver los nombres de las variables junto a sus valores. MapySetse muestran con su tamaño y su contenido (por ejemplo,Map(2) [...]), y los valoresBigIntcon el sufijon.- Copia la salida JSON en el formateador JSON para validarla o para plegar y explorar estructuras grandes.
- Para ordenar código desordenado o minificado, pásalo por el formateador de JavaScript antes de pegarlo aquí.
- Los valores asignados a
globalThisse mantienen entre ejecuciones hasta que pulsas Detener. Las variables declaradas conconstolet, no.
Preguntas frecuentes
¿Qué versión de JavaScript ejecuta?
La que admita el motor de tu navegador: V8 en Chrome y Edge, SpiderMonkey en Firefox o JavaScriptCore en Safari. Las versiones actuales de todos ellos admiten ECMAScript moderno, incluidas las funciones de ES2024.
¿Por qué document es undefined?
Para que la página siga respondiendo y sea segura, tu código se ejecuta en un Web Worker, que no tiene acceso a la página. Usa esta herramienta para lógica, algoritmos y procesamiento de datos, no para manipular el DOM.
¿Puedo usar paquetes de npm?
No. import, require y los módulos integrados de Node.js no están disponibles. Solo se pueden usar el lenguaje y las Web APIs estándar que ofrecen los workers.
¿Qué pasa si escribo un bucle infinito?
La página sigue respondiendo, porque el bucle se ejecuta en un worker. Cuando se alcanza el límite de tiempo, o cuando pulsas Detener, el worker se cierra y tu código se detiene.
Actualizado