Saltar al contenido
javascript.test.js · devschool

Retos de JavaScript

104 preguntas ordenadas como el curso de JavaScript. Hazlas en orden o salta al tema que quieras repasar.

devschool $ 0 aciertos de 0 respondidas

¿Qué es JavaScript?

¿Te atascas? Repasa la lección ¿Qué es JavaScript?.

[JavaScript] ¿Qué relación hay entre Java y JavaScript?

[JavaScript] ¿Cómo se llama el estándar oficial de JavaScript?

Node.js

¿Te atascas? Repasa la lección Node.js.

[JavaScript] Ejecutas con Node.js un archivo que usa document.querySelector. ¿Qué pasa?

[JavaScript] ¿Qué carpeta no se debe subir nunca a Git?

Sintaxis

¿Te atascas? Repasa la lección Sintaxis.

[JavaScript] ¿Qué hace la línea 'use strict' al principio de un archivo?

[JavaScript] ¿Cuál es un nombre de variable válido?

Variables

¿Te atascas? Repasa la lección Variables.

[JavaScript] ¿Qué pasa al ejecutar este código?
const edad = 20;
edad = 21;

[JavaScript] ¿Qué recomendación se sigue hoy al declarar variables?

[JavaScript] ¿Qué muestra este código?
const equipo = ["Ana", "Luis"];
equipo.push("Eva");
console.log(equipo.length);

[JavaScript] ¿Qué muestra la consola?
let premio;
console.log(premio);

Tipos de datos

¿Te atascas? Repasa la lección Tipos de datos.

[JavaScript] ¿Qué muestra la consola?
console.log(typeof []);

[JavaScript] ¿Qué muestra la consola?
console.log(Number(""));

[JavaScript] ¿Cómo compruebas correctamente si x es NaN?

Operadores

¿Te atascas? Repasa la lección Operadores.

[JavaScript] ¿Qué muestra la consola?
console.log("5" + 3);

[JavaScript] ¿Qué muestra la consola?
console.log(5 == "5", 5 === "5");

[JavaScript] ¿Qué muestra la consola?
const cantidad = 0;
console.log(cantidad || 10, cantidad ?? 10);

if, else y switch

¿Te atascas? Repasa la lección if, else y switch.

[JavaScript] ¿Qué muestra la consola?
const nota = 10;
if (nota >= 5) console.log("Aprobado");
else if (nota >= 9) console.log("Sobresaliente");

[JavaScript] ¿Qué problema tiene este código?
if (edad = 18) {
  console.log("Tienes 18");
}

Bucles

¿Te atascas? Repasa la lección Bucles.

[JavaScript] ¿Cuántas veces se muestra "hola"?
for (let i = 0; i < 3; i++) {
  console.log("hola");
}

[JavaScript] ¿Qué muestra este código?
for (let i = 1; i <= 10; i++) {
  if (i % 2 === 0) continue;
  if (i > 5) break;
  console.log(i);
}

[JavaScript] ¿Qué muestra este código?
let vueltas = 0;
for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 4; j++) {
    vueltas++;
  }
}
console.log(vueltas);

[JavaScript] Quieres recorrer los elementos de un array. ¿Por qué es mejor for...of que for...in?

Funciones

¿Te atascas? Repasa la lección Funciones.

[JavaScript] ¿Qué devuelve esta función si no se le pasa nada?
function saludar(nombre = "mundo") {
  return "Hola, " + nombre;
}
saludar();

[JavaScript] ¿Qué devuelve una función que no tiene return?

[JavaScript] ¿Qué error hay aquí?
boton.addEventListener("click", saludar());

Funciones avanzadas

¿Te atascas? Repasa la lección Funciones avanzadas.

[JavaScript] ¿Qué muestra la consola?
const crear = (nombre) => { nombre: nombre };
console.log(crear("Taza"));

[JavaScript] ¿Qué error hay en boton.addEventListener("click", guardar());?

[JavaScript] ¿Qué muestra la consola?
function crearContador() {
  let n = 0;
  return () => ++n;
}
const a = crearContador();
const b = crearContador();
a(); a();
console.log(a(), b());

[JavaScript] ¿Qué le falta a una función recursiva para no acabar en 'Maximum call stack size exceeded'?

Ámbito y closures

¿Te atascas? Repasa la lección Ámbito y closures.

[JavaScript] ¿Qué muestra la consola?
let x = 1;
if (true) {
  let x = 2;
}
console.log(x);

[JavaScript] ¿Qué ocurre al ejecutar esto?
console.log(edad);
let edad = 30;

Cadenas

¿Te atascas? Repasa la lección Cadenas.

[JavaScript] ¿Qué muestra la consola?
console.log("JavaScript".slice(0, 4));

[JavaScript] ¿Cómo se obtiene el número de caracteres de un texto t?

Expresiones regulares

¿Te atascas? Repasa la lección Expresiones regulares.

[JavaScript] ¿Qué muestra la consola?
console.log(/\d{3}/.test("tel: 12345"));

[JavaScript] ¿Qué muestra la consola?
console.log("a1b22c333".match(/\d+/g));

[JavaScript] ¿Qué devuelve "2026-09-30".replace(/(\d{4})-(\d{2})-(\d{2})/, "$3/$2/$1")?

[JavaScript] ¿Qué muestra la consola?
const r = /a/g;
console.log(r.test("ana"), r.test("ana"), r.test("ana"));

Arrays

¿Te atascas? Repasa la lección Arrays.

[JavaScript] ¿Qué muestra la consola?
const numeros = [1, 2, 3];
console.log(numeros.map((n) => n * 2));

[JavaScript] ¿Qué muestra la consola?
console.log([10, 1, 5, 100].sort());

[JavaScript] ¿Cuál de estos métodos modifica el array original?

Métodos de arrays

¿Te atascas? Repasa la lección Métodos de arrays.

[JavaScript] ¿Qué muestra la consola?
const precios = [10, 20, 30];
const dobles = precios.map((p) => { p * 2 });
console.log(dobles);

[JavaScript] ¿Qué muestra la consola?
const total = [1, 2, 3, 4]
  .filter((n) => n % 2 === 0)
  .map((n) => n * 10)
  .reduce((acc, n) => acc + n, 0);
console.log(total);

[JavaScript] Necesitas el usuario cuyo id es 7 dentro de un array de usuarios. ¿Qué método es el adecuado?

[JavaScript] ¿Qué muestra la consola?
const notas = [3, 1, 2];
const ordenadas = notas.toSorted((a, b) => b - a);
console.log(notas, ordenadas);

Objetos

¿Te atascas? Repasa la lección Objetos.

[JavaScript] ¿Qué muestra la consola?
const usuario = { nombre: "Ana", edad: 25 };
console.log(usuario.email);

[JavaScript] ¿Cómo lees una propiedad cuyo nombre está guardado en la variable campo?

[JavaScript] ¿Qué muestra este código?
const socio = { nombre: "Ana", cuota: 30 };
const otro = socio;
otro.cuota = 40;
console.log(socio.cuota);

[JavaScript] ¿Qué muestra la consola?
const a = { id: 1 };
const b = { id: 1 };
console.log(a === b);

Desestructuración

¿Te atascas? Repasa la lección Desestructuración.

[JavaScript] ¿Qué muestra la consola?
const [a, , c = 5] = [1, 2];
console.log(a, c);

[JavaScript] ¿Qué muestra la consola?
const a = { nombre: "Eva", notas: [7] };
const b = { ...a };
b.nombre = "Ana";
b.notas.push(9);
console.log(a.nombre, a.notas);

[JavaScript] ¿Qué crea la línea const { titulo: nombre } = libro;?

[JavaScript] ¿Qué muestra la consola?
const base = { tema: "claro", idioma: "es" };
const cfg = { tema: "oscuro", ...base };
console.log(cfg.tema);

Set y Map

¿Te atascas? Repasa la lección Set y Map.

[JavaScript] ¿Qué muestra la consola?
const s = new Set([3, 1, 3, 2, 1]);
console.log(s.size, [...s]);

[JavaScript] ¿Qué muestra la consola?
const m = new Map();
m.set(1, "uno");
m.set("1", "texto");
console.log(m.size, m.get(1));

[JavaScript] ¿Cuál es la forma más corta de quitar los repetidos de un array lista?

[JavaScript] ¿Qué devuelve JSON.stringify(new Map([["a", 1]]))?

Errores

¿Te atascas? Repasa la lección Errores.

[JavaScript] ¿Cuándo se ejecuta el bloque finally?

[JavaScript] Una función recibe un dato con el que no puede trabajar. ¿Qué es lo más correcto?

Depuración

¿Te atascas? Repasa la lección Depuración.

[JavaScript] ¿Qué error aparece al ejecutar este código?
const lista = [{ nombre: "Ana" }];
console.log(lista[1].nombre);

[JavaScript] En un stack trace, ¿qué indica la primera línea que empieza por 'at'?

[JavaScript] ¿Qué hace la instrucción debugger en tu código?

[JavaScript] Una lista que cargas con fetch sale vacía y la consola no muestra ningún error. ¿Dónde miras primero?

Math

¿Te atascas? Repasa la lección Math.

[JavaScript] ¿Qué muestra la consola?
console.log(0.1 + 0.2 === 0.3);

[JavaScript] ¿Qué expresión da un entero aleatorio entre 1 y 6?

[JavaScript] ¿Qué devuelve (3.14159).toFixed(2)?

Fechas

¿Te atascas? Repasa la lección Fechas.

[JavaScript] ¿Qué fecha crea new Date(2026, 1, 14)?

[JavaScript] ¿Qué obtienes al restar dos objetos Date?

Clases y POO

¿Te atascas? Repasa la lección Clases y POO.

[JavaScript] En una clase hija, ¿qué hay que hacer en el constructor antes de usar this?

[JavaScript] ¿Qué significa el # en #saldo dentro de una clase?

Módulos

¿Te atascas? Repasa la lección Módulos.

[JavaScript] Abres con doble clic un HTML que carga un script type="module". ¿Qué pasa?

[JavaScript] ¿Cómo se importa una exportación por defecto?

JSON

¿Te atascas? Repasa la lección JSON.

[JavaScript] ¿Cuál de estos textos es un JSON válido?

[JavaScript] ¿Qué hace JSON.parse con un texto que no es JSON válido?

El DOM

¿Te atascas? Repasa la lección El DOM.

[JavaScript] ¿Qué método devuelve el primer elemento que coincide con un selector CSS?

[JavaScript] ¿Qué devuelve document.querySelector si no encuentra ningún elemento?

[JavaScript] ¿Por qué es preferible textContent a innerHTML para mostrar lo que escribe un usuario?

Modificar el DOM

¿Te atascas? Repasa la lección Modificar el DOM.

[JavaScript] Después de const p = document.createElement("p"), ¿se ve el párrafo en la página?

[JavaScript] ¿Dónde coloca el nuevo elemento lista.prepend(nuevo)?

Eventos

¿Te atascas? Repasa la lección Eventos.

[JavaScript] ¿Qué ventaja tiene la delegación de eventos?

[JavaScript] En un manejador, ¿qué es evento.target?

Formularios

¿Te atascas? Repasa la lección Formularios.

[JavaScript] ¿De qué tipo es campo.value en un <input type="number">?

[JavaScript] ¿Qué evento se dispara con cada tecla que cambia el contenido de un campo?

Temporizadores

¿Te atascas? Repasa la lección Temporizadores.

[JavaScript] ¿En qué orden salen los mensajes?
console.log("A");
setTimeout(() => console.log("B"), 0);
console.log("C");

[JavaScript] ¿Cómo se detiene un intervalo creado con const id = setInterval(...)?

localStorage

¿Te atascas? Repasa la lección localStorage.

[JavaScript] ¿Qué devuelve localStorage.getItem("puntos") después de setItem("puntos", 42)?

[JavaScript] ¿Qué diferencia hay entre localStorage y sessionStorage?

Asincronía

¿Te atascas? Repasa la lección Asincronía.

[JavaScript] ¿En qué orden salen los mensajes?
setTimeout(() => console.log("A"), 0);
Promise.resolve().then(() => console.log("B"));
console.log("C");

[JavaScript] ¿Qué muestra la consola en Node?
async function obtener() {
  return 5;
}
const x = obtener();
console.log(x);

[JavaScript] Tienes que cargar 3 productos que no dependen entre sí y cada petición tarda 1 segundo. ¿Qué opción tarda unos 1 segundo en total?

[JavaScript] ¿Qué combinador usarías para saber qué peticiones fueron bien y cuáles fallaron, sin que un fallo cancele el resultado?

fetch y async/await

¿Te atascas? Repasa la lección fetch y async/await.

[JavaScript] Ves [object Promise] en tu página en lugar de los datos. ¿Qué falta?

[JavaScript] El servidor responde con un 404. ¿fetch lanza un error?

APIs del navegador

¿Te atascas? Repasa la lección APIs del navegador.

[JavaScript] ¿Qué debes hacer siempre al pedir la ubicación con geolocation?

[JavaScript] ¿Para qué sirve un Web Worker?

Proyecto: una app

¿Te atascas? Repasa la lección Proyecto: una app.

[JavaScript] En la arquitectura de estado y render, ¿qué debe hacer un listener de eventos?

[JavaScript] El botón de borrar guarda el id en data-id. ¿Cuántos gastos quedan tras este filtro?
const gastos = [{ id: 1, importe: 12.5 }, { id: 2, importe: 20 }];
const id = "1"; // viene de boton.dataset.id
console.log(gastos.filter((g) => g.id !== id).length);

[JavaScript] ¿Qué muestra este código si los importes se guardaron como texto?
const gastos = [{ importe: "12.5" }, { importe: "20" }];
console.log(gastos.reduce((t, g) => t + g.importe, 0));

[JavaScript] ¿Por qué el proyecto envuelve localStorage.getItem y JSON.parse en un try...catch?

TypeScript

¿Te atascas? Repasa la lección TypeScript.

[JavaScript] ¿Qué es TypeScript?

[JavaScript] ¿Qué detecta TypeScript en este código?
interface Alumno { nombre: string; nota: number }
const a: Alumno = { nombre: "Ana", nota: 8 };
console.log(a.nombr);

Express

¿Te atascas? Repasa la lección Express.

[JavaScript] En Express, ¿dónde están los valores de una ruta como /api/cursos/:id?

[JavaScript] ¿Por qué el manejador del 404 debe ir después de todas las rutas?

API REST

¿Te atascas? Repasa la lección API REST.

[JavaScript] En una API REST, ¿qué método se usa para crear un recurso nuevo?

[JavaScript] ¿Qué URL sigue mejor las recomendaciones REST para borrar la tarea 7?