Modulo02 JavaScript ApuntePrincipal
Modulo02 JavaScript ApuntePrincipal
MÓDULO 02 - JAVASCRIPT
Los módulos tienen una duración de 1 (una hora) reloj, teniendo dos módulos continuos por
clase con un descanso entre módulo y módulo de 10 minutos.
Haciendo un resumen de clases, temas el siguiente esquema dará una idea conceptual de
la forma en la que se darán los contenidos.
A continuación, describiremos clase por clase los temas y posteriormente cada tema tendrá
su desarrollo completo y cada tema tendrá un link de descarga de la clase correspondiente; de esta
forma tendremos un documento principal como columna vertebral de todos los temas a brindar en
clases.
- Introducción a la programación.
- Que es la programación.
- Lenguajes de programación.
- Tipos de lenguajes de programación
- Componentes básicos de un programa
. variables, tipos de datos
. estructuras de control
. estructuras condicionales
. estructuras repetitivas
- Depuración y manejo de errores
- Introducción al protocolo HTTP y HTTPs
- Esquema de Petición / Respuesta
- Diferencias entre conceptos
. Página Web
. Sitio Web
. Aplicación Web
- Arquitectura de una aplicación Web
- Patrón de diseño Modelo Vista Controlador
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
- No inicializar variables
- Utilizar el “==” en comparaciones en lugar de utilizar el “===”
- Utilizar una variable no inicializada dentro de un condicional.
- Olvidarse de cerrar paréntesis (), corchetes [], llaves {} en lugares donde son obligatorios.
- Ser desprolijo en la estructura del programa, no respetar la IDENTACIÓN.
- Olvidarse de colocar comillas dobles o comillas simples, en algún mensaje que sea por
consola por ejemplo
- Introducción a la sentencia try/catch
- Estructuras repetitivas
. Ciclo for
. Ciclo while
. Ciclo do while
- Declaración e inicialización de variables
- Estructuras condicionales if/else dentro de ciclos
- Estructuras condicionales anidadas
- Contadores
- Acumuladores
- Cálculo de porcentajes sobre el total
- Salir de estructuras repetitivas con break
- Saltar una iteración en estructuras repetitivas con continue
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Forma 2: con una arrow function completa que tiene los () y la palabra return y las
llaves del cuerpo {}
Forma 3: con una función anónima clásica definida dentro del parámetro de filter
Forma 4: con una función declarada previamente y pasarle como parámetro la función
dentro del filter.
- Recorrer tradicionalmente un vector con un ciclo for
- Recorre un vector con [Link]()
- Transformación de los elementos de un vector con [Link]() recorre los elementos,
aplica la función pasada como parámetro y devuelve cada elemento transformado, a
todos ellos los devuelve y los agrega en un vector de salida.
- Funciones reductoras con reduce(). Que permiten acumular valores, encontrar el mayor, el
menor, etc.
- Función de ordenamiento sort() con las particularidades cuando son valores string o
cuando son valores númericos.
- Particularidad de copiar variables o constantes que contienen vectores. Es decir, se crean
referencias a los elementos y no se realiza una copia del elemento. Dado este problema
surge la necesidad de hacer una clonación de esos elementos y sale spreadOperator
también se puede usar slice() pero es más completo y flexible spread. El problema de la
copia por referencia ocurre con Vectores y con Objetos.
- spreadOperator …
- Que es el asincronismo.
- Diferencias entre procesos síncronos y asíncronos
- Event Loop
- Manejar el asincronismo para conseguir un proceso síncrono
Ejemplo 01: de dos procesos aislados y asíncronos
Funciones callBack
Promesas
Async / await
- Cookies
- Web Storage
o Local Storage
o Session Storage
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
MODULO 02 - JAVASCRIPT
Documentación Recomendada:
Esta documentación cubre todos los aspectos de JavaScript, desde conceptos básicos hasta
características avanzadas. Incluye tutoriales, referencias de API, guías, y ejemplos de código.
[Link]
Guía de JavaScript - Cobertura desde los conceptos básicos hasta características avanzadas:
[Link]
Referencia de JavaScript - Detalles sobre las construcciones del lenguaje, objetos predefinidos,
métodos, y funciones:
[Link]
[Link]
Recursos de lectura:
[Link]
[Link]
JavaScript en 30 días
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo de la clase:
El alumno al finalizar la clase debe entender claramente el protocolo HTTP y HTTPs a nivel
conceptual, el ciclo de vida de la página web (desde que el cliente solicita un recurso/página web y
el servidor responde la solicitud y luego, el navegador renderiza la página. Entendiendo que el
código JavaScript comienza a interactuar con la página cuando esta está totalmente renderizada.
Que es el evento [Link]
A todo esto, el alumno debe dominar conceptualmente la diferencia clara existente entre
una página web, un sitio web, una aplicación web.
Introducción a la Programación:
1) ¿Qué es la Programación?
Importancia de la Programación
2) Lenguajes de Programación
Lenguajes de Alto Nivel: Como JavaScript, Python, y Java, que son más fáciles de entender
y escribir.
Lenguajes de Bajo Nivel: Como el lenguaje ensamblador, que están más cerca del lenguaje
máquina y son más difíciles de entender para los humanos.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Inicio de la Solicitud: El ciclo de vida comienza cuando el usuario ingresa una URL en su
navegador o hace clic en un enlace.
Resolución DNS: El navegador traduce el nombre de dominio en la URL a una dirección IP
utilizando el Sistema de Nombres de Dominio (DNS).
Establecimiento de la Conexión: Se establece una conexión TCP (o TLS si se utiliza HTTPS)
entre el cliente (navegador) y el servidor.
Envío de la Solicitud: El navegador envía una solicitud HTTP al servidor web. Esta solicitud
incluye la URL, los encabezados y, en algunos casos, datos adicionales como parámetros de
consulta o contenido del formulario.
Procesamiento de la Solicitud en el Servidor: El servidor web recibe la solicitud y la procesa.
Esto implica la identificación del recurso solicitado, la ejecución de scripts si es necesario
(por ejemplo, PHP, Python, etc.), y la recuperación de datos de la base de datos si es
aplicable.
Generación de la Respuesta: El servidor web genera una respuesta HTTP que incluye el
código de estado (por ejemplo, 200 OK, 404 Not Found), los encabezados de respuesta y,
opcionalmente, el contenido del recurso solicitado.
Envío de la Respuesta: El servidor envía la respuesta al navegador a través de la conexión
TCP/TLS establecida.
Renderizado en el Navegador: El navegador recibe la respuesta y comienza a renderizar el
contenido. Esto implica interpretar y renderizar el HTML, aplicar estilos CSS, ejecutar scripts
JavaScript, y cargar recursos externos como imágenes, archivos CSS y JavaScript adicionales.
Interacción del Usuario: Una vez que la página se ha renderizado completamente en el
navegador, el usuario puede interactuar con ella haciendo clic en enlaces, enviando
formularios, desplazándose por la página, etc.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
VIDEO:
Protocolo HTTP
o Página WEB
o Sitio WEB
o Aplicación WEB
Página Web:
Una página web es un único documento HTML que puede contener texto,
imágenes, videos, enlaces, y otros elementos multimedia. Es una sola unidad de contenido
que se puede visualizar en un navegador web. Cada página web tiene una URL única.
Ejemplo: La página de inicio de Wikipedia es una página web
([Link]
Sitio Web:
Un sitio web es un conjunto de páginas web relacionadas y conectadas entre sí
mediante enlaces. Estas páginas comparten un nombre de dominio común y generalmente
están organizadas en torno a un tema o propósito específico.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Aplicación Web:
Una aplicación web es un tipo de sitio web avanzado que ofrece funcionalidad
interactiva, similar a una aplicación de escritorio o móvil. Las aplicaciones web suelen incluir
características como la autenticación de usuarios, interacciones en tiempo real, acceso a
bases de datos, y manejo de datos complejos. Utilizan tecnologías como HTML, CSS,
JavaScript, y a menudo frameworks y bibliotecas adicionales (por ejemplo, React, Angular,
[Link] en el frontend y [Link], Django, Ruby on Rails en el backend).
Modelo:
Vista:
Controlador:
El JavaScript Maneja las interacciones del usuario, que cosas realiza, selecciona, elige el
usuario.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo de la clase:
El alumno al finalizar la clase, debe comprender la creación de una página web (documento
HTML), la incorporación muy simple y sencilla de estilos a esa página CSS, y principalmente poder
incorporar código JavaScript a la misma comenzando a incorporar las primeras sentencias del
lenguaje y entendiendo como se escriben, como se hacen líneas de comentarios, como se realizan
comentarios en bloque, como es la línea de ejecución de las sentencias, etc.
Proyecto: Construimos una carpeta y la abrimos con Visual Studio CODE, donde construiremos
una página web e incrustaremos nuestro primer código JavaScript cuando la página se haya
renderizado.
Creamos documento HTML con un simple H1 de Titulo => llamaremos al archivo [Link]
o Bloque de comentarios /* */
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
La vista (HTML)
<!DOCTYPE html>
<html lang="en">
<head>
<title>Practica Nro. 001</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="[Link]">
</head>
<body>
<h1>Práctica Nro I - con Javascript</h1>
<script src="[Link]"></script>
</body>
</html>
El Código:
/*
true => si la respuesta es verdadera
false => si la respeusta es falsa
*/
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo de la clase:
El alumno al finalizar la clase debe comprender que es una variable, para que se utilizan las
variables, como es la sintáxis y recomendaciones para la creación de una variable, los tipos de
variables existentes en JavaScript, los bloques de código entre {}, el ámbito de vida de la variable, y
por último entender y poder saber el tipo de una variable.
Que es una variable ¿?: Una variable en JavaScript es un contenedor o referencia que se
utiliza para almacenar datos y asociarlos con un nombre simbólico. Este nombre puede
luego ser utilizado para acceder y manipular el valor almacenado. Las variables pueden
contener diferentes tipos de datos, incluyendo números, cadenas de texto, booleanos,
objetos, funciones, y más. A continuación, se presentan algunos puntos clave sobre las
variables en JavaScript:
Formas de declarar una variable
o let Numero1 = 0;
o const NUMERO_FIJO = 220;
Particularidades al momento de asignarle un nombre a una variable
o No pueden comenzar con símbolos excepto el signo $
o No pueden comenzar con números
o Dos variables no pueden tener el mismo nombre
o Las variables son case-sensitive
o No pueden tener espacios en blanco en el medio del nombre de la variable
o Declarar e inicializar una variable
o Declarar y asignarle un valor posterior a la variable
o Operaciones aritméticas simples entre variables (suma, resta, multiplicación,
división).
o Declaración de variables dentro de un bloque de códigos
En el mismo bloque de códigos no puede haber dos variables con el
mismo nombre
Dos variables se pueden llamar igual, pero en bloques diferentes, y cada
una de ellas puede tener nombres distintos.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
o Variables numéricas
o Variables del tipo String
o Variables del tipo Boolean
o Valores Nulos
o Valor Indefinido
El Código:
/***********************************************************/
/*** PRIMERA PARTE - DECLARACION Y OPERACIONES BÁSICAS ***/
/***********************************************************/
if,
else,
while,
for,
function,
return,
class,
try,
catch, entre otras.
*/
let a = 20;
let b = 30;
let suma = a + b;
[Link]("El resultado de la suma es: ",suma);
let resta = a - b;
[Link]("El resultado de la resta es: ",resta);
let multiplicacion = a * b;
[Link]("el resultado de la multiplicación es ",multiplicacion);
let division = a / b;
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
[Link](a * 2 + 3 * b - 1);
/***********************************************************/
/*** SEGUNDA PARTE - DIFERENTES TIPOS DE VARIABLES ***/
/***********************************************************/
/* TIPO NUMERICO */
let z = 200;
/* TIPO STRING */
/* TIPO BOOLEAN */
/* VALORES NULOS */
/* VALORES INDEFINIDOS */
*/
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
/*************************************/
/* TERCERA PARTE - BLOQUES DE CODIGO */
/*************************************/
/* esto es bloque 2 */
{
let nombreProgramador = "DANIEL";
}
/* esto es bloque 3 */
{
let nombreProgramador = "JORGE";
}
/* esto es bloque 4 */
{
let a = 20;
//let a = 30;
}
/********************************************************/
/* CUARTA PARTE - JAVASCRIPT LENGUAJE DÉBILMENTE TIPADO */
/********************************************************/
/********************************************************/
/* QUINTA PARTE - case - Sensitive */
/********************************************************/
{
let nombre = "Ana";
let Nombre = "Carlos";
[Link](nombre); // "Ana"
[Link](Nombre); // "Carlos"
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
/********************************************************/
/* SEXTA PARTE - Determinar el TIPO de una variable */
/********************************************************/
{
let variableEjemplo = 99.99;
variableEjemplo = true;
variableEjemplo = undefined;
variableEjemplo=null;
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo de la clase: Al finalizar la clase, los alumnos deberán comprender y dominar los conceptos
de
Realizar un programa para una Empresa de Transportes “La Catamarqueñita” que realiza
envíos de mercaderías a todo el País y además de cobrar el traslado, cobra además un seguro de
protección de los bienes que equivale al 5% del valor Declarado. Realizar un programa en JavaScript
que permita determinar el costo del seguro en función del valor declarado de la mercadería.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Realizar un programa utilizando JavaScript que permita ingresar dos números a través de la
sentencia prompt y determinar mediante estructuras condicionales (if/else).
- Cuál de los dos números ingresados es mayor y mostrar el caso que ambos sean iguales.
Realizar un programa que permita calcular el precio de venta de los artículos de un negocio
(comercio) sabiendo que en líneas generales el margen de ganancia es igual al 45%. Es decir, si un
comerciante compra por mayor “ventanas” y las adquiere a $ 250.000,00 pesos cada una (precio de
costo), el precio de venta será de $ 362.500,00 dado que tiene el 45% aplicado. Siendo la ganancia
neta de $ 112.500,00.
Análisis:
Si el precio de compra es igual a $ 250.000,00 pesos, el 45% de ganancia nos daría un total de $
112.500 pesos que se calculan de la siguiente forma.
precioCompra = $ 250.000,00
Solución:
{
/* Declaramos e Inicializamos las variables */
let valorCompra = 250000;
valorCompra = Number(prompt("Ingrese el valor de Compra"));
Sobre la base del ejercicio anterior, realizaremos a pedido del propietario del comercio un
cambio muy importante, donde nos indica las siguientes reglas de negocio.
El porcentaje de ganancia estará en función del precio de compra, y nos indica las siguientes
reglas que quiere que se apliquen.
- Los precios de aquellos productos donde el precio sea menor a 250.000 mil pesos, el
porcentaje de ganancia será de 45% por ciento.
- En precios que sean iguales o mayores a 250.000 mil pesos el porcentaje de ganancia será
el 65%.
{
/* Declaramos e Inicializamos las variables */
let valorCompra = 0;
valorCompra = Number(prompt("Ingrese el valor de Compra"));
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo:
Al finalizar la clase, los alumnos deberán comprender con el nivel y conocimientos que
tienen hasta el momento con las clases anteriores, cuáles son los errores comunes que cometen los
programadores en sus inicios y comienzos con JavaScript.
- No inicializar variables
- Utilizar el “==” en comparaciones en lugar de utilizar el “===”
- Utilizar una variable no inicializada dentro de un condicional.
- Olvidarse de cerrar paréntesis (), corchetes [], llaves {} en lugares donde son obligatorios.
- Ser improlijo en la estructura del programa, no respetar la identación.
- Olvidarse de colocar comillas dobles o comillas simples, en algún mensaje que sea por
consola por ejemplo
- Introducción a la sentencia try/catch
Realizar un programa con JavaScript que permita declarar e introducir dos valores y
determine cuál de los dos números es más grande y en caso contrario determine que ambos son
iguales.
{
/* declaramos e inicializamos los dos números*/
let Numero1 = 0;
let Numero2 = 0;
}
else
{
if(Numero2 > Numero1) // si el Numero 2 es mayor al Numero 1
{
[Link]("El número mayor es el Numero2 ",Numero2, "El menor
es ",Numero1);
}
else // por defecto, por descarte son iguales
{
[Link]("Los números son iguales");
}
}
}
- Declarar variables y no asignarle valores y que las mismas participen de algún cálculo, forma,
o alguna sentencia condicional (if/else). Valores undefined.
- Equivocarse en el nombre de variables al ser Case Sensitive (distingue mayúsculas de
minúsculas)
- No cerrar paréntesis (), [] corchetes, {} llaves en instrucciones que requieren apertura y
cierre.
- No cerrar comillas cuando estoy haciendo operaciones con valores String o concatenación
de Strings.
- Realizar operaciones matemáticas, cálculos de porcentaje con valores que se capturaron
desde el prompt ó desde la interfaz HTML sin convertir a números y sin determinar que
realmente sean números.
- Errores de ámbito.
- Errores de valores nulos.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Objetivo:
Al finalizar este capítulo, el alumno debe dominar y tener los conceptos de las tres
estructuras repetitivas básicas, estructurales y fundamentales en programación y especialmente en
JavaScript. Estas instrucciones son ciclo for, ciclo while y do while. Debe entender y comprender en
que momentos se utilizan (ejemplos básicos donde vemos estos temas y logramos comprender la
implementación de estas herramientas), las formas de salir de los bucles iterativos como así también
iremos incorporando los temas previos vistos con ejercicios de lógica como ser:
En JavaScript, las estructuras repetitivas permiten ejecutar un bloque de código varias veces según
una condición. Las estructuras repetitivas básicas que veremos son: for, while y do...while.
Ciclo for
El ciclo for se utiliza cuando se conoce de antemano cuántas veces se debe ejecutar un
bloque de código. Su sintaxis básica es:
// código a ejecutar
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
inicialización: Se ejecuta una vez al comienzo del bucle. Aquí generalmente se inicializa
una variable de control.
Ejemplo:
[Link](i);
Ciclo while
El ciclo while se utiliza cuando no se sabe cuántas veces se debe ejecutar el bloque de
código y se depende de una condición que puede cambiar durante la ejecución. Su sintaxis básica
es:
while (condición)
// código a ejecutar
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Ejemplo:
let i = 0;
while (i < 5)
[Link](i);
i++;
Ciclo do...while
El ciclo do...while es similar al ciclo while, pero con la diferencia de que el bloque de código
se ejecuta al menos una vez antes de evaluar la condición. Su sintaxis básica es:
do
// código a ejecutar
} while (condición);
Ejemplo:
let i = 0;
do {
[Link](i);
i++;
for: Se usa cuando se conoce el número de iteraciones. Es útil para iterar sobre rangos de
números o colecciones conocidas.
do...while: Se usa cuando se quiere asegurar que el bloque de código se ejecute al menos
una vez. Es útil cuando la condición depende de operaciones que se realizan dentro del
bucle.
Consideraciones
Bucle Infinito: Un bucle que nunca termina se llama bucle infinito. Es crucial asegurarse de
que la condición de salida eventualmente se cumplirá para evitar que el programa se
bloquee.
while (true) {
if (i === 5) {
break;
Continuar en Bucles: La declaración continue se usa para saltar a la siguiente iteración del
bucle.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
if (i === 3) {
continue;
Conclusión
Las estructuras repetitivas for, while y do...while son fundamentales en JavaScript para
ejecutar bloques de código repetidamente bajo diferentes condiciones. Comprender cuándo y
cómo usar cada tipo de bucle es crucial para escribir código eficiente y efectivo.
Realizar un proceso que permita cargar (tipo caja de supermercado) los productos
comprados por los clientes de un pequeño comercio, donde el cajero irá introduciendo el precio de
los productos y al final de ello visualizar el Total. Realizar este proceso con una estructura repetitiva
para 8 productos.
Solución:
/* EJERCICIO NRO. 06
Realizar un proceso que permita cargar (tipo caja de supermercado)
los productos comprados por los clientes de un pequeño comercio,
donde el cajero irá introduciendo el precio de los productos
y al final de ello visualizar el Total. Realizar este proceso
con una estructura repetitiva para 8 productos.
*/
/*
total de factura es una variable
donde iré acumulando los precios de los
productos que voy registrando, debe estar
fuera del ciclo repetitivo porque debe
ser global al cuerpo del ciclo.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
*/
let totalFactura = 0;
let precioProducto = 0;
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Realizar un programa en JavaScript que permita ingresar las notas de los trabajos finales de
los alumnos de la diplomatura en “Desarrollo Web Full Stack con JavaScript” para ello se establecen
las siguientes condiciones.
Solución:
contadorNotas = contadorNotas + 1;
}
if((notaAlumno >4) && (notaAlumno <=7))
{
contadorAprobados = contadorAprobados + 1;
}
if((notaAlumno >7) && (notaAlumno <10))
{
contadorMuyBuenos = contadorMuyBuenos + 1;
}
if(notaAlumno ===10)
{
contadorExcelentes = contadorExcelentes + 1;
}
}
continua = prompt("continua con otro alumno ? (SI/NO)");
}
Realizar un programa en JavaScript que permita ingresar la edad de todos los estudiantes
de la diplomatura de la “Diplomatura Universitaria en Desarrollo Web Full Stack con JavaScript” y
obtener a partir de esos datos los siguientes datos.
Cantidades:
Solución:
/*
Ejercicio propuesto Nro. 08: (estructuras repetitivas)
Realizar un programa en JavaScript que permita ingresar la
edad de todos los estudiantes de la diplomatura de la
“Diplomatura Universitaria en Desarrollo Web Full Stack con JavaScript”
y obtener a partir de esos datos los siguientes datos.
Cantidades:
Cantidad de alumnos mayores a 50 años.
Cantidad de alumnos cuya edad sea menor o igual a 50 años.
Cantidad total de alumnos.
Porcentajes:
Porcentaje de alumnos mayores a 50 años sobre el Total.
Porcentaje de alumnos menores o iguales a 50 años sobre el Total
Considere como error aquellos que están por debajo de los 18 años
y por arriba de los 100.
*/
let porcentajeErrores = 0;
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
let porcentajeMayores50 = 0;
let porcentajeMenores50 = 0;
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Una Frigorífico posee una cinta transportadora y clasificadora de huevos para consumo
humano. La cinta no tan solo los transporta sino también los clasifica según su peso. es decir, al final
de la cinta existe una balanza electrónica de alta precisión que evalúa su peso y los clasifica.
Determinar lo siguiente:
Solución:
let cantidadXL = 0;
let cantidadL = 0;
let cantidadM = 0;
let cantidadDescarte = 0;
let cantidadTotal = 0;
let porcentajeXL = 0;
let porcentajeL = 0;
let porcentajeM = 0;
let porcentajeDescarte = 0;
let pesoDeHuevo = 0;
/*---------------------------------------
comenzamos a analizar en que categoría
cae en función de su peso
---------------------------------------*/
cantidadDescarte = cantidadDescarte + 1;
[Link](`cantidad de descartes:
${cantidadDescarte}`);
}
}
}
}
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Objetivo de la clase:
Funciones matemáticas
Las Funciones:
Las funciones son fragmentos de código que tienen una funcionalidad específica y tienen el
propósito de aislar un conjunto de instrucciones que en conjunto resuelven algún problema. La
palabra función tiene la intención de “encapsular” lógica para resolver algún problema y cumplir un
objetivo muy puntual, específico.
Las funciones son bloques de código que se pueden definir una vez y ejecutar en múltiples
ocasiones a lo largo de un programa. En JavaScript, las funciones son ciudadanos de primera clase,
lo que significa que se pueden asignar a variables, pasar como argumentos a otras funciones y
devolver desde otras funciones. Las funciones son fundamentales para estructurar el código,
permitir la reutilización y modularización, y son esenciales para la programación funcional y la
programación orientada a objetos en JavaScript.
function Cuadrado(numero)
{
return numero * numero;
}
Las funciones tienen un nombre, los parámetros de entrada que va entre los paréntesis, el
cuerpo de la función que va entre { } “llaves” y muy importante la palabra return.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Realizar una función que reciba como parámetro de entrada un número y devuelva el
cuadrado del mismo.
/*
1 - la palabra reservada function
2 - el nombre de la función
3 - los parametros de entrada entre () parentesis
4 - {} el cuerpo de la función
5 - el retorno de una función
*/
function Cuadrado(numero)
{
return numero * numero;
}
Realizar una función que reciba como parámetro de entrada un número y devuelva la raíz
cuadrada del mismo.
Nota: visualizar las diferentes formas de invocación y la participación de la función dentro de una
expresión matemática.
Realizar una función que reciba como parámetro de entrada el importe de una factura, el
tipo de artículo que se está facturando y devuelva el importe de la misma con el IVA incluido
sabiendo que:
Solución:
let tipo = 1;
Realizar una función que pueda calcular y determinar la dosis de insulina recomendada para
un paciente diabético. Basada en tres datos importantes para el cálculo.
Para Tipo 1: El cálculo es el 50% del Peso corporal del paciente + el 50% del nivel de
glucosa en sangre, este último termino solamente si la glucosa es mayor a 180.
Para Tipo 2: El cálculo es el 20% del Peso corporal del paciente + el 50% del nivel de
glucosa en sangre, este último termino solamente si la glucosa es mayor a 180.
La función debe retornar la dosis de insulina recomendada y recibir como parámetros de entrada
(argumentos) nivel de glucosa, peso corporal y tipo de diabetes.
Realizar una función que pueda obtener y calcular el IMC – índice de masa corporal sabiendo
que la fórmula es la siguiente IMC = peso (kg) / altura (metros) al cuadrado
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Objetivo de la clase:
o [Link]
o click
o Incorporamos dos botones y capturamos el evento click en dos botones
o Incorporamos el Evento click al documento y observamos que se produce un
efecto de propagación de a dentro hacia a fuera.
El Document Object Model (DOM) es una interfaz de programación para documentos HTML
y XML. Proporciona una representación estructurada del documento, permitiendo a los
desarrolladores acceder y manipular su contenido, estructura y estilo. El DOM representa el
documento como una jerarquía de nodos, donde cada nodo corresponde a una parte del
documento, como un elemento, atributo o texto.
El DOM organiza el contenido del documento en una estructura de árbol. Los nodos del árbol
pueden ser de varios tipos, incluyendo elementos, atributos y texto. Aquí hay una descripción de los
principales tipos de nodos:
Document: El nodo raíz del documento. Todos los demás nodos son descendientes del
nodo Document.
Element: Representa un elemento HTML o XML.
Text: Representa el contenido de texto dentro de un elemento.
Attribute: Representa un atributo de un elemento.
Comment: Representa un comentario en el documento.
El DOM proporciona varias interfaces y métodos para acceder y manipular el contenido del
documento. Aquí se presentan algunos de los métodos y propiedades más comunes:
Manipulación de Nodos
Eventos en el DOM
Los eventos son una parte fundamental del DOM, permitiendo a los desarrolladores interactuar
con los usuarios. Algunos de los eventos más comunes incluyen:
Manejadores de Eventos
Los manejadores de eventos son funciones que se ejecutan en respuesta a eventos. Existen
dos formas de responder a los eventos, una forma es asignarle una función directamente al evento
del botón y la otra es agregar una función al escuchador de eventos.
[Link] = function()
{
alert(“me están hacienda click”);
}
Manipulación de Estilos
El DOM también permite la manipulación de estilos CSS de los elementos. Esto se puede
hacer a través de la propiedad style de un elemento:
Haciendo un resume final, observamos las formas de seleccionar los elementos del DOM
para poder acceder a ellos y manipularlos.
[Link](id)
[Link](selector)
Devuelve: Un único elemento.
Descripción: Selecciona el primer elemento que coincide con el selector CSS
especificado.
[Link](className)
Devuelve: Una colección (HTMLCollection) de elementos.
Descripción: Selecciona todos los elementos que tienen la clase especificada.
[Link](tagName)
Devuelve: Una colección (HTMLCollection) de elementos.
Descripción: Selecciona todos los elementos que tienen el nombre de etiqueta
especificado.
[Link](name)
Devuelve: Una colección (NodeList) de elementos.
Descripción: Selecciona todos los elementos que tienen el atributo name especificado.
[Link](selector)
Devuelve: Una colección (NodeList) de elementos.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Descripción: Selecciona todos los elementos que coinciden con el selector CSS
especificado.
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo de la clase:
La presente clase tiene como objetivo fundamental, que el alumno vaya comprendiendo la
forma de crear el documento HTML, incorporarle código a través de la etiqueta <script>, incorporar
la hoja de estilos, en el código JavaScript capturar el evento onload, capturar los elementos del DOM
con el que desea interactuar, capturar el evento click del botón donde realizaremos el cálculo, crear
variables, realizar operaciones con variables, ir mostrando las etapas por consola, concatenar
variables string y mostrarlas en el navegador.
Temas Adicionales:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="[Link]">
</head>
<body>
<div class="divPrincipal">
<h1>Calcular el Cuadrado de un Numero</h1>
<label>Ingrese un Número</label>
<input type="number" id="idTxtNumeroIngresado">
<input type="button" value="Calcular Cuadrado" id="btnCuadrado">
<h3 id="idResultado">El Cuadroado Es:</h3>
</div>
<script src="[Link]"></script>
</body>
</html>
CSS
body
{
background-color: black;/* Color del body todo negro */
}
/* al div principal
le damos */
.divPrincipal
{
width: 400px; /* ancho */
height: 400px; /* alto */
background-color: coral; /*color de fondo */
color: white; /* color de la letra */
display: block; /* se muestren en bloque */
margin-left:auto; /* margen derecho */
margin-right:auto; /* margen izquierdo */
}
JAVASCRIPT
4
/* onload es el evento que se dispara automáticamente
cuando la página esta cargada y lista para que el usuario
interactúe con ella */
[Link] = function()
{
/* mensaje por consola */
[Link]("la aplicación está lista para interactuar");
let idTxtNumeroIngresado =
[Link]("idTxtNumeroIngresado");
let btnCuadrado = [Link]("btnCuadrado");
let idResultado = [Link]("idResultado");
[Link](idTxtNumeroIngresado);
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
[Link](btnCuadrado);
[Link](idResultado);
[Link] = function()
{
[Link]("estan haciendo click en el boton");
[Link](Numero);
LINK PROYECTO:
[Link]
Z5iB6x/view?usp=sharing
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Duración: 40 minutos
Objetivo de la clase:
Apuntamos que el alumno consolide los conceptos que se vienen proporcionando desde el
inicio del temario, crear documentos HTML, crear sus estilos, incorporarle funcionalidad JavaScript
a través de su etiqueta correspondiente, capturar dentro de su script el momento de finalización de
renderizado del documento “onload”, mostrar que la página esta renderizada, crear variables que
apunten correctamente a los objetos visuales que estimamos capturar, manipular y controlar (“por
algo el código lo denominamos controlador”), incorporar funcionalidad a los botones a través de su
evento “click” y luego dentro del bloque de código de cada botón preparar toda la lógica necesaria
para capturar los valores ingresados, convertirlos a número, realizar las operaciones establecidas y
mostrar los resultados a través de la manipulación del DOM.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<title>Practica Nro. 005</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="[Link]">
</head>
<body>
<h1>Práctica Nro 05 - Calculadora Simple</h1>
<div class="divPrincipal">
<label for="idTxtValor1">Ingrese el Número 1</label>
<input type="text" id="idTxtValor1">
<label for="idTxtValor1">Ingrese el Número 2</label>
<input type="text" id="idTxtValor2">
<input type="button" value="Sumar" id="idBtnSumar">
<input type="button" value="Restar" id="idBtnRestar">
<h3 id="idResultadoSuma">El Resultado de la SUMA:</h3>
<h3 id="idResultadoResta">El Resultado de la RESTA:</h3>
</div>
<script src="[Link]"></script>
</body>
</html>
CSS
body
{
background-color: black;/* Color del body todo negro */
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
/* al div principal
le damos */
.divPrincipal
{
width: 400px; /* ancho */
height: 400px; /* alto */
background-color: coral; /*color de fondo */
color: white; /* color de la letra */
display: block; /* se muestren en bloque */
margin-left:auto; /* margen derecho */
margin-right:auto; /* margen izquierdo */
}
JAVASCRIPT
// VALORES NULOS //
let variableQueDevolveraNULL =
[Link]("cajaTextoINEXISTENTE");
[Link](idTxtValor1);
[Link](idTxtValor2);
[Link](variableQueDevolveraNULL);
[Link](idBtnSumar);
[Link](idBtnRestar);
[Link](idResultadoSuma);
[Link](idResultadoResta);
[Link] = function()
{
[Link](numero1);
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
[Link](numero2);
[Link](resultadoSuma);
[Link] = function()
{
/* obtengo los valores que tienen
los input en el documento HTML */
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Objetivo de la clase:
Definición: es una estructura de datos lineal que permite el almacenamiento de múltiples valores y
la posibilidad de accederlos a todos mediante un solo identificador, en este caso el nombre del
vector.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Objetivo de la clase:
Los objetos que derivan de una clase son una estructura de datos y vienen a sumarse a las
que ya venimos viendo que son
Estructuras de datos: hasta este momento el alumno viene manejando estructuras de datos como
ser:
- Variables
- Constantes
- Vectores
Ahora podremos incorporar los objetos como una nueva estructura de datos, una estructura
que permite contener atributos, estos atributos pueden ser estructuras que ya conocemos como
variables, como vectores (pero dentro de la POO se los conoce como atributos). Los objetos
provienen de una clase que sería en el mundo real como un “MOLDE”.
En el mundo real por ejemplo si deseo construir block para la construcción de una casa
necesito una blockera que sería el “MOLDE = CLASE”. Y los block que se construyeron a partir de ese
MOLDE se denominarían objetos.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
CLASE
Una clase en Programación Orientada a Objetos (POO) es un modelo o una abstracción que
representa un concepto o una entidad del mundo real. Esta clase encapsula datos (propiedades) y
comportamientos (métodos) relacionados con ese concepto.
Definición alternativa (Profesor): una clase es como definir una estructura de datos nueva que
permite incorporar y encapsular un conjunto de atributos, lógica, métodos (que son similares a las
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Por ejemplo, se pueden construir clases que permiten a partir de series de números obtener
todas las medidas estadísticas de dispersión como, por ejemplo, la media aritmética, la moda, la
mediana, la desviación standard.
Ejemplos de clases
- Existen Programadores ó empresas que construyen clases que encapsulan toda la lógica del
Sistema Financiero y lógicamente venden y comercializan esas soluciones.
- Existen Programadores ó empresas que construyen clases que encapsulan toda la lógica de
gráficos estadísticos.
- Existen Programadores ó empresas que construyen clases que encapsulan toda la lógica
para manipular motores o componentes electro mecánicos. Esto para los programadores
que se encargan de la robótica los abstrae completamente de cómo está implementado
cada método que tiene ese conjunto de clases.
Constructor de Clases: que encapsulan complejidad y estarán provistos para que otros
programadores puedan resolver problemas de esa temática sin necesidad de comprender a fondo
los detalles de la implementación de las soluciones.
Los desarrolladores que asumen el rol de consumidores de clases utilizan las clases creadas
por otros (terceros) para construir sus aplicaciones. Estos desarrolladores pueden no necesitar
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
entender completamente los detalles internos de cómo funcionan estas clases, siempre y cuando
puedan interactuar con ellas de manera efectiva a través de sus interfaces públicas. Este enfoque
promueve la reutilización de código, la abstracción, modularidad y estandarización.
Por otro lado, los desarrolladores que asumen el rol de creadores de clases son aquellos que
tienen un conocimiento específico en un área o dominio y construyen clases que encapsulan esa
lógica. Estos desarrolladores tienen la responsabilidad de diseñar clases que sean fáciles de usar y
que oculten la complejidad interna detrás de una interfaz clara y bien definida. Su objetivo es
proporcionar a otros desarrolladores una abstracción limpia y efectiva para trabajar con conceptos
complejos o especializados.
Tipos de OBJETOS
En JavaScript tenemos dos tipos de objetos, los objetos literales que no necesitan una clase
para ser instanciados, solamente con definirlos el lenguaje los interpreta como tal y aquellos que
necesitan clases para darle la forma, con sus atributos, constructor, etc.
Objetos Literales:
const objetoLiteral = {
nombre: 'Juan',
edad: 30
};
class Persona {
constructor(nombre, edad) {
[Link] = nombre;
[Link] = edad;
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Podríamos definir que existen dos tipos de clases y por ende sus objetos
- Clases estructurales
o Permiten ENCAPSULAR almacenar datos de cosas, hechos, entidades como por
ejemplo datos de personas, datos de registración de eventos (compras, ventas,
entradas y salidas de un depósito). Para este tipo de datos no es necesario construir
una clase y luego instanciar la clase, simplemente podemos construir los objetos
con sus atributos y valores.
Es por ello que los denominamos “objetos literales”.
const Factura1 =
{FechaCompra:"21/03/2020",CantidadProductos:5,PrecioUnitario:2500.20,getTota
l(){return [Link] * [Link]}};
[Link](Factura1);
[Link]([Link]()); // invocamos el método que está dentro
del objeto
[Link]([Link](Persona1));
[Link]([Link](Persona2));
- Clases funcionales
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
class SumaDeDos
{
// los atributos de la clase
Numero1 = 0;
Numero2 = 0;
Resultado = 0; // un atributo de la clase
/* Getters y Setters */
setNumero1(parametro)
{
this.Numero1 = parametro; // actualizo el atributo y por ende
actualizo el resultado */
[Link](); // al cambiar el valor
}
Sumar()
{
[Link] = this.Numero1 + this.Numero2;
}
getResultado()
{
[Link]();
return [Link];
}
}
objeto2.setNumero1(115);
[Link]([Link]());
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
- Atributos de una clase: son lugares, estructuras de datos (“variables”) que pueden ser
booleanos, numéricos, String u otros objetos que permiten almacenar datos que son
importantes para el objetivo de la clase.
o Públicos: pueden ser accedidos y modificados desde a fuera de la clase
o Privados: pueden ser modificados y accedidos solo por métodos internos de la
clase
o Estáticos: son atributos que permanecerán estáticos en todas las instancias, son
útiles para mantener información única para todas las instancias. Es decir, son
atributos que pertenecen a la clase y no a la instancia. Si bien cada instancia
puede acceder a dichos atributos, los mismos son únicos y si se modifican en una
instancia, esa modificación se reflejará en todas las instancias.
- El Constructor: es un método (“función”) que tiene como objetivo asignarles valores a los
atributos de la clase. Siempre y cuando no sean estáticos.
- Métodos de la clase: es comportamiento, procesos, (“funciones”) que tienen como
objetivo realizar cálculos, operaciones con los atributos o hacer cálculos específicos y
devolverlos al programa principal que instanció el objeto.
o Públicos: en JavaScript todos los métodos por defecto son públicos.
o Privados: no soportados en JavaScript
o Estáticos: métodos que tienen acceso a atributos estáticos ya sea para asignar
valores o para retornar los valores.
o Getters y Setters: conjunto de métodos (“funciones”) que se encargan de asignarle
valor a cada atributo y también a devolver valores de los atributos.
Cada atributo tendrá dos métodos, 1 método get y 1 método set.
Ejemplo de Clases y Bibliotecas de Clases de Terceros que ayudan a la tarea cotidiana del
programador:
[Link] ([Link]): [Link] es un marco web de [Link] que se utiliza para construir
aplicaciones web y APIs. [Link] es una clase que se utiliza para crear objetos de enrutador
en una aplicación Express, lo que permite organizar las rutas de manera modular.
[Link]: [Link] es una biblioteca JavaScript simple pero poderosa para crear gráficos interactivos
y responsivos en páginas web. Es fácil de usar y ofrece una amplia variedad de tipos de gráficos,
como barras, líneas, radar, dispersión, etc.
[Link] (Data-Driven Documents): [Link] es una biblioteca de JavaScript para manipular documentos
basados en datos. Si bien es más avanzada y flexible que otras bibliotecas, también puede ser más
compleja de aprender. Se utiliza para crear visualizaciones de datos personalizadas y altamente
interactivas.
Highcharts: Highcharts es una biblioteca de gráficos JavaScript que ofrece una amplia gama de
gráficos y visualizaciones, incluidos histogramas, gráficos de dispersión, gráficos de líneas, gráficos
de áreas y más. Es fácil de configurar y tiene una amplia documentación.
Google Charts: Google Charts es una biblioteca gratuita de visualización de datos desarrollada por
Google. Ofrece una variedad de gráficos y visualizaciones, como gráficos de barras, líneas, áreas,
histogramas, dispersión, entre otros. Es fácil de usar y se integra bien con otros servicios de Google.
[Link]: [Link] es una biblioteca de gráficos de código abierto que permite crear gráficos
interactivos y personalizables en páginas web. Ofrece soporte para una variedad de tipos de
gráficos, incluidos histogramas, gráficos de dispersión, gráficos de líneas, gráficos de barras y más.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Conjunto de métodos que no tienen implementación, no tienen código, pero las clases que
se adhieran a esa interfaz deberán implementar la solución a esos métodos.
Una clase abstracta es una clase que no puede ser instanciada directamente y que generalmente
contiene métodos abstractos, es decir, métodos que deben ser implementados por las clases que la
heredan. En JavaScript.
LINK PROYECTO:
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Antes de ES6 (ECMAScript 2015), JavaScript no tenía una forma nativa de gestionar módulos. Los
desarrolladores utilizaban patrones como el Módulo de JavaScript (JavaScript Module Pattern) y
herramientas de carga de módulos como CommonJS (utilizado principalmente en [Link]) y AMD
(Asynchronous Module Definition) para estructurar su código.
Con la llegada de ES6, se introdujeron módulos nativos, proporcionando una sintaxis estándar para
la exportación e importación de código.
Las exportaciones permiten exponer partes del código de un módulo para que puedan ser utilizadas
en otros módulos. Esto ayuda a dividir el código en partes más pequeñas y manejables, facilitando
la reutilización y el mantenimiento.
MÓDULO: ejemplo01_versionsistema.js
IMPORTACIÓN:
MÓDULO: ejemplo02_provincias.js
IMPORTACIÓN:
MÓDULO: ejemplo03_cuadrado.js
IMPORTACIÓN:
MÓDULO: ejemplo04_funcioncubo.js
IMPORTACIÓN:
MÓDULO: ejemplo05_clasesumaanonima.js
getSuma()
{
return (this.numero1 + this.numero2);
}
}
IMPORTACIÓN:
MÓDULO: ejemplo06_objetoanonimo.js
export default
{
fecha:"01/01/2020",
autor:"ING. DANIEL MALDONADO",
version:"K2B EVO II. revision 4"
}
IMPORTACIÓN:
MÓDULO: ejemplo07_boton.js
[Link]("click",()=>
{
alert("soy un boton generado desde una biblioteca, me puedo replicar varias
veces");
})
return variableBoton;
IMPORTACIÓN:
MÓDULO: ejemplo08_crearunfragmento.js
[Link]("click",()=>
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
{
alert("soy el boton1 del Fragment");
})
[Link]("click",()=>{
alert("soy el boton2 del Fragment");
})
[Link](boton1);
[Link](boton2);
return fragmento;
}
IMPORTACIÓN:
MÓDULO: ejemplo09_exportaciones_nombradas.js
getSuperficie()
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
{
return ([Link] * [Link]);
}
}
/* exportamos un objeto */
IMPORTACIÓN:
MÓDULO: ejemplo10_bibliotecamixta.js
IMPORTACIÓN:
MÓDULO: ejemplo11_bibliotecamixta2.js
export{funcionSaludar,funcionDespedir};
IMPORTACIÓN:
[Link]("DANIEL");
[Link]("DANIEL");
[Link]("DANIEL");
[Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
[Link](),
[Link](),
[Link]()
[Link](data)
Forma 2: Manipulación del DOM mediante HTML Interno (Inner HTML Manipulation):
[Link](tagName)
Descripción: Crea un nuevo elemento HTML con el nombre de etiqueta especificado.
var nuevoDiv = [Link]('div');
[Link](data)
Descripción: Crea un nuevo nodo de texto con el texto especificado.
var texto = [Link]('Hola, mundo!');
[Link]
Descripción: Establece o devuelve el contenido HTML de un elemento. Puede usarse para
crear múltiples elementos o nodos de texto de una sola vez.
[Link](position, text)
[Link]()
Descripción: Crea un nodo de documento vacío que puede contener nodos. Es útil para
agregar múltiples elementos al DOM de una vez, mejorando el rendimiento.
[Link]('contenedor').appendChild(fragmento);
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
FORMA1 :
Ventajas:
Control Granular: Permite un control detallado sobre cada aspecto del elemento.
Puedes establecer propiedades, atributos, estilos y eventos de manera individual.
Desventajas:
Verbosidad: Puede ser más largo y detallado al escribir comparado con
FORMA 2:
Ventajas:
Desventajas:
Las funciones son entidades de primera clase porque se pueden hacer las siguientes
operaciones o particularidades.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
// esta es la función llamadora que recibe como parámetro una función que se llamara
interna //
function Cubo(numero)
{
return (numero * numero * numero);
}
function Promedio(num1=0,num2=0,num3=0)
{
return (num1 + num2 + num3)/3;
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
class CalculosEstadisticos
{
constructor(num1,num2)
{
this.Numero1 = num1;
this.Numero2 = num2;
}
Particularidad 10: funciones pueden recibir como parámetro otras funciones, que
pueden ser invocadas dentro de la función llamadora podríamos decir, podríamos
definir función parámetro a la función que se pasa como parámetro y función llamadora
o (callback) a la función que llama a la primera. Entonces quedaría algo así.
fnLLamadoraOCallBack(()=>{
[Link]("esto es el cuerpo de la primera callback");
},
(
)=>{
[Link]("este es el cuerpo de la segunda callback");
});
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
(function() {
[Link]('IIFE ejecutada');
})();
function* generador() {
yield 1;
yield 2;
yield 3;
}
fetchData();
Particularidad 14: Closures. Una función puede acceder a las variables de su contexto
exterior incluso después de que ese contexto haya terminado.
function crearContador() {
let contador = 0;
return function() {
contador++;
return contador;
}
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Particularidad 15: Funciones con Rest Parameters: Permiten a una función aceptar un
número indefinido de argumentos como un array.
function sumar(...numeros) {
return [Link]((acc, num) => acc + num, 0);
}
[Link](sumar(1, 2, 3)); // 6
function sumar(x, y, z) {
return x + y + z;
}
Objetivo de la clase:
Existen tres formas o técnicas con las que se pueden conseguir que los procesos sean
síncronos y para ello veremos las funciones CallBack, las Promesas y los procesos Async await.
Síncrono: Las tareas se ejecutan secuencialmente. Cada tarea debe completarse antes de que la
siguiente pueda comenzar.
Asíncrono: Las tareas pueden comenzar y completar en diferentes momentos, sin esperar a que
otras tareas terminen.
Event Loop: Es el mecanismo que maneja las operaciones asíncronas en JavaScript. Monitorea la
cola de tareas y ejecuta las que están listas cuando el stack de ejecución está vacío.
JavaScript utiliza un único hilo de ejecución, pero puede manejar múltiples operaciones de
manera no bloqueante gracias al event loop. El event loop es un mecanismo que permite que el
JavaScript maneje operaciones asincrónicas al sacar elementos de la cola de tareas y ejecutarlos
cuando la pila de llamadas está vacía.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
- estructuras condicionales
- estructuras repetitivas
- Operaciones de comparación
Para manejar esta asincronía y controlar el flujo de ejecución de manera más eficiente, JavaScript
ofrece diferentes mecanismos:
Callbacks: Los callbacks son funciones que se pasan como argumentos a otras funciones y se
ejecutan cuando se completa una tarea, como una operación de red o temporización.
Promesas: Las promesas son objetos que representan el resultado eventual (éxito o fracaso) de una
operación asíncrona. Permiten un manejo más flexible y legible de las operaciones asíncronas y
evitan el "callback hell".
Async/await: La combinación de las palabras clave async y await permite escribir código asíncrono
de manera más similar a la sincrónica. Las funciones async devuelven promesas y el operador await
pausa la ejecución de una función async hasta que una promesa sea resuelta.
El asincronismo en JavaScript es una característica clave que permite que las operaciones no
bloqueen la ejecución del programa, haciendo posible la realización de múltiples tareas al mismo
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
tiempo. Aquí hay un resumen de los conceptos más importantes relacionados con el asincronismo
en JavaScript.
Las funciones callback son una característica fundamental en JavaScript que permite
manejar la asincronía y la ejecución de código dependiente de eventos o procesos asíncronos
Características principales:
Argumento de función: En JavaScript, las funciones son de primera clase, lo que significa que pueden
ser tratadas como cualquier otro tipo de dato, incluyendo ser pasadas como argumentos a otras
funciones.
Asincronía: Las funciones callback son esenciales para manejar operaciones asíncronas como las
que involucran peticiones HTTP, temporizadores (setTimeout, setInterval), manejo de eventos
(click, load, submit, etc.), entre otros.
Uso común:
Eventos de usuario: Por ejemplo, en una página web, una función callback puede ser utilizada para
manejar la respuesta después de que el usuario haga clic en un botón.
Peticiones HTTP: Al realizar una solicitud a un servidor, se puede proporcionar una función callback
que procese la respuesta una vez que se reciba.
Ejemplos:
Ejemplo 02 – Funciones CallBack: En este segundo ejemplo, mostraremos como sería una solución
simple al problema del asincronismo y para ello recurrimos a una función callback que es llamar una
función dentro de la otra. Cuando el primer proceso haya terminado.
Ejemplo 03 – Funciones CallBack II: En el tercer ejemplo, adaptaremos la función llamadora para
recibir como parámetro cualquier función que se desea ejecutar posteriormente. es decir, la función
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
que inicia el proceso recibe como parámetro la siguiente función a ejecutar, es más flexible que el
ejemplo anterior.
Ejemplo 04 – Funciones CallBack III: En este cuarto ejemplo, la función llamadora recibe como
parámetro la próxima función a ejecutar, pero el cambio más importante es mostrar que la
función callBack al momento de ser invocada, puede definirse como una arrow function, como una
función anónima.
Ejemplo 05 – Funciones CallBack IV: En este quinto ejemplo, la función principal que es la que inicia
el proceso, no tan solo llama a la función CALLBACK sino también le pasa resultados.
2 – PROMESAS = Promis
Las promesas son objetos en JavaScript que representan la eventual finalización o el fracaso
de una operación asincrónica. Proporcionan una forma más estructurada y flexible de trabajar con
código asíncrono en comparación con las funciones callback tradicionales.
Características principales:
Estado: Una promesa puede estar en uno de tres estados: pendiente, cumplida (resuelta) o
rechazada.
Manejo de errores: Proporciona un manejo más robusto de errores a través del método .catch()
para capturar cualquier excepción que ocurra durante la ejecución de la promesa.
Uso común:
Peticiones HTTP: Al realizar solicitudes a servidores, las promesas son utilizadas para manejar la
respuesta de manera asíncrona.
Carga de archivos: Cuando se carga un archivo de manera asíncrona, una promesa puede
manejar la finalización o el error de esa operación.
Beneficios:
Claridad: Facilitan la escritura y lectura de código asincrónico, reduciendo la anidación de
callbacks y mejorando la estructura del código.
Manejo de errores: Ofrecen un método centralizado para manejar errores, lo que mejora la
robustez del código y facilita la depuración.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Consideraciones:
Compatibilidad: Las promesas son compatibles con la mayoría de los navegadores modernos, pero
es recomendable verificar la compatibilidad en entornos específicos si se requiere soporte para
versiones más antiguas.
Encadenamiento adecuado: Para evitar el callback hell, es importante utilizar el encadenamiento
de promesas de manera efectiva y utilizar async/await para estructuras más complejas.
Ejemplo 07 – Promesas – Ejemplo I: En este simple ejemplo mostraremos como utilizar e instanciar
el objeto promesa a partir de la clase PROMESA, como guardarlo en una constante y posteriormente
capturar el caso de éxito (“resolve”) y el caso de fallo (“reject”). El objetivo de este ejemplo es
observar cómo se instancia la promesa y como se capturan sus casos de éxito o fracaso.
Ejemplo 08 – Promesas – Ejemplo II: En este ejemplo, en lugar de instanciar un objeto Promesa y
guardarlo en una constante, lo que realizaremos es construir una función que retornará una
promesa ya instanciada, esta es la forma más utilizada de cómo implementar las promesas, y tiene
como objetivo organizar mejor una cadena de promesas enganchadas unas de otras.
Ejemplo 09 – Promesas – Ejemplo III: En este ejemplo, la función que retorna la promesa
instanciada, tiene la flexibilidad de recibir como parámetro la función a ejecutar dentro de la
promesa.
Ejemplo 10 – Promesas – Ejemplo IV: En este ejemplo, la función que retorna la promesa
instanciada, se utiliza para enganchar dos procesos asíncronos que se desean ejecutar de forma
síncrona. Por el lado del .then() de la primera promesa, se debe colocar siempre, la palabra RETURN
e invocar nuevamente la promesa siguiente.
await
La palabra clave await se usa dentro de las funciones asíncronas para esperar a que una promesa se
resuelva. Cuando await se encuentra una promesa, la ejecución de la función se pausa hasta que la
promesa se resuelve, y luego continúa con el valor resuelto.
Legibilidad mejorada: El código se lee de manera más secuencial y lógica, similar al código síncrono
tradicional.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Manejo simplificado de errores: Se utiliza try...catch para manejar errores de manera más natural
que con .then() y .catch(). Más fácil de depurar: El flujo de control es más predecible y fácil de
rastrear, facilitando la depuración de problemas.
Objetivo de la clase:
Cookies
localStorage
sessionStorage
COOKIES
Las cookies son pequeños fragmentos de datos que los navegadores web almacenan
localmente en nombre de los sitios web. Estos datos son utilizados principalmente para recordar
información específica sobre el usuario y mantener el estado de la sesión a lo largo de múltiples
solicitudes HTTP. A continuación, se detallan los puntos clave sobre las cookies:
Propósito y Funcionalidad:
Persistencia de Datos: Las cookies permiten a los sitios web almacenar datos en el
navegador del usuario, como preferencias de configuración, información de inicio de sesión
y detalles de la sesión actual.
Personalización del Contenido: Pueden utilizarse para adaptar la experiencia del usuario
según su historial de navegación y preferencias.
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Nombre y Valor: Cada cookie tiene un nombre que actúa como identificador y un valor
asociado que contiene los datos almacenados.
Atributos Opcionales: Pueden incluir atributos como la fecha de expiración (expires o max-
age), el dominio (domain), la ruta (path), la seguridad (secure y httpOnly) y restricciones de
intercambio (sameSite).
Creación y Gestión:
Creación: Se crean desde el servidor web y se envían al navegador del cliente mediante
cabeceras HTTP. También se pueden establecer desde el lado del cliente utilizando
JavaScript.
Acceso y Modificación: Pueden ser accedidas y modificadas tanto desde el lado del cliente
(JavaScript en el navegador) como desde el servidor web, dependiendo de la necesidad y
configuración de seguridad.
Envío Automático: Las cookies se envían automáticamente al servidor web en cada solicitud HTTP
que cumpla con los criterios definidos por la cookie (dominio y ruta).
Seguridad y Privacidad:
Atributos de Seguridad: Los atributos secure y httpOnly ayudan a proteger las cookies de
accesos no autorizados y ataques de scripts maliciosos.
SameSite: Este atributo controla si las cookies deben enviarse en solicitudes de origen
cruzado, mejorando la seguridad al prevenir la exposición a sitios no confiables.
Expiración y Eliminación:
Expiración: Se puede configurar una fecha de expiración para que la cookie sea válida solo
hasta ese momento (expires o max-age).
Eliminación: Las cookies pueden ser eliminadas por el navegador automáticamente al expirar, o
pueden ser eliminadas manualmente por el usuario a través de la configuración del navegador.
Uso en Práctica:
En resumen, las cookies son herramientas esenciales para la personalización y la gestión del estado
de sesión en aplicaciones web modernas. Sin embargo, es crucial utilizarlas de manera responsable
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
y en cumplimiento con las regulaciones de privacidad para proteger los datos del usuario y
garantizar una experiencia web segura y confiable.
localStorage
Características:
Almacenamiento por dominio: Los datos son específicos del dominio y protocolo (http o
https). Esto significa que los datos almacenados por un dominio no están accesibles para
otros dominios.
Formato de datos: Los datos se almacenan en pares clave-valor como cadenas de texto
(strings). Si se necesita almacenar objetos, estos deben ser convertidos a JSON usando
[Link]() y [Link]().
// Almacenar un dato
[Link]('key', 'value');
// Recuperar un dato
// Eliminar un dato
[Link]('key');
[Link]();
Aislamiento de datos:
localStorage está aislado por dominio y protocolo. Esto significa que los datos almacenados en
[Link] no son accesibles desde [Link] o [Link]
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
sessionStorage
Características:
Persistencia: Los datos en sessionStorage solo persisten durante la sesión del navegador.
Se borran cuando la pestaña o ventana del navegador se cierra.
Almacenamiento por dominio: Similar a localStorage, los datos son específicos del dominio
y protocolo.
Formato de datos: Los datos se almacenan en pares clave-valor como cadenas de texto.
// Almacenar un dato
[Link]('key', 'value');
// Recuperar un dato
// Eliminar un dato
[Link]('key');
[Link]();
[Link]('temp', '12345');
[Link](tempValue); // 12345
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Cookies:
Persistencia: Las cookies pueden tener una fecha de expiración específica o ser temporales
(se eliminan cuando se cierra el navegador).
Almacenamiento por dominio: Las cookies son específicas del dominio y pueden ser
accesibles en subdominios si se especifica.
Envío al servidor: Las cookies se envían automáticamente al servidor en cada solicitud HTTP,
lo que no ocurre con localStorage o sessionStorage.
localStorage
Persistencia y Alcance: Los datos almacenados en localStorage son compartidos entre todas las
pestañas y ventanas del mismo navegador que cargan el mismo origen (mismo protocolo, host y
puerto).
sessionStorage
Independencia de Pestañas: Son independientes entre pestañas. Cada pestaña tiene su propio
sessionStorage separado. Si guardas, actualizas o eliminas un dato en sessionStorage en una
pestaña, estos cambios no afectarán a las otras pestañas abiertas con la misma aplicación
DIPLOMATURA EN DISEÑO WEB FULL STACK CON JAVASCRIPT
MÓDULO 02 - JAVASCRIPT
Cookies
Independencia de Pestañas: Las cookies son compartidas entre todas las pestañas y ventanas del
mismo navegador que están abiertas en el mismo dominio.
Esto significa que cualquier modificación a las cookies en una pestaña afecta a todas las demás
pestañas y ventanas abiertas bajo el mismo dominio.