Tutorial Principal de JavaScript

Fundamentos

Introducción Ejecutar JavaScript Primer programa en JavaScript Análisis del código del programa Ejemplos adicionales Archivos con scripts Múltiples archivos Nota Almacenamiento en caché de archivos Modo estricto Comentarios Variables Uso de variables Declaración de múltiples variables Cambios en los valores de las variables Múltiples let para una variable Operaciones matemáticas con números Operaciones matemáticas con variables Prioridad de las operaciones matemáticas Prioridad igual Paréntesis de agrupación Fracciones Números negativos Signo más antes de las variables Resto de la división Potenciación Prioridad de la potenciación Cadenas de texto Concatenación de cadenas Longitud de la cadena Plantillas de cadena de texto Multilínea Valores especiales Valor undefined Valor null Valores true y false Valor NaN Infinity e -Infinity Consola Tipo de dato en la consola Errores en la consola Constantes Conversión automática de tipos Conversión a número Conversión corta a número Conversión de números incorrectos Extracción de números Conversión a cadena de texto Aplicación de la conversión a cadena Conversión de tipo lógico Conversión al tipo lógico Caracteres de la cadena Inmutabilidad de las cadenas Último carácter de la cadena Cadenas con dígitos Acceso a los dígitos de un número Operaciones para cambiar una variable Operaciones abreviadas en JavaScript Incremento Tipo prefijo y postfijo Cálculos imprecisos Función prompt Problema con tipos en prompt Salida en el documento Práctica en la búsqueda de errores Práctica con operaciones Práctica con fórmulas

Matrices (Arrays)

Introducción a las matrices Obtención de elementos Longitud de la matriz Modificación de elementos Reescritura de elementos de la matriz Incrementación de elementos Adición de elementos por claves Matrices dispersas Adición de elementos mediante push Claves desde variables Operador delete Práctica en la búsqueda de errores

Objetos

Introducción a los objetos Mostrar el objeto completo Claves de objeto de cadena Propiedades de los objetos Restricciones en las claves de los objetos Modificar elementos Añadir elementos Objetos no ordenados Array de claves de objeto Longitud del objeto Claves a partir de variables Error al acceder a un elemento Error al acceder a una propiedad Propiedades computadas Operador in Operador delete Tipado de objetos Arrays como objetos Diferenciar arrays de objetos Objetos y primitivos Pasar objetos por referencia Constantes Enfoque de programación mediante constantes Práctica en la búsqueda de errores

Condiciones

Sentencia if-else Operadores mayor y menor Comprobación de igualdad Comprobación de desigualdad Comparación de variables Igualdad de cadenas Igualdad de cadenas y números Igualdad por valor y tipo Desigualdad por valor y tipo AND lógico OR lógico Prioridad de los operadores lógicos Agrupación de condiciones Inversión de expresiones lógicas Condiciones con valores booleanos Comparación de valores con tipo booleano Forma abreviada de comprobación de verdad Forma abreviada de comprobación de falsedad Forma abreviada general de comprobación Condiciones complejas en forma abreviada Opcionalidad de la sentencia else Opcionalidad de las llaves Problema de la opcionalidad de los corchetes Sentencia else if Sentencias if-else anidadas Sentencia switch-case Opcionalidad de break Operador ternario Operaciones lógicas Función confirm Ámbito de visibilidad Matices del ámbito de visibilidad Comprobación de partes de la hora Comprobación de la longitud de cadenas y arrays Comprobación de caracteres de cadena Comprobación de dígitos del número Comprobación del resto de la división Práctica de búsqueda de errores Práctica

Bucles

Introducción Bucle for-of Bucle for-in Bucle while Bucle for Bucle for para arrays Condiciones en bucles Acumulación de suma de números Acumulación de suma de elementos Formación de cadenas Dígitos de un número Opcionalidad de las llaves Problema de la opcionalidad de llaves Instrucción break Instrucción continue Bucles anidados Ámbito de visibilidad Bucles anidados y ámbito de visibilidad Relleno de arrays Modificación de arrays Relleno de objetos Modificación de objetos Trabajo con flags Consejos para escribir código Consejos para depurar código Práctica de búsqueda de errores Práctica

Multidimensionalidad

Arrays multidimensionales Array tridimensional Arrays arbitrarios Iteración de arrays multidimensionales Iteración mediante for ordinario Relleno de arrays multidimensionales Problemas al rellenar arrays multidimensionales Relleno de arrays multidimensionales en orden Objetos multidimensionales Iteración de objetos multidimensionales Estructuras multidimensionales Iteración de estructuras multidimensionales Array de objetos Claves de variables Adición de elementos a arrays Adición de elementos a objetos

Métodos estándar

Potencias Funciones de redondeo Extremos Aleatorio Módulos Mayúsculas y minúsculas Corte de cadenas Búsqueda en cadenas Reemplazo en cadenas División de cadenas Elementos extremos Partes de arrays Corte de arrays Búsqueda en arrays Claves de objetos Práctica en búsqueda de errores

Funciones Personalizadas

Introducción Parámetros de Función Múltiples Parámetros Parámetros-Variables Parámetros Opcionales Declaración return Llamada Secuencial de Funciones Detalle Sutil de return Bucle y return Aplicación de return en Bucles Técnica de Trabajo con return Banderas en Funciones Operadores Lógicos en Funciones Consejos sobre Funciones Práctica de Búsqueda de Errores Práctica de Funciones

Variables de funciones

Variables globales Variables locales Coincidencia de nombres de variables Modificación de variables globales Variables globales y parámetros de funciones Coincidencia de nombres con parámetros Parámetros-objetos

Tipos de funciones

Código fuente de la función y resultado Función como variable Escritura de función en otra variable Asignación de funciones a variables Coincidencia del nombre de la función y la variable Tipos de declaraciones Diferencia de declaraciones de función Punto y coma al declarar funciones Matices de las expresiones funcionales Función con nombre, pero Expression de Función Expresiones funcionales con nombre Cómo comprobar el tipo de función Expresión a la izquierda Expresión a la derecha Array con funciones Objeto con funciones Aplicación de objeto con funciones

Funciones Anidadas

Pasar funciones como parámetros Funciones con nombre Parámetros de funciones pasadas Pasar un número como parámetro Aplicación Funciones internas Alcance de las funciones anidadas Parámetros de la función externa Parámetros de funciones externas e internas Parámetros homónimos Función que retorna una función Cualquier nivel de anidamiento Parámetros de la función retornada Funciones callback Matices de los callbacks Funciones flecha Aplicación de funciones flecha sinc. con traducción

Cierres

Acceso a variables externas Entorno léxico de funciones Aplicación del entorno léxico Introducción a los cierres Contador con cierres Matiz variable local Matiz variable global

IIFE

Invocación de función inmediata Asignación de función a variable Aplicación de la invocación de función inmediata Paréntesis redondos Parámetros Llamadas múltiples Trampas Punto y coma de seguridad Cierres y IIFE

Recursividad

Introducción Ejemplo con parámetro Suma de elementos de un array con recursión Estructuras multidimensionales Suma de elementos de un array Manipulaciones con estructuras

Métodos de Iteración

Método map Método forEach Método filter Método every Método some Método find traducción, tareas Método reduce traducción, tareas

Operador spread

Introducción Ejemplos más complejos Valores extremos de array Fusión de arrays División de cadenas División de números

Operador rest

Operador rest Suma de dígitos Matrices en bidimensional Matrices en una

Desestructuración

Desestructuración de arrays Array desde función Omisión de elementos del array Valores excesivos del array Resto del array Valores por defecto para arrays Funciones por defecto para arrays Declaración de variables para arrays Desestructuración de objetos Nombres de variables para objetos Valores por defecto para objetos Variables y valores por defecto para objetos Declaración de variables para objetos Parámetros de funciones Desestructuración de objetos de parámetros de funciones

Tiempo

Trabajo con el objeto Date Formateo Cambio de formato de fecha Obtención del día de la semana Salida de la fecha en palabras Configuración de la hora Formato timestamp Diferencia entre timestamps Diferencia de objetos con fechas Ajuste automático de fechas Búsqueda del último día del mes Determinación del año bisiesto Comprobación de corrección Obtención del día del año actual Día del mes siguiente o anterior Día del año siguiente o anterior Diferencia de momentos Momento del tiempo del día Inicio del día Final del día Comprobación cíclica de momentos de tiempo Práctica en la obtención de momentos de tiempo Comparación de cadenas Comparación de fecha sin año Inclusión de la fecha en un intervalo Comparación de objetos con fecha

Introducción al DOM

Introducción Elementos DOM Obtención de elementos DOM Selectores complejos de elementos DOM Vinculación de manejadores Manejadores nombrados Un manejador para varios elementos Múltiples manejadores para un evento Manejadores para diferentes eventos Texto del elemento Código HTML del elemento Atributos de etiquetas como propiedades Trabajo con campos de texto Enfoque de campos de texto Atributos-excepción Cadenas de métodos y propiedades Ventajas y desventajas de las cadenas Objeto this Ventaja de this Obtención de grupos de elementos Manejadores nombrados en bucle Manejadores anónimos en bucle Desvinculación de manejadores de eventos Desvinculación de manejadores en bucle Desvinculación de manejadores anónimos Consejos para escribir código Práctica en búsqueda de errores Practicum

Atributos

Método para obtener atributos Método para establecer atributos Método para eliminar atributos Método para verificar atributos Atributos personalizados Nombres de atributos con guiones Acceso a atributos mediante métodos Array de clases CSS Adición de clases CSS Eliminación de clases CSS Verificación de clases CSS Alternancia de clases CSS

Estilización

Estilización mediante el atributo style Estilización de propiedades con guión Excepción al estilizar elementos Estilización mediante clases CSS Ventaja de estilizar usando clases CSS Aplicación de estilización

Búsqueda

Búsqueda de descendientes de elementos Búsqueda de padres de elementos Búsqueda de todos los padres de elementos Búsqueda de elementos hermanos Búsqueda de elemento por id Búsqueda de elemento por nombre de etiqueta Búsqueda de elemento por nombre de clase Búsqueda dentro de un elemento

Nodos

Introducción Recorrer nodos en bucle Nombre de los nodos Tipo de nodos Texto de los nodos

Formularios

Trabajar con textarea Deshabilitar elementos Trabajar con casillas de verificación Alternar atributos sin valores Trabajar con botones de radio Evento change Evento input Métodos focus y blur Práctica de búsqueda de errores

Listas desplegables

Trabajar con listas desplegables Atributo value en listas desplegables Cambiar el elemento seleccionado de la lista Número del elemento seleccionado de la lista Obtener elementos de la lista desplegable Elementos como array Trabajar con elementos de la lista desplegable Seleccionar elemento de la lista Obtener el elemento seleccionado

Objeto Event

Conceptos básicos del objeto Event Coordenadas del evento Tipo de evento Elemento del evento Obtención de teclas pulsadas Seguimiento de teclas modificadoras Cancelación de la acción por defecto Burbujeo de eventos Elemento objetivo durante el burbujeo Detención del burbujeo de eventos Múltiples manejadores en un elemento Detención inmediata del burbujeo Aplicación de la detención del burbujeo de eventos Captura de eventos Manejadores en nuevos elementos Delegación de eventos Delegación universal de eventos

Contexto

Fundamentos del contexto Contexto de función no vinculada Pérdida del contexto Solución al problema del contexto Solución mediante variable Solución mediante parámetro Solución mediante función flecha Método call Método call con parámetros Método apply Método bind

Temporizadores

Inicio de un temporizador Contador en un temporizador Detención de un temporizador Botones de inicio Inicio múltiple Botones de parada Trabajo con DOM Temporizadores y pérdida de contexto Práctica con temporizadores y DOM Retraso antes de la ejecución Temporizador con retraso

Manipulación de elementos

Creación e inserción de elementos Vinculación de eventos al insertar Creación de elementos en bucle Vinculación de manejadores en bucle Eliminación de elementos Inserción en el borde Inserción antes de Inserción adyacente Inserción adyacente de etiquetas Clonación de elementos Verificación de elementos

Práctica

Creación de elementos desde un array Práctica en la creación de listas ul Creación de tablas Relleno secuencial de tablas Creación de tablas desde un array Creación de tablas desde un array de objetos Adición de filas y columnas a la tabla Modificación de celdas de tabla Eliminación de nuevos elementos Enlace para eliminar elemento Creación de enlaces de eliminación Edición de elemento individual Ocultar texto al editar Edición en un conjunto de elementos Eliminación y edición Estilización de elementos Botones para ocultar y mostrar elemento Muchos elementos con botones de mostrar Activación de elementos Alternancia de estilos de activación Práctica en la modificación de elementos

Funciones y DOM

Funciones para trabajar con elementos DOM Funciones para trabajar con grupos de elementos Pasar callback para trabajar con DOM Pasar número de secuencia en el callback Pasar elemento como parámetro de función Pasar grupo de elementos como parámetros Función para crear tablas HTML Retorno de tabla desde función Función para crear tabla desde array

Módulos mediante clausuras

Conflictos de variables Módulos mediante clausuras Aplicación práctica Paso de parámetros Paso del elemento padre Paso de configuraciones del módulo Parámetros por defecto Exportación de variables y funciones Exportación de objeto en módulos mediante clausuras Bibliotecas mediante clausuras
hukkuzl