JavaScript online - IDE, editor, compilador, intérprete

Ejecuta JavaScript al instante en un worker aislado con salida de consola, async/await y funciones modernas de ES2024. Sin registro y sin instalar nada.

ES2024 (your browser's engine) · Se ejecuta en tu navegador, así que tu código nunca llega a nuestros servidores.
main.jsJavaScript
Salida

            
        
Ctrl/⌘ + Enter para ejecutar

Funciones del compilador de JavaScript online (IDE, editor & intérprete)

Escribe, ejecuta y prueba código JavaScript online y gratis. Esta página funciona como IDE, editor de código, compilador e intérprete de JavaScript online, todo en uno: escribe tu código, pulsa Ejecutar y verás el resultado al momento. Todo se ejecuta en tu navegador, sin nada que instalar ni cuentas que crear.

  • Ejecuta código al instante: ES2024 (your browser's engine), con resultados en menos de un segundo tras la primera carga.
  • Editor de código: resaltado de sintaxis, números de línea, emparejamiento de corchetes y cierre automático de corchetes.
  • Errores claros: los mensajes de error y las advertencias aparecen en el panel de salida, igual que en tu propio ordenador.
  • Pantalla completa: Ctrl/⌘ + Shift + F, tamaño de fuente ajustable, diseño en paralelo o apilado y paneles redimensionables.
  • Guardado automático: tu código se guarda en tu navegador; descárgalo como main.js o cópialo con un clic.
  • Experimenta sin riesgo: un límite de tiempo y un botón Detener acaban con los bucles infinitos.
  • Privado: el entorno de ejecución de JavaScript funciona en tu dispositivo, así que tu código nunca se sube.
  • Modo oscuro y atajos de teclado: Ctrl/⌘ + Enter ejecuta el código.
  • Gratis: sin registro y sin límites de uso.

Aprende otros lenguajes de programación

Cómo usar el compilador de JavaScript online

  1. Escribe o pega tu código JavaScript en el editor. Puedes recuperar el ejemplo inicial con Restablecer ejemplo.
  2. Pulsa Ejecutar o usa Ctrl + Intro (⌘ + Intro en un Mac).
  3. La salida de console.log, console.info y console.debug aparece en el panel Salida. console.warn, console.error y las excepciones no capturadas, incluidas sus trazas de pila, se resaltan como errores.
  4. 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/Set y los métodos de array más recientes.
  • await de nivel superior: tu código se envuelve en una función asíncrona, así que puedes usar await con promesas directamente.
  • Temporizadores y promesas: setTimeout, setInterval, Promise.all y 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.getRandomValues y structuredClone.

Limitaciones:

  • Sin DOM. El código se ejecuta en un worker, así que document, window y alert() 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 como fs.
  • console.table muestra 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');
TareaSintaxis
Declarar variablesconst x = 1; let y = 2;
Función flechaconst add = (a, b) => a + b;
Plantilla literal`Total: ${sum}`
Igualdad estrictaa === b
Desestructuraciónconst { id, name } = user;
Esperar una promesaconst 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.
  • Map y Set se muestran con su tamaño y su contenido (por ejemplo, Map(2) [...]), y los valores BigInt con el sufijo n.
  • 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 globalThis se mantienen entre ejecuciones hasta que pulsas Detener. Las variables declaradas con const o let, no.
Consejo: ¿Quieres anotaciones de tipos? El compilador de TypeScript online funciona igual y además muestra el JavaScript que genera.

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

Copiado al portapapeles