Pregunta de entrevista para Desarrollador frontend

Necesitas persistir algo en el navegador. ¿Cómo eliges entre localStorage, sessionStorage, cookies e IndexedDB?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Usa cookies solo cuando el servidor necesita el valor en cada petición, y pon HttpOnly, Secure y SameSite para cualquier cosa sensible. Usa sessionStorage para estado que debe morir con la pestaña, localStorage para datos clave valor pequeños y síncronos que sobreviven a reinicios, e IndexedDB para cualquier cosa grande, estructurada o asíncrona. Nunca guardes tokens ni datos personales en localStorage, porque cualquier script de la página puede leerlos.

Por qué lo preguntan los entrevistadores

Parece una pregunta de trivial pero en realidad es una pregunta de seguridad. El entrevistador quiere ver que sabes que localStorage es legible por cualquier script inyectado, que localStorage es síncrono y por tanto bloquea el hilo principal, y que las cookies cuestan ancho de banda en cada petición. Saber cuándo IndexedDB merece la complejidad también indica que has construido algo con soporte sin conexión y no solo pantallas de altas y bajas.

Cómo estructurar tu respuesta

  • Ordena las opciones por lo que necesita el servidor frente a lo que solo necesita el cliente.
  • Destaca que localStorage es síncrono y legible desde el mismo origen.
  • Enuncia la regla de los tokens y las banderas de cookie que usas.
  • Di dónde se gana IndexedDB su complejidad.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Mi primera pregunta es si el servidor lo necesita. Si lo necesita, es una cookie, y lleva HttpOnly, Secure y SameSite, lo que además significa que no es algo que lea mi JavaScript. Si solo lo necesita el cliente, entonces se reduce a duración y tamaño. sessionStorage para cosas con alcance de pestaña, como un paso de asistente o una posición de scroll que no quiero que se filtre a otra pestaña. localStorage para preferencias pequeñas y duraderas, tema, último filtro usado, cosas así, y lo mantengo pequeño porque es síncrono, así que un JSON enorme parseado al arrancar aparece directamente en mi tiempo hasta interactivo. IndexedDB en cuanto los datos son grandes o estructurados, por ejemplo una lista de registros cacheada para uso sin conexión, normalmente detrás de una pequeña envoltura porque la API cruda es desagradable. La regla que no negocio es que los tokens de acceso no van en localStorage, porque cualquier script inyectado puede leerlos; esos viven en una cookie HttpOnly o solo en memoria.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Por qué es más segura una cookie HttpOnly que localStorage para un token de sesión?
  • ¿Cómo mantendrías dos pestañas abiertas sincronizadas con el mismo estado guardado?
  • ¿Qué límites de almacenamiento y reglas de desalojo tienes en cuenta al planificar?

Más preguntas para Desarrollador frontend

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot