Ejecuta cada solución en un entorno aislado. Los ejercicios simples validan la salida y los complejos usan pruebas educativas.
01
Contador mediante closure
Difícil
Implementa crearContador(inicial). Debe devolver una función que incremente y devuelva su binding privado en cada llamada.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
02
Estados privados independientes
Difícil
Implementa crearCuenta(saldoInicial) con depositar y consultar. Dos cuentas deben mantener bindings privados independientes.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
03
Resolver this por call-site
Difícil
Define describir como función normal. Reutilízala como método de norte y sur para que lea el nombre del receptor en cada call-site.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
04
Fijar contexto con bind
Difícil
Crea presentarSaludo enlazando presentar a persona y prefijando 'Hola'. Debe aceptar todavía el signo de cierre.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
05
Delegar un método al prototype
Difícil
Crea reporte con Object.create(base), añade una propiedad propia valor con 6 y usa el método heredado duplicar.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
06
Clase derivada con super
Difícil
Implementa Rectangulo con area(). Extiende Cuadrado, llama super con el mismo lado para ancho y alto y crea figura de lado 5.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
07
Validar con getter y setter
Difícil
Completa Nivel para guardar un valor entre 0 y 100. Usa _valor como almacenamiento y expón valor mediante getter y setter.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
08
Construir un iterable
Difícil
Implementa intervalo(desde, hasta) como iterable inclusivo. Cada recorrido debe obtener un iterador nuevo e independiente.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
09
Secuencia con generador
Difícil
Implementa pasos(inicio, cantidad) como generador que entregue una cantidad de números consecutivos desde inicio.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
10
Indexar con Map y Set
Difícil
Implementa resumir(etiquetas): devuelve un Map con la frecuencia de cada etiqueta y un Set con las etiquetas únicas.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
11
Coordinar resultados de Promises
Difícil
Obtén valores con Promise.all para 2 y 4. Usa Promise.allSettled para registrar un fulfillment 'ok' y un rechazo 'fallo' sin perder ninguno.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
12
Ordenar continuaciones sin timers
Difícil
Construye orden A, D, C, B sin timers: añade A, encola C con Promise.then, añade D, espera una Promise resuelta y añade B.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
13
Transformar errores asíncronos
Difícil
Implementa leerSeguro(operacion): espera la operación, devuelve su valor; ante un rechazo, devuelve la cadena de texto 'recuperado: ' seguida del mensaje.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.
14
Componer y memoizar
Difícil
Implementa componer(f, g) y memoizar(fn) con Map. La función memoizada debe reutilizar el resultado para la misma clave primitiva.
Enter ejecuta. Shift+Enter inserta una línea. Ctrl/Cmd+Enter también ejecuta todo el editor.
Preparando entorno…
Pendiente
Consola / output
La salida aparecerá aquí.
Ejecuta el núcleo de JavaScript dentro de un Worker aislado. No admite DOM, red, import ni export. El cuerpo es async, por lo que acepta Promises y await, pero no equivale exactamente a un script global.