JavaScript Difícil · Práctica

Convierte ideas en código

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.