1.1. ¿Qué es el DOM? (Document Object Model)
1.2. La estructura de árbol y tipos de nodos
1.3. El objeto global window y document
window
document
1.4. La relación entre HTML y el DOM
1.5. Inspeccionando el DOM en DevTools
2.1. Métodos modernos: querySelector y querySelectorAll
querySelector
querySelectorAll
2.2. Métodos clásicos: getElementById, getElementsByClassName
getElementById
getElementsByClassName
2.3. NodeList vs HTMLCollection vs Array
2.4. Conversión a Array (uso de Array.from y spread)
Array.from
2.5. Selectores CSS avanzados en JavaScript
3.1. textContent vs innerText: Texto plano
textContent
innerText
3.2. innerHTML: Insertando HTML (y riesgos de XSS)
innerHTML
3.3. Leer y modificar atributos: getAttribute, setAttribute
getAttribute
setAttribute
3.4. Propiedades directas vs Atributos HTML (id, src, value, href)
id
src
value
href
3.5. Data Attributes (dataset): Guardando datos en el DOM
dataset
4.1. La propiedad style: Estilos en línea
style
4.2. window.getComputedStyle(): Leer estilos finales
window.getComputedStyle()
4.3. Gestión profesional con classList (add, remove, toggle, contains)
classList
add
remove
toggle
contains
4.4. Manipulación de variables CSS (Custom Properties)
5.1. El ciclo de vida: Crear, Configurar, Insertar
5.2. createElement() y createTextNode()
createElement()
createTextNode()
5.3. Métodos de inserción: appendChild, append, prepend
appendChild
append
prepend
5.4. Inserción precisa: insertAdjacentHTML y insertAdjacentElement
insertAdjacentHTML
insertAdjacentElement
5.5. Eliminación de nodos: remove() y removeChild()
remove()
removeChild()
5.6. DocumentFragment: Renderizado eficiente
DocumentFragment
5.7. Patrón práctico: Generar listas desde Arrays
6.1. Navegar hacia los padres: parentElement, closest
parentElement
closest
6.2. Navegar hacia los hijos: children, firstElementChild, lastElementChild
children
firstElementChild
lastElementChild
6.3. Navegar entre hermanos: nextElementSibling, previousElementSibling
nextElementSibling
previousElementSibling
6.4. Diferencia entre Elementos y Nodos (texto/comentarios)
6.5. Patrón práctico: Recorrer un árbol recursivamente
7.1. ¿Qué es un evento? Modelo asíncrono básico
7.2. addEventListener: La forma correcta de escuchar
addEventListener
7.3. El objeto Event: propiedades comunes (target, type)
Event
target
type
7.4. Eliminar eventos: removeEventListener
removeEventListener
7.5. El problema de this en los eventos y Arrow Functions
this
7.6. Eventos inline (NO recomendado)
8.1. Ratón: click, dblclick, mousedown, mouseup
click
dblclick
mousedown
mouseup
8.2. Movimiento: mousemove, mouseenter vs mouseover
mousemove
mouseenter
mouseover
8.3. Teclado: keydown, keyup (y el obsoleto keypress)
keydown
keyup
keypress
8.4. Propiedades de teclado: key vs code
key
code
8.5. Modificadores: ctrlKey, shiftKey, altKey
ctrlKey
shiftKey
altKey
8.6. Patrón práctico: Detectar Enter en un input
8.7. Propiedades adicionales de eventos de ratón
8.8. Patrón práctico: Detectar botón del ratón
9.1. Acceso a formularios y elementos (document.forms)
document.forms
9.2. Eventos principales: submit, input, change, focus, blur
submit
input
change
focus
blur
9.3. event.preventDefault(): Controlar el envío
event.preventDefault()
9.4. Lectura de valores (value, checked)
checked
9.5. Objeto FormData: Procesamiento moderno de formularios
FormData
9.6. Patrón práctico: Validación en tiempo real
10.1. Las 3 fases: Capturing, Target, Bubbling
10.2. Entendiendo el Bubbling (Burbujeo)
10.3. stopPropagation() y stopImmediatePropagation()
stopPropagation()
stopImmediatePropagation()
10.4. Event Delegation: El patrón de oro para rendimiento
10.5. Casos prácticos de delegación
10.6 Captura (Capturing Phase) - Uso avanzado
11.1. El objeto window y dimensiones del viewport
11.2. localStorage y sessionStorage (Repaso práctico)
localStorage
sessionStorage
11.3. Timers: setTimeout, setInterval y requestAnimationFrame
setTimeout
setInterval
requestAnimationFrame
11.4. Objeto location: trabajar con URLs
location
11.5. Objeto history: navegación del historial
history
11.6. Patrón práctico: tema persistente
12.1. Minimizar Reflow y Repaint (Rendimiento)
12.2. Separación de responsabilidades (HTML/CSS/JS)
12.3. Gestión de memoria: limpiar eventos
12.4. Accesibilidad (A11Y) desde JavaScript
12.5. Estructura de una aplicación SPA vainilla
Última actualización hace 21 días
¿Te fue útil?