Descripción
Descripción Curso de Programación usando Javascript
En este curso de Programación usando Javascript, te sumergirás en el maravilloso mundo de JavaScript, el lenguaje que impulsa la Web. Nuestra misión es que te sientas cómodo y confiado al utilizar JavaScript en tus proyectos. A lo largo del curso, te enseñaremos los fundamentos esenciales de JavaScript, desde sus elementos básicos hasta su aplicación en el mundo real.
No importa si eres un principiante o tienes experiencia previa, aquí te llevaremos de la mano en tu viaje de aprendizaje. Aprenderás sobre los elementos clave de JavaScript y cómo utilizarlos para construir aplicaciones web impresionantes.
Además, conocerás algunas populares JavaScript librerías, como jQuery, Underscore y otros, que te ayudarán a agilizar tu trabajo y aprovechar al máximo el potencial de JavaScript.
Pero eso no es todo, también nos enfocaremos en las mejores prácticas de JavaScript, para que puedas escribir un código claro y organizado. Y si te encuentras con errores, ¡no te preocupes! Te enseñaremos técnicas de depuración y pruebas para que puedas resolver problemas como un verdadero profesional.
Nuestro objetivo es que disfrutes el proceso de aprendizaje y te sientas motivado a seguir avanzando. Así que, si estás listo para desbloquear todo el potencial de JavaScript y llevar tus habilidades al siguiente nivel, este curso es perfecto para ti. ¡Únete a nosotros y comencemos a explorar juntos el emocionante mundo de JavaScript!
Objetivos
Este curso de programación usando JavaScript de Formación TI, es una formación intensiva que cubre los aspectos teóricos y técnicos del desarrollo front-end con JavaScript. Al finalizar el curso, los asistentes tendrán una sólida comprensión del lenguaje de programación JavaScript, así como de la comprobación y depuración de programas JavaScript.
El curso se complementa con numerosos laboratorios prácticos que ayudan a los asistentes a reforzar sus conocimientos teóricos del material aprendido.
Lo que aprenderás:
- Fundamentos de JavaScript
- Trabajar con varias bibliotecas populares de JavaScript (Underscore,
- jQuery, etc.)
- AJAX
- Pruebas de JavaScript
- Rendimiento de JavaScript
- Mejores prácticas de JavaScript
Requisitos previos para el Curso de programación usando JavaScript
Para tener éxito en este curso de Formación TI, los participantes deben tener experiencia con:
- Algo de desarrollo de software
- Entender conceptos de back end y front end en contexto de desarrollo de software
- Capacidad de lectura de material técnico en ingles
.
Público objetivo
Desarrolladores, Diseñadores Web y entusiastas del desarrollo de software
Duración
24 horas distribuidas en 3 días de 8 horas, o sesiones de 3 o 4 horas presenciales u Online hasta completar las 24 horas
Contenido del curso de programación usando JavaScript
Capítulo 1 – Introducción a JavaScript
Qué es JavaScript
Qué es JavaScript
Qué no es JavaScript
No todos los JavaScripts son iguales
Lenguaje y especificación ECMAScript
Lo que puede hacer JavaScript
Lo que no puede hacer JavaScript
JavaScript en el lado del servidor
Elementos de JavaScript
Valores, Variables y Funciones
Scripts Integrados
Scripts Externos
Cuadros de Diálogo del Navegador
Comunicación en Red
Capítulo 2 – Variables y Tipos de Datos en JavaScript
Variables
Palabras Reservadas de JavaScript
Tipos Dinámicos
Cadenas de texto en JavaScript
Caracteres de Control de Escape
Plantillas Literales
¿Qué es Falso en JavaScript?
Números
El Objeto Number
Palabra Reservada Not A Number (NaN)
Objetos en JavaScript
Objeto Fecha (Date)
Otros Objetos Útiles
Valores Primitivos vs. Objetos
Capítulo 3 – Arreglos (Arrays) en JavaScript
Definición de Arreglos
Creación de un Arreglo
Miembro length del Arreglo
Recorriendo un Arreglo
Añadir Elementos a un Arreglo
Eliminar Elementos
Insertar Elementos
Obtener la Posición de un Elemento
toString() y join()
Método Sort del Arreglo
Método Filter del Arreglo
Método Map del Arreglo
Operador ‘Spread’ del Arreglo
Destructuración
Acceder a Objetos como Arreglos
Capítulo 4 – Operadores y Estructuras de Control en JavaScript
Operadores
Control de Flujo
Sentencia ‘if’
Sentencia ‘if…else’
Sentencia ‘switch’
Bucle ‘for’
Bucle ‘for / in’
Bucle ‘while’
Bucle ‘do…while’
Sentencias Break y Continue
Sentencias Labeled (Etiquetadas)
Las palabras clave undefined y null
Comprobando undefined y null
Comprobando Tipos con el Operador typeof
Capítulo 5 – Funciones en JavaScript
Funciones Definidas
Declaración de Funciones
Argumentos de Función
Más sobre Argumentos de Función
Valores de Retorno
Múltiples Valores de Retorno
Valores de Parámetros por Defecto
Parámetros REST
Expresiones de Funciones Anónimas
Funciones como una Forma de Crear Ámbito Privado
Vinculación de Funciones a Eventos
Eventos Comunes del DOM
Variables Locales y Globales
Variables Locales y Globales
Funciones Flecha (Arrow Functions)
Funciones Flecha (Arrow Functions) Como Parámetros
El Uso de ‘this’ Dentro de Funciones Flecha (Arrow Functions)
Capítulo 6 – Objetos en JavaScript
Objetos JSON
Añadir Propiedades
Recorrer Objetos
Objetos JSON como Cadenas de Texto
Añadir Métodos
La Palabra Clave Class
Creación de Instancias de Clase
Contexto del Objeto: ‘this’
Herencia con Clases
Propiedades Indefinidas
Eliminar una Propiedad
El Operador instanceof
El Operador typeof
Operador ‘Spread’ del Objeto
Las Funciones son Objetos de Primera Clase
Cierres (Closures)
Ejemplos de Cierres (Closures)
Ejemplos de Cierres (Closures)
Ejemplos de Cierres (Closures)
Variables Privadas con Cierres (Closures)
Expresión de Funciones Inmediatamente Invocadas (IIFE)
Capítulo 7 – JavaScript en el Navegador
Scripts Integrados
Scripts Externos
Detección de Objetos del Navegador
Aplicación del Modo Estricto (Strict Mode)
Renderización de Páginas en el Navegador
Código JavaScript
Temas
¿Qué es el DOM?
Objetos del DOM
El Objeto window
Métodos del Ciclo de Vida de window
El Objeto history
El document
Propiedades del document
Nodos y Elementos
Métodos getElement
Métodos querySelector
Ejemplo de querySelector
Algunas Propiedades del Elemento
Métodos del Elemento
Manejo de Eventos de Elementos 1
Manejo de Eventos de Elementos 2
Eventos del Elemento
Solicitudes de Red con XMLHttpRequest
Solicitudes de Red con Fetch
Capítulo 8 – La Consola de JavaScript y la API del Objeto console
Consola de JavaScript en los Navegadores
Soporte de Herramientas para Desarrolladores en los Navegadores
La Consola de Herramientas para Desarrolladores
La API de la Consola
Coloreando la Salida
Uso de los Comandos time() / timeEnd() de la Consola
Uso del Comando console.trace()
Uso del Comando console.count()
Uso del Comando console.assert()
Ejemplo del Comando console.assert()
Capítulo 9 – Depuración de Código JavaScript
¿Por qué Depurar Código JavaScript?
Herramientas de Depuración en los Navegadores
DevTools de Chrome
Los Controles de Depuración en el Panel de Fuentes
Acciones de Depuración
Acciones de Depuración Adicionales
Seleccionar un Archivo JavaScript para Depurar
Escenarios de Depuración para Puntos de Interrupción
Establecer y Eliminar Puntos de Interrupción
Información Disponible en un Punto de Interrupción
Alternar Puntos de Interrupción
Otras Formas de Administrar Puntos de Interrupción
Control Programático Durante las Pausas de Depuración
Interrupción en Excepciones
Otras Técnicas de Depuración
Puntos de Interrupción en Event Listeners de JavaScript
Eventos Soportados
Capítulo 10 – Manejo de Excepciones en JavaScript
Manejo de Excepciones
Sintaxis de Try
El Bloque Finally
Bloques Try Anidados
Tipos de Excepciones en JavaScript
La Sentencia Throw
Uso del Objeto Error
Capítulo 11 – Pruebas en JavaScript con Jest
Marco de Pruebas Jest
Características
Instalación de Jest
Una Prueba Básica
Ejecución de Pruebas
Fallas en las Pruebas
Modo Interactivo
Cobertura de Código
Pruebas Unitarias
Anatomía de una Prueba Unitaria
Expectativas (Asertos)
Matchers Comunes
Combinación de Pruebas
Pruebas de Código Asíncrono con done
Pruebas de Código Asíncrono Basado en Promesas
Configuración y Limpieza (Setup y Teardown)
Ejemplo de Configuración y Limpieza (Setup y Teardown)
Creación de Métodos Falsos y Seguimiento de Llamadas con Spies
Un Ejemplo de Spy
Variaciones en la Configuración de spyOn
Simulación de Excepciones
Capítulo 12 – Rendimiento y Mejores Prácticas en JavaScript
Aprovechando las Bibliotecas Modernas de JavaScript
Carga de Scripts
Minificación de Código JavaScript
Uso de Guías de Estilo de JavaScript
Ejemplos de Reglas y Sugerencias de Guías de Estilo de JavaScript
Evitar Variables Globales, Utilizar Ámbitos Adecuados
Algunos Problemas Sutiles con var
El Ámbito de Bloque con ECMAScript 6 Let
Utilizar un Ámbito Adecuado para un Mejor Rendimiento
Ejemplo de Ámbito
Agilizar Programas con un Ámbito de Variables Adecuado
Almacenar en Caché Propiedades Accedidas Varias Veces
Utilizar Asincronía
Aprovechar los Web Workers de HTML5
Preferir Literales a Constructores
Evitar el Uso de eval()
Consideraciones para la Optimización del Rendimiento
Perfilado de Rendimiento
Perfiladores de Programas JavaScript en Navegadores
Perfilador de IE
Perfilador de Ejecución de Código de IE
Perfilador de Asignación de Memoria de IE
Perfilador de Chrome
Limpiar Tu Código
Cosas que un Linter de JavaScript Verifica Normalmente
Usar el Modo Estricto (Strict Mode)
Usar JOIN para la Concatenación
Igual o No Igual
Capítulo 13 – Automatización de Pruebas y Sistemas de Integración Continua para JavaScript
Integración Continua, Automatización de Compilación y Pruebas
¿Qué es Node.js?
Administrador de Paquetes de Node (NPM)
¿Qué es Grunt?
Fragmento del archivo Gruntfile.js
Instalación de Grunt
¿Qué es Bower?
Instalación de Paquetes en Bower
¿Qué es Karma?
Cómo Funciona Karma
Trabajando con Lanzadores de Navegadores
Configuración de la Ruta de Ejecutables del Navegador
Herramientas de Integración Continua/ Entrega
Sistema de Gestión de Compilación TeamCity
Descripción General de TeamCity
Descripción General de TeamCity
Descripción General de TeamCity
Capítulo 14 – Introducción a NodeJS
¿Qué es Node.js?
Usos de Node.js
Instalación de Node.js y NPM
«¡Hola, Aplicación de Node!»
«¡Hola, Servidor de Node!»
Administrador de Paquetes de Node (NPM)
Comandos Comunes de NPM
Archivo Descriptor de Paquete – package.json
Numeración Semántica de Versiones
Actualización de Paquetes
Desinstalación de Paquetes
Capítulo 15 – Programación Asíncrona con Callbacks
Sincrónico y Asincrónico
Callbacks
Creación de una Función de Callback
Llamando a la Función de Callback
Callback – Otro Ejemplo
Problema con la Palabra Clave ‘this’ en Funciones de Callback
Manejo de este Problema
Manejo de este Problema – Método 1 (Almacenar en Otra Variable)
Manejo de este Problema – Método 2 (Utilizando la Función Bind)
Manejo de este Problema – Método 3 (Utilizando Funciones Flecha ES6)
Manejo de Errores sin Callback
Manejo de Errores con Callback
Callback Asíncrono
setImmediate() y nextTick()
Ejemplo de API
Capítulo 16 – Programación Asíncrona con Promesas
Los Problemas con los Callbacks
Introducción a las Promesas
Requisitos para Usar Promesas
Creación Manual de Promesas
Llamando a la Función Basada en Promesas
Creando APIs que admitan tanto Callbacks como Promesas
Utilizando APIs que admitan tanto Callbacks como Promesas
Encadenando el Método then / Retornando un Valor o una Promesa desde el Método then
Promisificando Callbacks con Bluebird
Utilizando Bluebird
Bluebird – Lista de Funciones Útiles
Ventajas de usar Bluebird sobre ES6 para la Promisificación
Manejo de Errores en Funciones Asíncronas Basadas en Promesas
Ejercicios de Laboratorio
Laboratorio 1. Introducción a JavaScript
Laboratorio 2. Sintaxis Básica de JavaScript
Laboratorio 3. Arreglos (Arrays) en JavaScript
Laboratorio 4. Funciones en JavaScript
Laboratorio 5. Objetos en JavaScript
Laboratorio 6. La Consola de JavaScript y la API del Objeto console
Laboratorio 7. Depuración de Programas JavaScript
Laboratorio 8. Manejo de Excepciones en JavaScript
Laboratorio 9. Pruebas en JavaScript con Jest
Laboratorio 10. Perfilado de Rendimiento en JavaScript
Laboratorio 11. Primeros Pasos con Node.js
Laboratorio 12. Programación Asíncrona con Callbacks
Laboratorio 13. Programación Asíncrona con Promesas