!
Comprar EPUB/PDF
El Tutorial de JavaScript Moderno
Cómo se hace ahora. Desde lo básico hasta temas avanzados
con explicaciones simples pero detalladas.
Buscar en el tutorial Buscar
Última actualización el 20 de marzo de 2023
Comprar EPUB/PDF Compartir:
432 ★ github Discord Chat (English)
Tabla de contenidos
El curso principal contiene 2 partes que cubren JavaScript como lenguaje de
programación y el trabajo con un navegador. También hay series adicionales
de artículos temáticos.
PARTE 1 PARTE 2 PARTE 3
El lenguaje El navegador: Artículos
JavaScript Documentos, adicionales
Eventos e
Interfaces
El lenguaje JavaScript
Aquí aprenderemos JavaScript, empezando desde cero y llegaremos hasta conceptos
avanzados como POO.
Nos concentraremos en el lenguaje mismo con el mínimo de notas específicas del
entorno.
Una introducción
1.1 Una introducción a JavaScript 1.3 Editores de Código
1.2 Manuales y especificaciones 1.4 Consola de desarrollador
Fundamentos de JavaScript
2.1 ¡Hola, mundo! 2.9 Comparaciones
2.2 Estructura del código 2.10 Ejecución condicional: if, '?'
2.3 El modo moderno, "use strict" 2.11 Operadores Lógicos
2.4 Variables 2.12 Operador Nullish Coalescing '??'
2.5 Tipos de datos 2.13 Bucles: while y for
2.6 Interacción: alert, prompt, 2.14 La sentencia "switch"
confirm 2.15 Funciones
2.7 Conversiones de Tipos 2.16 Expresiones de función
2.8 Operadores básicos, 2.17 Funciones Flecha, lo básico
matemáticas 2.18 Especiales JavaScript
Calidad del código
3.1 Debugging en el navegador 3.4 Código ninja
3.2 Estilo de codificación 3.5 Test automatizados con Mocha
3.3 Comentarios 3.6 Polyfills y transpiladores
Objetos: lo básico
4.1 Objetos 4.5 Constructor, operador "new"
4.2 Referencias de objetos y copia 4.6 Encadenamiento opcional '?.'
4.3 Recolección de basura 4.7 Tipo Symbol
4.4 Métodos del objeto, "this" 4.8 Conversión de objeto a valor
primitivo
Tipos de datos
5.1 Métodos en tipos primitivos 5.7 Map y Set
5.2 Números 5.8 WeakMap y WeakSet
5.3 Strings 5.9 Object.keys, values, entries
5.4 Arrays 5.10 Asignación desestructurante
5.5 Métodos de arrays 5.11 Fecha y Hora
5.6 Iterables 5.12 Métodos JSON, toJSON
Trabajo avanzado con funciones
6.1 Recursión y pila 6.7 La sintaxis "new Function"
6.2 Parámetros Rest y operador 6.8 Planificación: setTimeout y
Spread setInterval
6.3 Ámbito de Variable y el concepto 6.9 Decoradores y redirecciones,
"closure" call/apply
6.4 La vieja "var" 6.10 Función bind: vinculación de
6.5 Objeto Global funciones
6.6 Función como objeto, NFE 6.11 Funciones de flecha revisadas
Configuración de las propiedades de objetos
7.1 Indicadores y descriptores de 7.2 "Getters" y "setters" de
propiedad propiedad
Prototipos y herencia
8.1 Herencia prototípica 8.3 Prototipos nativos
8.2 F.prototype 8.4 Métodos prototipo, objetos sin
__proto__
Clases
9.1 Sintaxis básica de `class` 9.5 Ampliación de clases integradas
9.2 Herencia de clase 9.6 Comprobación de clase:
9.3 Propiedades y métodos "instanceof"
estáticos. 9.7 Los Mixins
9.4 Propiedades y métodos privados
y protegidos.
Manejo de errores
10.1 Manejo de errores, "try...catch" 10.2 Errores personalizados,
extendiendo Error
Promesas y async/await
11.1 Introducción: callbacks 11.5 Promise API
11.2 Promesa 11.6 Promisificación
11.3 Encadenamiento de promesas 11.7 Microtareas (Microtasks)
11.4 Manejo de errores con promesas 11.8 Async/await
Generadores e iteración avanzada
12.1 Generadores 12.2 Iteradores y generadores
asíncronos
Módulos
13.1 Módulos, introducción 13.3 Importaciones dinámicas
13.2 Export e Import
Temas diversos
14.1 Proxy y Reflect 14.4 Tipo de Referencia
14.2 Eval: ejecutando una cadena de 14.5 BigInt
código 14.6 Unicode, String internals
14.3 Currificación
El navegador: Documentos, Eventos e Interfaces
Aprenderemos a manejar la página del navegador: agregar elementos, manipular su
tamaño y posición, crear interfaces dinámicamente e interactuar con el visitante.
Documento
1.1 Entorno del navegador, 1.6 Atributos y propiedades
especificaciones 1.7 Modificando el documento
1.2 Árbol del Modelo de Objetos del 1.8 Estilos y clases
Documento (DOM) 1.9 Tamaño de elementos y
1.3 Recorriendo el DOM desplazamiento
1.4 Buscar: getElement*, 1.10 Tamaño de ventana y
querySelector* desplazamiento
1.5 Propiedades del nodo: tipo, 1.11 Coordenadas
etiqueta y contenido
Introducción a los eventos
2.1 Introducción a los eventos en el 2.4 Acciones predeterminadas del
navegador navegador
2.2 Propagación y captura 2.5 Envío de eventos personalizados
2.3 Delegación de eventos
Eventos en la UI
3.1 Eventos del Mouse 3.3 Arrastrar y Soltar con eventos del
3.2 Moviendo el mouse: ratón
mouseover/out, 3.4 Eventos de puntero
mouseenter/leave 3.5 Teclado: keydown y keyup
3.6 Desplazamiento
Formularios y controles
4.1 Propiedades y Métodos de 4.3 Eventos: change, input, cut, copy,
Formularios paste
4.2 Enfocado: enfoque/desenfoque 4.4 Formularios: evento y método
submit
El documento y carga de recursos
5.1 Página: DOMContentLoaded, 5.3 Carga de recursos: onload y
load, beforeunload, unload onerror
5.2 Scripts: async, defer
Temas diversos
6.1 Mutation observer 6.3 Loop de eventos: microtareas y
6.2 Selection y Range macrotareas
Artículos adicionales
Lista de temas adicionales que supone que ha cubierto las dos primeras partes del
tutorial. Aquí no hay una jerarquía clara, puede leer los artículos en el orden que desee.
Marcos y ventanas
1.1 Ventanas emergentes y métodos 1.2 Comunicación entre ventanas
de ventana 1.3 El ataque de secuestro de clics
Datos binarios y archivos
2.1 ArrayBuffer, arrays binarios 2.3 Blob
2.2 TextDecoder y TextEncoder 2.4 File y FileReader
Solicitudes de red
3.1 Fetch 3.7 Objetos URL
3.2 FormData 3.8 XMLHttpRequest
3.3 Fetch: Progreso de la descarga 3.9 Carga de archivos reanudable
3.4 Fetch: Abort 3.10 Sondeo largo
3.5 Fetch: Cross-Origin Requests 3.11 WebSocket
3.6 Fetch API 3.12 Eventos enviados por el servidor
Almacenando datos en el navegador
4.1 Cookies, document.cookie 4.3 IndexedDB
4.2 LocalStorage, sessionStorage
Animaciones
5.1 Curva de Bézier 5.3 Animaciones JavaScript
5.2 Animaciones CSS
Componentes Web
6.1 Desde la altura orbital 6.5 Shadow DOM slots, composición
6.2 Elementos personalizados 6.6 Estilo Shadow DOM
6.3 Shadow DOM 6.7 Shadow DOM y eventos
6.4 Elemento template
Expresiones Regulares
7.1 Patrones y banderas (flags) 7.10 Cuantificadores codiciosos y
7.2 Clases de caracteres perezosos
7.3 Unicode: bandera "u" y clase 7.11 Grupos de captura
\p{...} 7.12 Referencias inversas en patrones:
7.4 Anclas: inicio ^ y final $ de \N y \k<nombre>
cadena 7.13 Alternancia (O) |
7.5 Modo multilínea de anclas ^ $, 7.14 Lookahead y lookbehind (revisar
bandera "m" delante/detrás)
7.6 Límite de palabra: \b 7.15 Backtracking catastrófico
7.7 Escapando, caracteres especiales 7.16 Indicador adhesivo “y”, buscando
7.8 Conjuntos y rangos [...] en una posición.
7.9 Cuantificadores +, *, ? y {n} 7.17 Métodos de RegExp y String
Compartir Mapa del Tutorial
Comentarios
● Si tiene sugerencias sobre qué mejorar, por favor enviar una propuesta de
GitHub o una solicitud de extracción en lugar de comentar.
● Si no puede entender algo en el artículo, por favor explique.
● Para insertar algunas palabras de código, use la etiqueta <code> , para varias
líneas – envolverlas en la etiqueta <pre> , para más de 10 líneas – utilice una
entorno controlado (sandbox) (plnkr, jsbin, codepen…)
© 2007—2023 Ilya Kantor
acerca del proyecto
contáctenos