Desarrollo en JavaScript - curso 39.500 rublos. del IBS Training Center, formación 40 horas, Fecha 26 de noviembre de 2023.
Miscelánea / / November 28, 2023
Tópicos cubiertos:
1. Lenguaje JavaScript:
Versiones e implementaciones de JavaScript;
Áreas de aplicación de JavaScript (navegador, servidor, desarrollo móvil);
Tipos de datos: cadena, número, booleano (el concepto de veracidad y falsedad);
Operadores, precedencia de operadores;
Declaración de variables: var, const, let;
Bucles: mientras, para, para… en, para…de;
Trabajar con números y cadenas;
Valores nulos e indefinidos: diferencias y finalidades de aplicación;
Trabajando con la consola;
Excepciones en JavaScript.
2. JSON, objetos y matrices:
Formato JSON, ejemplos;
JSON.parse y stringificar;
Objetos, trabajando con la clase Objeto;
Crear objetos (usando el literal {}, el nuevo operador, el método de creación);
Herencia prototípica, referencia __proto__;
Captadores y definidores;
El operador in y hasOwnProperty, el concepto de propiedades enumerables;
método toString(), llamando y anulando el método;
método valueOf(), llamando y anulando el método;
Creando arrays: literales y new Array();
Cambio automático de longitud de la matriz;
Obtener y establecer la longitud de la matriz, truncar la matriz;
Usando los métodos join() y concat();
Usando el método de clasificación, estableciendo el orden de clasificación de la matriz;
Utilizando los métodos de corte y empalme;
Usar métodos push, pop, shift, unshift: crear una pila o cola.
3.Trabajar con fechas y cadenas:
Usando el nuevo constructor Date();
Comprender la representación informática de la fecha como hora con Época;
Usando getTime() y setTime();
Analizar la representación de cadenas de fechas;
Opciones para crear cadenas en JS: usar comillas simples y dobles;
Interpolación de cadenas (cadena en apóstrofes);
Escapar de caracteres especiales en una cadena;
Concatenación de cadenas, conversión a mayúsculas y minúsculas;
Encontrar una subcadena usando indexOf() y lastIndexOf();
Seleccionar una subcadena usando substring() y substr()
Usando los métodos incluye, termina con, comienza con.
4. Usando JavaScript en el navegador: Modelo DOM:
Administrar la ventana del navegador, el documento, los eventos y el estilo (estilos CSS);
El objeto ventana y sus usos;
Conexión de código JavaScript a una página HTML;
El orden de ejecución de los scripts en la página;
Almacenamiento en caché de scripts, servidores CDN, recarga forzada de JavaScript;
Trabajar con enlaces, conectar JavaScript a enlaces;
El evento onload y su uso;
Ataques XSS al sitio;
Trabajando con el DOM: usando ventana, documento, childNodes;
Manipular un documento usando el DOM: crear, eliminar, mover elementos;
Usar getElementById(), getElementsByTagName(), getElementsByClassName() para buscar elementos en la página;
Trabajar con métodos y propiedades de HTMLDocument y HTMLElement.
5. Trabajar con eventos en el navegador:
El concepto de programación de eventos;
Controladores y oyentes de eventos;
Conexión de controladores mediante addEventListener();
Propiedades y métodos de la clase Evento;
Propagación de eventos hacia arriba (burbujeo) y hacia abajo (captura);
Detener la propagación;
Eventos de ventana;
Eventos de mouse y teclado, propiedades de eventos especiales;
Eventos de formulario;
6. Trabajar con CSS y gestionar estilos:
Estándar CSS, propiedades CSS básicas;
Estilos generales y estilos de elementos individuales;
Estilos en cascada;
selectores CSS;
Modificar CSS con JavaScript;
Relleno: margen, relleno, borde;
Controlar la visibilidad de los elementos: visibilidad y visualización;
Posicionamiento de elementos: absoluto, fijo, relativo, configuración superior e izquierda;
Unidades de medida px, pt y otras;
Desbordamiento y control de elementos mediante la propiedad de desbordamiento;
Gestión de capas de documentos: propiedad zIndex;
Animación, movimiento de elementos;
Trabajar con clases, configurar className;
Trabajar con transparencia y transiciones;
método querySelectorAll().
7. Trabajar con módulos en JavaScript, administrador de paquetes NPM, generador de paquetes web:
Razones para utilizar módulos;
Exportar desde módulo;
Importar desde módulo;
Reexportar;
Trabajando con NPM, archivo package.json;
carpeta node_modules, descarga de paquetes usando NPM;
Instalación global y local de paquetes;
Usar webpack para construir un proyecto;
Cargadores CSS y TypeScript;
Configuración webpack.config.js;
Creación de paquetes, compresión;
complementos de paquetes web;
Utilizando sistemas modulares antiguos: CommonJS y AMD;
Usando CommonsChunkPlugin, múltiples puntos de entrada;
Módulos HMR intercambiables en caliente.
8. Clases y herencia en JavaScript:
Herencia de prototipo, referencia __proto__;
Prototipo de objeto;
Usando instancia de;
Clase de palabra clave, creación de clases;
Palabra clave súper;
Usando el método Object.assign();
Usando el método Object.defineProperty();
Captadores y definidores;
Operador de extensión para trabajar con objetos y matrices;
Desestructurando una matriz y un objeto.
9. Programación funcional en JavaScript:
Funciones como variables;
Argumentos de matriz;
Clase de función, métodos call() y apply();
El método bind(), configurando este y algunos de los parámetros usando bind;
Cierres en JavaScript;
Encapsular valores mediante cierres;
Crear una función a través del constructor de funciones: construir una cadena;
Funciones de flecha, ejemplos de su aplicación;
Manipulación de matrices funcionales: buscar, buscarIndex, filtrar;
Ejemplos de uso de map/filter/reduce para procesar datos en una matriz.
10. Inmutabilidad, pruebas, patrón MVC:
El concepto de inmutabilidad, sus ventajas;
Métodos mutables e inmutables para cambiar objetos y matrices;
Concepto y ventajas del DOM Virtual;
Probar funciones inmutables, usando Jest;
Memorización, sus ventajas;
Errores y recomendaciones básicos al utilizar la programación funcional;
Patrón MVC, creación de interfaz de usuario;
Descripción general de las principales bibliotecas para el desarrollo de interfaces: Angular, React, Vue.
11. Asincronía en JavaScript. Promesas:
El concepto y necesidad de la asincronía;
Trabajar con setTimeout, setInterval, clearTimeout;
Funciones de devolución de llamada (devoluciones de llamada);
Perdiendo esto al trabajar con una función de devolución de llamada. Soluciones (usando vinculación, funciones de flecha, etc.);
El concepto de promesas, que devuelve una Promesa desde una función asincrónica;
Método Promise.all(), su aplicación;
sintaxis async/await, casos de uso, limitaciones;
Manejo de situaciones de emergencia: Rechazo de promesa, manejo de excepciones para llamadas asincrónicas.
12. Trabajando con el servidor. Protocolo HTTP. Servicios DESCANSO:
protocolo HTTP;
Encabezados y métodos HTTP (GET, POST, PUT, DELETE, otros), transferencia de datos;
Servidores HTTP (descripción general);
Códigos de respuesta del servidor HTTP;
Usar formularios para enviar datos;
Transferir datos al servidor usando AJAX;
Arquitectura REST: ventajas y características;
Implementación de CRUD (Crear/Leer/Actualizar/Eliminar operaciones) cuando se trabaja con REST;
Usar la función fetch() para recibir y enviar datos;
Documentar los servicios REST utilizando Swagger;
Concepto, aplicación de HATEOAS;
13. Biblioteca AXIOS. Protocolo WebSocket:
Comparación de la biblioteca Axios de alto nivel y el uso de fetch() de bajo nivel;
Solicitudes GET y POST en Axios;
Usando async/await con Axios;
Manejo de errores al usar Axios;
Cancelar una solicitud usando Axios;
Protocolo WebSocket;
Ejemplos de uso de WebSocket, comparación con HTTP;
animación HTML;
Nota
Los materiales del curso se presentan en inglés.