Libro de Texto Superior de JavaScript
Estilización
Estilización mediante el atributo style
Unidades de medida en el atributo style
Errores con unidades de medida
Desempaquetado de valores de propiedades CSS
Restablecimiento de estilos mediante style
Establecimiento masivo de estilos
Problemas de lectura de estilos
Lectura de propiedades desde archivos CSS
Conversión de valores leídos
Estilización por clases
Una clase para estilización
Inconveniencia de las clases
Alternancia de estilos mediante data-
Métricas de elementos
Expansión de elementos en CSS
Elemento de prueba
Tamaño del cliente del elemento
Tamaño completo del elemento
Dimensiones del elemento con desplazamiento
Desplazamiento de elementos
Cambio del desplazamiento del elemento
Desplazar el elemento hasta el final
Despliegue del elemento
Ancho de la barra de desplazamiento
Métricas de la ventana
Tamaño de la ventana
Tamaño de la ventana con scroll
Obtener el scroll de la ventana
Obtener y cambiar el scroll de la ventana
Método para scrollear la ventana a una posición
Método para scrollear la ventana en un valor
Método para scrollear la ventana a un elemento
Evento de scroll
Colecciones Map
Colecciones Set
Introducción
Relleno inicial
Capacidades útiles
Iteración con bucle
Conversión
Eliminación de duplicados de un array
Obtención sin duplicados
Arreglos Pseudos
Introducción
Similitud con los arreglos
Diferencias
Comprobación de arreglo
Conversión a arreglo
Tipos de arreglos pseudos
Diferencia entre tipos
Símbolos
Introducción al tipo Symbol
Descripciones del símbolo
Símbolos como claves de objetos
Iteración de objetos con símbolos
Función en un objeto
Operaciones con objetos en la función
Símbolos globales
Obtención del nombre del símbolo
Símbolos bien conocidos
Iteradores
Objetos iterables
Función iteradora
Invocaciones del iterador
Generadores
Bucles en generadores
Trabajo único de iteradores
Iterador de objeto
Creación de objetos iterables
Generador mediante propiedad calculada
Iterador incorporado values
Iterador incorporado keys
Iterador incorporado entries
Tres iteradores incorporados
Operador spread e iteradores
Iteradores incorporados de cadenas
Array de dígitos de un número
Numeración de elementos DOM
Obtención de datos de elementos DOM
Formato JSON
Almacenamiento
Introducción
Almacenamiento en el depurador
Datos
Guardado único
Reescritura de datos
Eliminación de datos
Limpieza del almacenamiento
Cantidad de registros
Obtención de clave por número
Recorrido del almacenamiento por índices
Arrays de claves y valores del almacenamiento
Almacenamiento de estructuras
Modificación de estructuras almacenadas
Práctica
Expresiones Regulares
Introducción
Operadores de Repetición
Paréntesis de Agrupación
Escape de Caracteres Especiales
Llaves
Limitación de la Codicia
Grupos de Caracteres
Conjuntos de Caracteres
Inversión de Conjuntos de Caracteres
Particularidades del Cirílico
Caracteres Especiales dentro de Conjuntos
Grupos de Caracteres dentro de Conjuntos
Caracteres Especiales-Excepción dentro de Conjuntos
Símbolo de Acento Circunflejo dentro de Conjuntos
Particularidades del Guion dentro de Conjuntos
Ignorar Mayúsculas y Minúsculas
Inicio y Fin de Línea
Límite de Palabras
Multilínea
Comando 'o'
Variable con Expresión Regular
Método test
Método search
Método split
Método match
Grupos de Captura en el método match
match Global
matchAll Global
Método exec
Propiedad lastIndex
Grupos de Captura en el método replace
Callback en el método replace
Grupos de Captura por Defecto en el método replace
Grupos de Captura en la Expresión Regular
Grupos de Captura con Nombre
Grupos de Captura con Nombre dentro de la Expresión
Paréntesis No Capturadores
Búsqueda hacia Adelante y Atrás Positiva y Negativa
Cadena con Expresión Regular
Banderas para Cadenas
Barra Invertida en Cadenas
Situaciones excepcionales
Introducción
Tipos de situaciones emergentes
Captura de excepciones
Desarrollo con try-catch
Captura de excepciones en código anidado
Objeto de excepción
Tipos básicos de excepciones
Aplicación de tipos de excepción
Lanzamiento de excepciones
Lanzamiento de varios tipos de excepciones
Lanzamiento de tipos de excepciones propios
Ejemplo de excepción con atributos data-
Ejemplo de excepción con JSON
Propagación de excepciones
Asincronía
Código síncrono y asíncrono
Asincronía del modelo de eventos
Asincronía de carga de imágenes
Situaciones excepcionales en código asíncrono
Devoluciones de llamada asíncronas
Introducción
Paso asíncrono del resultado a la devolución de llamada
Paso de parámetros a la devolución de llamada asíncrona
Manejo de excepciones en devoluciones de llamada asíncronas
Carga de imágenes
El problema del infierno de las devoluciones de llamada
Carga asíncrona de imágenes en bucle
Promesas
Introducción a las promesas
Situaciones excepcionales
Objeto con error
Captura separada de excepciones
Estados de una promesa
Cadenas de promesas
Promesas dentro de una cadena
Excepciones en cadenas de promesas
Trabajo con arrays de promesas
Creación de promesas cumplidas
Promisificación de código asíncrono
Problema del infierno de promesas
Promesas en estilo síncrono
Excepciones en estilo síncrono
Bibliotecas
Herramientas
Control de versiones semántico
Terminal
NodeJS
Introducción a npm
Instalación mediante npm
Forma corta de instalación
Dependencias en el archivo package.json
Dependencias de desarrollo
Formatos de versiones de dependencias
Configuración del archivo package.json
Creación del archivo package.json
Transferencia de proyecto npm
Archivo package-lock.json
Actualización de paquetes
Eliminación de paquetes
Instalación global mediante npm
Eliminación global de paquetes
Herramienta npx
Ejecución de scripts mediante npm
Gestor Yarn
Módulos ES
Introducción a los módulos
Activación de módulos ES
Instalación de Webpack
Principio de funcionamiento de Webpack
Configuración de Webpack
Configuración de ejecución de compilación de Webpack
Compilación de prueba mediante Webpack
Conexión del bundle al markup
Creación de un módulo ES
Conexión de un módulo ES
Renombrado en la importación
Importar todo el contenido del módulo
Exportación por defecto
Combinación de exportaciones
Importar todo el contenido al combinar exportaciones
Exportación de valores
Valores como constantes
Importación de módulos npm
Importación dinámica
Importación múltiple dinámica
Conversión de módulos CommonJS
Protocolo HTTP
Servidor de Pruebas
Introducción
Uso
Ejecución de Código
Generación de HTML
Encabezados de Respuesta
Configuración del Puerto
Lanzamiento Múltiple
Formularios
Envío de formularios
Métodos de envío de formularios
Envío de formularios con el método GET
Envío de formularios con el método POST
Solicitudes GET
Aplicación de solicitudes GET
Botones del formulario
Envío de formularios mediante JavaScript
Prevención del envío del formulario
Introducción a FormData
Métodos de FormData
Iteradores de FormData
AJAX
Introducción a AJAX
Fundamentos de fetch
Código de respuesta HTTP
Éxito de la solicitud
Situaciones excepcionales
Captura completa de errores
Encabezados de respuesta HTTP
Obtención de JSON
Encabezados de solicitud HTTP
Solicitudes GET
Solicitudes POST
Datos mediante URLSearchParams
Datos mediante FormData
Envío de todo el formulario
Envío de JSON
Política CORS
Transmisión de cookies
Estilo síncrono
Trabajo con lienzo
Introducción
Dibujo de líneas
Dibujo de rectángulos
Dibujo de círculos
Cambio de color de línea
Cambio de tamaño de líneas
Bucles
Optimización de Código
Factores de Velocidad de Carga del Sitio
Recursos Disponibles
Optimización de Operaciones Repetitivas
Optimización de Repetición de Operaciones Pesadas
Optimización de Operaciones en Bucles
Optimización de Pasadas de Bucle Innecesarias
Optimización mediante Funciones Integradas
Selección del Algoritmo Óptimo
Optimización del Uso de Expresiones Regulares
Optimización del Trabajo con el DOM
Optimización del Consumo de Memoria
Optimización de la Conversión a Array
Optimización de Manejadores de Eventos
Optimización de Velocidad a Costa de Memoria
Datos
Inmutabilidad
Copia de array
Copia de objeto
Añadir elementos a un array
Eliminar elementos de un array
Cambiar elementos de arrays
Array de objetos
Generación de id aleatorio
Añadir elemento con id
Eliminar elemento por id
Cambiar elemento por id
Cambiar una propiedad por id
Obtener elemento por id