Core JavaScript nivel experto en español Guía de repaso intensivo para entrevistas y para llevar tu código de producción al siguiente nivel Contenido reescrito y sintetizado en español con enfoque práctico
Q2BSTUDIO Somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud en AWS y Azure, inteligencia de negocio y automatización Integramos buenas prácticas avanzadas de JavaScript en productos reales de software a medida y soluciones IA para empresas Si buscas un partner para crear plataformas robustas y escalables visita nuestro servicio de aplicaciones y software a medida y explora cómo potenciamos tu negocio con inteligencia artificial y agentes IA
1 Cierres closures Un cierre es una función que conserva su entorno léxico aun cuando su función externa ya terminó Habilitan encapsulación privacidad de datos currificación memoización y callbacks seguros Atención con bucles usando var ya que todas las iteraciones comparten la misma variable capturada prefiere let o una IIFE y evita capturar objetos pesados que impidan el garbage collection
2 Alcance y elevación scope y hoisting var es de alcance de función y se eleva inicializando como undefined let y const son de bloque se elevan pero quedan en zona muerta temporal y fallan si accedes antes de su declaración Las declaraciones de función se elevan con su cuerpo y las expresiones de función se comportan como variables
3 this Se decide en el sitio de llamada no en la definición Prioridad nuevo new luego enlace explícito call apply bind luego enlace implícito obj.metodo y por último enlace por defecto global o undefined en modo estricto Las funciones flecha heredan this léxico y no se pueden reconfigurar
4 Prototipos e herencia La búsqueda de propiedades asciende por la cadena de prototipos Object.create define el prototipo base Las funciones constructor establecen su propiedad prototype como prototipo de las instancias creadas con new Cambiar el prototype después de crear instancias no las actualiza
5 Event loop y concurrencia El bucle de eventos ejecuta la pila luego vacía la cola de microtareas y después toma la siguiente macrotarea Microtareas promesas mutation observer siempre se ejecutan antes que setTimeout incluso con cero de retardo En Node process nextTick tiene prioridad antes de microtareas
6 Temporizadores setTimeout y setInterval El retardo es mínimo no exacto setInterval puede derivar desfases mejor usar setTimeout recursivo para precisión clearTimeout y clearInterval cancelan tareas programadas
7 Promesas Estados pendiente cumplida o rechazada then y catch encadenan y siempre se ejecutan como microtareas Devolver una promesa dentro de then aplana el encadenamiento Gestiona los rechazos para evitar advertencias de rechazo no manejado
8 async y await Azúcar sintáctico sobre promesas await pausa la función y reanuda en microtarea Evita awaits secuenciales innecesarios usa Promise all para paralelizar y añade try catch para manejar errores
9 Generadores y generadores asíncronos function estrella se pausa con yield y se reanuda con next Los generadores asíncronos trabajan con for await of Hoy async await cubre la mayoría de casos de flujo asíncrono
10 Debounce y throttle Debounce espera a que cesen los eventos ideal para entradas de búsqueda Throttle limita la ejecución a una vez por intervalo ideal para scroll y resize
11 requestAnimationFrame Programa un callback antes del próximo repintado mejora animaciones y se pausa en pestañas inactivas
12 Web Workers Hilos en segundo plano sin acceso al DOM que comunican por postMessage Útiles para tareas de CPU intensivas
13 Recolección de basura Se libera memoria de objetos no alcanzables por las raíces Cuida las pérdidas por variables globales closures con datos grandes escuchas de eventos sin limpiar y nodos DOM desprendidos
14 Symbols Identificadores únicos para claves de propiedades sin colisiones Symbol for usa un registro global No aparecen en for in ni JSON stringify
15 WeakMap y WeakSet Referencias débiles a objetos no evitan el GC y no son enumerables Perfectos para datos privados y cachés sin fugas
16 Descriptores de propiedades value writable enumerable configurable o getters y setters Object defineProperty controla el comportamiento granular Object freeze sella superficialmente
17 Proxy y Reflect Proxy intercepta operaciones get set has apply construct Reflect ayuda a reenviar el comportamiento por defecto Base de sistemas reactivos como Vue moderno
18 Inmutabilidad Los objetos son mutables por defecto freeze seal y preventExtensions limitan cambios de forma superficial Para inmutabilidad profunda usa técnicas recursivas o librerías como immer
19 Funciones de orden superior Aceptan funciones o devuelven funciones Fundamento de map filter reduce middleware y decoradores
20 Currificación y aplicación parcial Currificar transforma f a b c en f a b c La parcial fija algunos argumentos para reutilizar funciones
21 Módulos ESM y CommonJS CommonJS usa require y module exports ESM usa import y export y permite tree shaking Importaciones de ESM se analizan y hoistean
22 Desestructuración resto y propagación Sintaxis concisa para extraer valores y combinar estructuras Los valores por defecto aplican solo si el origen es undefined
23 Parámetros por defecto resto y nombrados Los valores por defecto se evalúan en tiempo de llamada Resto crea arrays reales mejor que arguments Parámetros nombrados se simulan con desestructuración de objetos
24 Iteradores e iterables Iterador expone next iterable implementa Symbol iterator for of y propagación funcionan sobre iterables como arrays strings maps y sets
25 Map Set WeakMap WeakSet Map mantiene orden de inserción y acepta claves de cualquier tipo Set garantiza unicidad y considera NaN igual a sí mismo Versiones weak no enumerables y amigables con GC
26 Extras ES6 y posteriores Template literals cadenas con interpolación Encadenamiento opcional operador de coalescencia nula Ayudan a escribir código más seguro y legible
27 Fundamentos de navegador y DOM Delegación de eventos un solo listener en el padre usando burbujeo ideal para listas grandes y dinámicas Reflow es más costoso que repaint agrupa lecturas y escrituras y anima transform y opacity Evita múltiples mediciones de layout consecutivas Para inserciones masivas usa DocumentFragment
28 Almacenamiento en navegador Cookies pequeñas y viajan en cada petición localStorage y sessionStorage para datos locales limitados IndexedDB base NoSQL asíncrona para grandes volúmenes
29 Seguridad web CORS controla orígenes CSRF se mitiga con tokens o SameSite XSS se previene con escape de datos y Content Security Policy Para pruebas de penetración y hardening consulta nuestros servicios de ciberseguridad y pentesting
30 Service workers Scripts de fondo con ciclo de vida instalar activar interceptar que habilitan offline caché push y background sync requieren HTTPS y una estrategia de caché clara
31 Ruta de renderizado crítica DOM y CSSOM producen árbol de render luego layout y paint Minimiza CSS de bloqueo y usa defer o async para scripts
32 Carga de recursos async vs defer async descarga en paralelo y ejecuta tan pronto como esté listo sin garantizar orden defer descarga en paralelo y ejecuta tras el parseo del HTML preservando orden
33 Rendimiento y optimización Encuentra fugas de memoria por intervalos no limpiados escuchas sin eliminar y nodos DOM retenidos Carga diferida y división de código con import dinámico y React lazy Tree shaking con ESM para eliminar código muerto Mejora Web Vitals LCP INP antes FID y CLS Usa requestIdleCallback para trabajo no crítico Optimiza con preload prefetch y dns prefetch Estrategias de bundling por rutas hashing y microfrontends Virtualiza listas largas throttle y debounce eventos y agrupa mutaciones del DOM
34 Tipos y igualdad Solo siete valores falsy false cero menos cero cadena vacía null undefined NaN el resto es truthy incluidos array y objeto vacíos Triple igual compara tipo y valor sin coerción doble igual coacciona con reglas peculiares NaN no es igual a sí mismo y cero y menos cero son iguales con triple igual Object is distingue cero de menos cero y considera NaN igual a sí mismo Evita wrappers como new Boolean porque son siempre truthy Array isArray es la forma segura de detectar arrays
35 Manejo de errores y depuración try catch finally finally siempre se ejecuta y puede sobrescribir returns Errores comunes Syntax Reference Type Range y URI Define errores propios extendiendo Error En promesas usa catch y en async await usa try catch Handlers globales onerror y onunhandledrejection para registro y alertas Utiliza debugger mapas de fuente perfiles de rendimiento y snapshots de memoria
36 Concurrencia y paralelismo JavaScript en el hilo principal es monohilo la concurrencia se simula con el event loop El paralelismo real requiere Web Workers sin acceso al DOM SharedArrayBuffer y Atomics habilitan memoria compartida con sincronización bajo aislamiento adecuado En Node usa worker threads procesos hijos cluster y el threadpool de libuv
37 ESNext moderno BigInt para enteros enormes sin pérdida de precisión no mezclar con Number sin convertir Encadenamiento opcional y coalescencia nula operadores de asignación lógica or igual and igual nullish igual await a nivel superior en módulos WeakRef y FinalizationRegistry para cachés sin controlar la lógica con GC Temporal propuesta avanzada para fechas y horarios más fiable que Date Separadores numéricos para legibilidad
38 Patrones y arquitectura Módulo con closures para encapsular estado y exponer API pública Observer y Pub Sub para notificaciones desacopladas Singleton para una sola instancia global úsalo con moderación Factory para crear objetos sin exponer su construcción Prototype con Object create para clonado e herencia Patrones funcionales inmutabilidad funciones puras y composición Estrategia para algoritmos intercambiables Decorator para añadir comportamiento sin modificar el original base de HOCs Middleware cadena de responsabilidad en Express Redux y Koa
Cómo aplicamos esto en Q2BSTUDIO Diseñamos soluciones de software a medida y aplicaciones a medida que integran estos fundamentos de Core JavaScript para lograr rendimiento seguridad y mantenibilidad Nuestro equipo combina frontends reactivas con servicios cloud aws y azure y observabilidad extremo a extremo Además aceleramos la toma de decisiones con servicios inteligencia de negocio y power bi y automatizamos procesos críticos con orquestación y agentes IA
Conclusión Dominar cierres alcance y elevación this prototipos event loop asincronía optimización del DOM estructuras de datos modernas tipado y patrones de diseño te convierte en un desarrollador capaz de construir productos robustos y escalables Si necesitas llevar tu plataforma al siguiente nivel con prácticas de ingeniería avanzadas y soluciones de negocio basadas en IA BI y cloud cuenta con Q2BSTUDIO