SlideShare una empresa de Scribd logo
1 de 53
JavaScript - JS 
Teórico
Definición 
• Lenguaje de programación interpretado, 
imperativo, orientado a objetos, basado en 
prototipos y débilmente tipado. 
• Implementado en todos los navegadores. 
• Client-side = corre en el cliente web.
Interpretado 
• Se lee una instrucción, se la analiza y traduce a 
código de máquina, se la ejecuta, se lee la 
siguiente instrucción. 
Interpretado vs Compilado 
Compilado: todo el programa no una 
instrucción.
Imperativo 
• Un programa imperativo es un conjunto de 
instrucciones que le indican a la máquina 
como realizar una tarea. Mantienen un estado 
y las instrucciones cambian dicho estado. 
• Es estructurado.
Orientado a Objetos 
• Permite definir variables tipo objetos que 
implementan estados y acciones para 
modificarlos. 
• Los objetos en JS son arrays asociativos tipo 
atributo: valor; 
• Pero no es Smalltalk/Java. La ejecución es 
imperativa no basada en objetos.
Objetos - Herencia 
• No hay herencia en los objetos de JS, la 
prototipación permite la instanciación de 
nuevas instancias. 
• No existe el concepto de “superclase”.
Débilmente Tipado 
Var a = “hola”; 
a = a + 1; 
Y además es interpretado…
Dinámico 
• Versátil: puedo definir el tipo que desee en el 
momento que desee. 
• Soporta recursividad, 
• Soporta funciones notación lambda.
Sintáxis 
• Instrucción finaliza “;” 
• Una instrucción una sentencia. 
• Varias instrucciones en una misma línea 
separadas por “;”. 
var a = 0; 
a = a + 1;
Identificadores 
• Los identificadores o nombres variables JS 
empiezan con: 
– letra 
– _ 
– $ 
– Resto cualquiera de los anteriores. 
• Case Sensitive.
Tipos de Datos 
• Cadenas: “hola” 
• Numéricos ( 
– Sin decimales: 1,2,3,… 
– Con Decimales: 3.14159 
– Notación exponencial base 10: 123e3 = 123000 
– Boolean: true / false
Tipos de Datos 
• Arreglos / Arrays – 1er elemento índice 0 
var frutas = new Array(); 
frutas[0] = “manzana”; 
frutas[1] = “naranja”; 
frutas[2] = “pera”; 
var frutas = [“manzana”, “naranja”, “pera”];
Tipos de Datos 
• Objetos: 
var profesor = { 
legajo: 123456, 
nombre: “Daniel”, 
curso: “Programador Web”, 
turno: “N” 
} 
profesor.nombre = “Daniel” 
profesor[“nombre”]
Undefined / Null / New 
• undefined: la variable no tiene valor alguno. 
• null: el valor de la variable es vacío (nulo). 
• new: crea una variable tipo objeto. 
– Puedo crear variables objetos a partir de tipos 
básicos: 
• Var numero = new Number(); 
• Var booleano = new Boolean(); 
• Var cadena = new String();
Operadores 
Operador Descripción Valor de y Operación Valor de x 
+ Suma 5 x = y + 2 7 
- Resta 5 x = y - 2 3 
* Multiplicación 5 x = y * 2 10 
/ División 5 x = y / 2 2.5 
% Resto división 5 x = y % 2 1 
-- Decrementar Dado y=5 
4 
4 
4 
y-- 
x = --y 
x = y-- 
4 
5 
++ Incrementar Dado y=5 
6 
6 
6 
y++ 
x = ++y 
x = y++ 
6 
5
Operadores con Asignación 
Operador Operación Valor x Valor y Resultado Equivale a 
= x = y 10 5 x = 5 
+= x+=y 10 5 x = 15 x = x + y 
-= x-=y 10 5 x = 5 x = x – y 
*= x*=y 10 5 x = 50 x = x * y 
/= x/=y 10 5 x = 2 x = x / y 
%= x%= 10 5 x = 0 x = x % y
Suma de Cadenas 
var a = “a”; 
var b = “b”; 
var c = “c”; 
var d = a + b + c; // d = “abc” 
d = a + 7; // “a7” 
var e = 7; 
e = e + 5; // 12 
e = e + a; // “12a” 
Una cadena + un número = otra cadena 
Un número + una cadena = otra cadena
Operadores Comparación 
Comparación Tipo Valor x Valor y Resultado 
== Igual 5 5 true 
!= Distinto 5 5 false 
< Menor 5 7 true 
<= Menor o igual 5 7 true 
> Mayor 5 7 false 
>= Mayor o igual 5 7 false
Operadores Comparación II 
Operación Comparación x Y Resultado 
=== Igual en tipo y valor 5 5 true 
5 “5” false 
!== Distinto en tipo y valor 5 5 false 
5 “5” true
Operadores Lógicos 
Operación Descripción 
&& and 
|| or 
! not
Estructuras 
• Decisión 
– Nos permiten ejecutar una serie de acciones 
basándonos en el valor de verdad de una 
condición lógica. 
• Repetición 
– Nos permiten ejecutar una serie de acciones un 
número fijo de veces o mientras se cumpla una 
condición lógica.
Estructuras de Decisión 
if condición { 
sentencias a ejecutar si condición es true 
} 
else { 
sentencias a ejecutar si condición es false 
}
Estructuras de Decisión 
if (hora<12) { 
hora = hora + “ AM”; 
} 
else { 
hora = hora + “ PM”; 
}
Estructuras de Decisión 
if condición { 
sentencias a ejecutar si condición es true 
} 
else if condicion2 { 
sentencias a ejecutar si condicion2 es true 
} 
else{ 
sentencias a ejecutar si condicion2 es false 
}
Estructuras de Decisión 
if condición { 
x = x + y; 
}else{ 
x = x – y; 
} 
x = (condición) ? x + y : x – y ;
Estructuras de Decisión 
switch(n) { 
case 1: 
sentencias… 
break; 
case 2: 
sentencias… 
break; 
default: 
sentencias… 
}
Estructuras de Decisión 
switch (nro_de_mes) { 
case 1: 
nombremes = “Enero”; 
break; 
case 2: 
nombremes = “Enero”; 
break; 
case 3: 
nombremes = “Marzo”; 
break; 
… 
case 11: 
nombremes = “Noviembre”; 
break; 
default: 
nombremes = “Diciembre”; 
}
Estructuras de Repetición 
• for : repite un bloque de sentencias un 
número finito de veces. 
• for/in : itera sobre las propiedades de un 
objeto. 
• While : repite un bloque de sentencias 
mientras una condición evalue a true. 
• do/while : idem.
Estructuras de Repetición 
document.write(“Hoy es Domingo”); 
document.write(“Hoy es Lunes”); 
document.write(“Hoy es Martes”); 
document.write(“Hoy es Miércoles”); 
document.write(“Hoy es Jueves”); 
document.write(“Hoy es Viernes”); 
document.write(“Hoy es Sábado”);
Estructuras de Repetición 
for ( sentencia1; sentencia2; sentencia3) { 
bloque de sentencias; 
} 
sentencia1: se ejecuta antes que todo. 
sentencia2: se ejecuta antes del bloque y si evalúa a 
true el bloque se ejecuta. 
sentencia3: se ejecuta una vez ejecutado el bloque.
Estructuras de Repetición 
var dias = [“Domingo”, “Lunes”, “Martes”, “Miércoles”, “Jueves”, “Viernes”, 
“Sábado”]; 
For (var i=0; i<=6; i++) { 
document.write( “Hoy es ” + dias[i] ); 
}
Estructuras de Repetición 
for ( var in objeto) { 
sentencias con var 
} 
Recorre los atributos de objeto, uno por uno.
Estructuras de Repetición 
var profesor = { 
legajo: 123456, 
nombre: “Daniel”, 
curso: “Programador Web”, 
turno: “N” 
} 
for (var datosprofe in profesor) { 
document.write(profesor[datosprofe]); 
} 
12345 Daniel Programador Web N 
jsforinobj.html
Estructuras de Repetición 
While condición { 
sentencias… 
} 
Mientras condición sea true se ejecutarán las 
sentencias.
Estructuras de Repetición 
var i = 1; 
while (i<3) { 
document.write(“Este es el paso: " + i ); 
i++; 
}
Estructuras de Repetición 
var i = 1; 
do { 
document.write(“Este es el paso: " + i ); 
i++; 
} while (i<3);
Estructuras de Repetición 
while { } vs do { } while(); 
Cuidado con la condición ya que do{} se ejecuta 
al menos una vez!. 
Probar los ejemplos anteriores con la condición i<1
Estructuras de Repetición 
• break: nos permite interrumpir la ejecución de 
pasos dentro del ciclo de iteraciones. 
for (var i=0; i<10; i++) { 
if (i==3) break; 
document.write(“Paso: ” + i); 
} 
Cuando i=3 se interrumpe el ciclo.
Estructuras de Repetición 
• continue: nos permite interrumpir la ejecución 
de un paso en un ciclo continuando con el 
siguiente. 
for (var i=0; i<10; i++) { 
if (i==3) continue; 
document.write(“Paso: ” + i); 
} 
Cuando i=3 no se imprime “Paso: 3”
Control de Ejecución 
• Etiquetas “break” y “continue” 
Se etiqueta un conjunto de sentencias y se 
puede interrumpir la ejecución de dicho grupo 
“break” o se puede pasar a ejecutarlas 
“continue”. 
continue se usa solo dentro de loops.
Control de Ejecución 
• Ejemplo break etiquetado 
outerloop: 
for (var i = 0; i < 5; i++) { 
document.write( “i=” + i ); 
innerloop: 
for (var j = 0; j < 5; j++) { 
if (j > 3 ) break ; // continua con el siguiente paso del loop 
if (i == 2) break innerloop; // salta a innerloop 
if (i == 4) break outerloop; // salta a outerloop 
document.write( “j=” + j ); 
} 
} 
breaklabeled.html
Control de Ejecución 
• Ejemplo de continue etiquetado: 
outerloop: 
for (var i = 0; i < 3; i++) { 
document.write("Outerloop: " + i + "<br />"); 
for (var j = 0; j < 5; j++) { 
if (j == 3){ 
continue outerloop; 
} 
document.write("Innerloop: " + j + "<br />"); 
} 
}
Errores 
Durante la ejecución de un script pueden surgir 
errores: 
- Sintáxis, 
- Funciones no presentes en un navegador, 
- Datos ingresados por un usuario, 
- Datos recibidos desde un servidor.
Errores 
Los errores pueden capturarse para evitar que 
se interrumpa la ejecución del script. 
try 
{ 
sentencias…si se produce un error… 
} 
catch(err) { 
//error la ejecución continúa en el bloque catch 
} 
err: código de error – err.message: descripción del error.
Funciones Predefinidas 
• Para números 
isNaN(x): x is Not a Number? 
Number(x): x convertido a objeto Number. 
x.toString(): representación string de x. 
x.valueOf(): valor numérico de x. 
x.toPrecision(2): formatea x a 2 dígitos. 
typeOf(x): devuelve el tipo de x.
Funciones Predefinidas 
• Para fechas: se utiliza el objeto Date 
New Date(): devuelve un objeto fecha. 
Date.getDate(): el día del mes (1-31). 
Date.getDay(): el día de la semana (0-6 // dom-sáb). 
Date.getHours(): la hora actual (hh). 
Date.getMonth(): el mes (número). 
Date.getFullYear(): año 4 dígitos. 
Date.toString(): formato completo 
Wed Apr 09 2014 22:00:00 GMT-0300 (Hora est. de Sudamérica E.)
Funciones Predefinidas 
• Para Strings 
String.length: longitud de la cadena. 
String.charAt(n): devuelve el carácter en la posición “n” 
indicada. 
String.indexOf(“c”): devuelve la primera posición del carácter “c” 
en string. 
String.concat(): concatena dos cadenas.
Strings continuación 
String.substring(j, h): devuelve una subcadena de string, 
empezando en la posición “j” y finalizando en contando “h” 
sin incluir dicho caracter. 
String.toLowerCase(): la cadena a minúsculas. 
String.toUpperCase(): la cadena a mayúsculas. 
String.trim(): la cadena sin espacios.
Funciones Predefinidas 
• Para arrays 
Array.Concat(array2): concatena “array2” a continuación de 
Array. 
Array.indexOf(elemento): busca el “elemento” en Array y 
devuelve la posición. 
Array.pop(): devuelve el último elemento de Array y lo remueve 
de Array. 
Array.push(elemento): inserta “elemento” al final del Array.
Funciones User-defined 
• Funciones sin devolución de valor (sin return) 
o Procedimientos: 
function ImprimirHola() { 
document.write(“Hola”); 
}
Funciones User-defined 
• Funciones con devolución de valor (return un 
valor): 
function SumaUno(j) { 
return j++; 
} 
x = SumaUno(x);
Scope de Variables 
• Las variables son válidas dentro del módulo 
donde se las declara. 
• Una variable global tiene scope global, puede 
estar definida en cualquier lugar dentro del 
script. 
• Las variables locales son las definidas dentro 
de funciones. Tienen scope (local) dentro de la 
misma función.
JS Ejercicios 
1. Dados 2 arreglos, generar un tercero que 
contenga los 2 primeros. 
2. Dado un arreglo con números devolver el 
mayor valor contenido en el arreglo. 
3. Dado un arreglo con cadenas, devolver la 
cadena más larga dentro del arreglo. 
4. Dada una fecha mostrarla en formato 
generar el string: “Hoy es día de mes de 
año.”

Más contenido relacionado

La actualidad más candente

Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datosjubacalo
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 
Sincronizar Threads
Sincronizar ThreadsSincronizar Threads
Sincronizar Threadsjubacalo
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2xjordi
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrenteedgar muñoz
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Pooflekoso
 
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...flekoso
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc X
 
Java ArrayList Iterator
Java ArrayList IteratorJava ArrayList Iterator
Java ArrayList Iteratorjubacalo
 
Java HashMap
Java HashMapJava HashMap
Java HashMapjubacalo
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignacionesflekoso
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 

La actualidad más candente (20)

Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
 
Documento Margarita
Documento MargaritaDocumento Margarita
Documento Margarita
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Sincronizar Threads
Sincronizar ThreadsSincronizar Threads
Sincronizar Threads
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrente
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Poo
 
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuos
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)
 
Java ArrayList Iterator
Java ArrayList IteratorJava ArrayList Iterator
Java ArrayList Iterator
 
Java HashMap
Java HashMapJava HashMap
Java HashMap
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Codigo
CodigoCodigo
Codigo
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignaciones
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 

Similar a Javascript

Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...
Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...
Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...TestingUy
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
Resumen Java Script
Resumen Java ScriptResumen Java Script
Resumen Java Scriptjlgomezri
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticasjaespinmora
 
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
6-Unidad 1. Paradigma de la Programación-Orientación a ObjetosLuis Fernando Aguas Bucheli
 
Javascript 1
Javascript 1Javascript 1
Javascript 1Juan C
 
Programar java
Programar javaProgramar java
Programar javavloor
 
C curso intr
C curso intr C curso intr
C curso intr leo24012
 
Clase 2 3 estructuras de control
Clase 2 3 estructuras de controlClase 2 3 estructuras de control
Clase 2 3 estructuras de controlBoOriz Hero
 
Programar java
Programar javaProgramar java
Programar javavloor
 
Java script(diapositivas)
Java script(diapositivas) Java script(diapositivas)
Java script(diapositivas) Roberto Mejia
 
¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?Agustin Ramos
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 
Por que java
Por que javaPor que java
Por que javareivax
 
No hagas ahora lo que puedes dejar para otro momento (Celery)
No hagas ahora lo que puedes dejar para otro momento (Celery)No hagas ahora lo que puedes dejar para otro momento (Celery)
No hagas ahora lo que puedes dejar para otro momento (Celery)⌨ Antonio Páez Gutiérrez
 

Similar a Javascript (20)

Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...
Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...
Charla evento TestingUY 2015 - Property-Based Testing Usando Quickcheck, o có...
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Resumen Java Script
Resumen Java ScriptResumen Java Script
Resumen Java Script
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
 
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
 
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
6-Unidad 1. Paradigma de la Programación-Orientación a Objetos
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Programar java
Programar javaProgramar java
Programar java
 
C curso intr
C curso intr C curso intr
C curso intr
 
Clase 2 3 estructuras de control
Clase 2 3 estructuras de controlClase 2 3 estructuras de control
Clase 2 3 estructuras de control
 
Programar java
Programar javaProgramar java
Programar java
 
Java script(diapositivas)
Java script(diapositivas) Java script(diapositivas)
Java script(diapositivas)
 
Taller completo
Taller completoTaller completo
Taller completo
 
¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Módulo de PHP
Módulo de PHPMódulo de PHP
Módulo de PHP
 
Por que java
Por que javaPor que java
Por que java
 
No hagas ahora lo que puedes dejar para otro momento (Celery)
No hagas ahora lo que puedes dejar para otro momento (Celery)No hagas ahora lo que puedes dejar para otro momento (Celery)
No hagas ahora lo que puedes dejar para otro momento (Celery)
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 

Último

Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx46828205
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.imejia2411
 
Historia de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellaHistoria de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellajuancamilo3111391
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptxadso2024sena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
locomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minaslocomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minasMirkaCBauer
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxRodriguezLucero
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx241532171
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdfFAUSTODANILOCRUZCAST
 

Último (18)

Producto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptxProducto académico 03 - Habilidades Comunicativas.pptx
Producto académico 03 - Habilidades Comunicativas.pptx
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.MODELO CARACTERIZACION DE PROCESOS SENA.
MODELO CARACTERIZACION DE PROCESOS SENA.
 
Historia de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ellaHistoria de la Medicina y bases para desarrollo de ella
Historia de la Medicina y bases para desarrollo de ella
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx3Mayo2023 Taller construcción de Prototipos.pptx
3Mayo2023 Taller construcción de Prototipos.pptx
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
locomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minaslocomotas v siclo.ppt de ingenieria de minas
locomotas v siclo.ppt de ingenieria de minas
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptxPRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsxactividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
actividad.06_crea_un_recurso_multimedia_M01_S03_M01.ppsx
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 
libro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdflibro de Ciencias Sociales_6to grado.pdf
libro de Ciencias Sociales_6to grado.pdf
 

Javascript

  • 1. JavaScript - JS Teórico
  • 2. Definición • Lenguaje de programación interpretado, imperativo, orientado a objetos, basado en prototipos y débilmente tipado. • Implementado en todos los navegadores. • Client-side = corre en el cliente web.
  • 3. Interpretado • Se lee una instrucción, se la analiza y traduce a código de máquina, se la ejecuta, se lee la siguiente instrucción. Interpretado vs Compilado Compilado: todo el programa no una instrucción.
  • 4. Imperativo • Un programa imperativo es un conjunto de instrucciones que le indican a la máquina como realizar una tarea. Mantienen un estado y las instrucciones cambian dicho estado. • Es estructurado.
  • 5. Orientado a Objetos • Permite definir variables tipo objetos que implementan estados y acciones para modificarlos. • Los objetos en JS son arrays asociativos tipo atributo: valor; • Pero no es Smalltalk/Java. La ejecución es imperativa no basada en objetos.
  • 6. Objetos - Herencia • No hay herencia en los objetos de JS, la prototipación permite la instanciación de nuevas instancias. • No existe el concepto de “superclase”.
  • 7. Débilmente Tipado Var a = “hola”; a = a + 1; Y además es interpretado…
  • 8. Dinámico • Versátil: puedo definir el tipo que desee en el momento que desee. • Soporta recursividad, • Soporta funciones notación lambda.
  • 9. Sintáxis • Instrucción finaliza “;” • Una instrucción una sentencia. • Varias instrucciones en una misma línea separadas por “;”. var a = 0; a = a + 1;
  • 10. Identificadores • Los identificadores o nombres variables JS empiezan con: – letra – _ – $ – Resto cualquiera de los anteriores. • Case Sensitive.
  • 11. Tipos de Datos • Cadenas: “hola” • Numéricos ( – Sin decimales: 1,2,3,… – Con Decimales: 3.14159 – Notación exponencial base 10: 123e3 = 123000 – Boolean: true / false
  • 12. Tipos de Datos • Arreglos / Arrays – 1er elemento índice 0 var frutas = new Array(); frutas[0] = “manzana”; frutas[1] = “naranja”; frutas[2] = “pera”; var frutas = [“manzana”, “naranja”, “pera”];
  • 13. Tipos de Datos • Objetos: var profesor = { legajo: 123456, nombre: “Daniel”, curso: “Programador Web”, turno: “N” } profesor.nombre = “Daniel” profesor[“nombre”]
  • 14. Undefined / Null / New • undefined: la variable no tiene valor alguno. • null: el valor de la variable es vacío (nulo). • new: crea una variable tipo objeto. – Puedo crear variables objetos a partir de tipos básicos: • Var numero = new Number(); • Var booleano = new Boolean(); • Var cadena = new String();
  • 15. Operadores Operador Descripción Valor de y Operación Valor de x + Suma 5 x = y + 2 7 - Resta 5 x = y - 2 3 * Multiplicación 5 x = y * 2 10 / División 5 x = y / 2 2.5 % Resto división 5 x = y % 2 1 -- Decrementar Dado y=5 4 4 4 y-- x = --y x = y-- 4 5 ++ Incrementar Dado y=5 6 6 6 y++ x = ++y x = y++ 6 5
  • 16. Operadores con Asignación Operador Operación Valor x Valor y Resultado Equivale a = x = y 10 5 x = 5 += x+=y 10 5 x = 15 x = x + y -= x-=y 10 5 x = 5 x = x – y *= x*=y 10 5 x = 50 x = x * y /= x/=y 10 5 x = 2 x = x / y %= x%= 10 5 x = 0 x = x % y
  • 17. Suma de Cadenas var a = “a”; var b = “b”; var c = “c”; var d = a + b + c; // d = “abc” d = a + 7; // “a7” var e = 7; e = e + 5; // 12 e = e + a; // “12a” Una cadena + un número = otra cadena Un número + una cadena = otra cadena
  • 18. Operadores Comparación Comparación Tipo Valor x Valor y Resultado == Igual 5 5 true != Distinto 5 5 false < Menor 5 7 true <= Menor o igual 5 7 true > Mayor 5 7 false >= Mayor o igual 5 7 false
  • 19. Operadores Comparación II Operación Comparación x Y Resultado === Igual en tipo y valor 5 5 true 5 “5” false !== Distinto en tipo y valor 5 5 false 5 “5” true
  • 20. Operadores Lógicos Operación Descripción && and || or ! not
  • 21. Estructuras • Decisión – Nos permiten ejecutar una serie de acciones basándonos en el valor de verdad de una condición lógica. • Repetición – Nos permiten ejecutar una serie de acciones un número fijo de veces o mientras se cumpla una condición lógica.
  • 22. Estructuras de Decisión if condición { sentencias a ejecutar si condición es true } else { sentencias a ejecutar si condición es false }
  • 23. Estructuras de Decisión if (hora<12) { hora = hora + “ AM”; } else { hora = hora + “ PM”; }
  • 24. Estructuras de Decisión if condición { sentencias a ejecutar si condición es true } else if condicion2 { sentencias a ejecutar si condicion2 es true } else{ sentencias a ejecutar si condicion2 es false }
  • 25. Estructuras de Decisión if condición { x = x + y; }else{ x = x – y; } x = (condición) ? x + y : x – y ;
  • 26. Estructuras de Decisión switch(n) { case 1: sentencias… break; case 2: sentencias… break; default: sentencias… }
  • 27. Estructuras de Decisión switch (nro_de_mes) { case 1: nombremes = “Enero”; break; case 2: nombremes = “Enero”; break; case 3: nombremes = “Marzo”; break; … case 11: nombremes = “Noviembre”; break; default: nombremes = “Diciembre”; }
  • 28. Estructuras de Repetición • for : repite un bloque de sentencias un número finito de veces. • for/in : itera sobre las propiedades de un objeto. • While : repite un bloque de sentencias mientras una condición evalue a true. • do/while : idem.
  • 29. Estructuras de Repetición document.write(“Hoy es Domingo”); document.write(“Hoy es Lunes”); document.write(“Hoy es Martes”); document.write(“Hoy es Miércoles”); document.write(“Hoy es Jueves”); document.write(“Hoy es Viernes”); document.write(“Hoy es Sábado”);
  • 30. Estructuras de Repetición for ( sentencia1; sentencia2; sentencia3) { bloque de sentencias; } sentencia1: se ejecuta antes que todo. sentencia2: se ejecuta antes del bloque y si evalúa a true el bloque se ejecuta. sentencia3: se ejecuta una vez ejecutado el bloque.
  • 31. Estructuras de Repetición var dias = [“Domingo”, “Lunes”, “Martes”, “Miércoles”, “Jueves”, “Viernes”, “Sábado”]; For (var i=0; i<=6; i++) { document.write( “Hoy es ” + dias[i] ); }
  • 32. Estructuras de Repetición for ( var in objeto) { sentencias con var } Recorre los atributos de objeto, uno por uno.
  • 33. Estructuras de Repetición var profesor = { legajo: 123456, nombre: “Daniel”, curso: “Programador Web”, turno: “N” } for (var datosprofe in profesor) { document.write(profesor[datosprofe]); } 12345 Daniel Programador Web N jsforinobj.html
  • 34. Estructuras de Repetición While condición { sentencias… } Mientras condición sea true se ejecutarán las sentencias.
  • 35. Estructuras de Repetición var i = 1; while (i<3) { document.write(“Este es el paso: " + i ); i++; }
  • 36. Estructuras de Repetición var i = 1; do { document.write(“Este es el paso: " + i ); i++; } while (i<3);
  • 37. Estructuras de Repetición while { } vs do { } while(); Cuidado con la condición ya que do{} se ejecuta al menos una vez!. Probar los ejemplos anteriores con la condición i<1
  • 38. Estructuras de Repetición • break: nos permite interrumpir la ejecución de pasos dentro del ciclo de iteraciones. for (var i=0; i<10; i++) { if (i==3) break; document.write(“Paso: ” + i); } Cuando i=3 se interrumpe el ciclo.
  • 39. Estructuras de Repetición • continue: nos permite interrumpir la ejecución de un paso en un ciclo continuando con el siguiente. for (var i=0; i<10; i++) { if (i==3) continue; document.write(“Paso: ” + i); } Cuando i=3 no se imprime “Paso: 3”
  • 40. Control de Ejecución • Etiquetas “break” y “continue” Se etiqueta un conjunto de sentencias y se puede interrumpir la ejecución de dicho grupo “break” o se puede pasar a ejecutarlas “continue”. continue se usa solo dentro de loops.
  • 41. Control de Ejecución • Ejemplo break etiquetado outerloop: for (var i = 0; i < 5; i++) { document.write( “i=” + i ); innerloop: for (var j = 0; j < 5; j++) { if (j > 3 ) break ; // continua con el siguiente paso del loop if (i == 2) break innerloop; // salta a innerloop if (i == 4) break outerloop; // salta a outerloop document.write( “j=” + j ); } } breaklabeled.html
  • 42. Control de Ejecución • Ejemplo de continue etiquetado: outerloop: for (var i = 0; i < 3; i++) { document.write("Outerloop: " + i + "<br />"); for (var j = 0; j < 5; j++) { if (j == 3){ continue outerloop; } document.write("Innerloop: " + j + "<br />"); } }
  • 43. Errores Durante la ejecución de un script pueden surgir errores: - Sintáxis, - Funciones no presentes en un navegador, - Datos ingresados por un usuario, - Datos recibidos desde un servidor.
  • 44. Errores Los errores pueden capturarse para evitar que se interrumpa la ejecución del script. try { sentencias…si se produce un error… } catch(err) { //error la ejecución continúa en el bloque catch } err: código de error – err.message: descripción del error.
  • 45. Funciones Predefinidas • Para números isNaN(x): x is Not a Number? Number(x): x convertido a objeto Number. x.toString(): representación string de x. x.valueOf(): valor numérico de x. x.toPrecision(2): formatea x a 2 dígitos. typeOf(x): devuelve el tipo de x.
  • 46. Funciones Predefinidas • Para fechas: se utiliza el objeto Date New Date(): devuelve un objeto fecha. Date.getDate(): el día del mes (1-31). Date.getDay(): el día de la semana (0-6 // dom-sáb). Date.getHours(): la hora actual (hh). Date.getMonth(): el mes (número). Date.getFullYear(): año 4 dígitos. Date.toString(): formato completo Wed Apr 09 2014 22:00:00 GMT-0300 (Hora est. de Sudamérica E.)
  • 47. Funciones Predefinidas • Para Strings String.length: longitud de la cadena. String.charAt(n): devuelve el carácter en la posición “n” indicada. String.indexOf(“c”): devuelve la primera posición del carácter “c” en string. String.concat(): concatena dos cadenas.
  • 48. Strings continuación String.substring(j, h): devuelve una subcadena de string, empezando en la posición “j” y finalizando en contando “h” sin incluir dicho caracter. String.toLowerCase(): la cadena a minúsculas. String.toUpperCase(): la cadena a mayúsculas. String.trim(): la cadena sin espacios.
  • 49. Funciones Predefinidas • Para arrays Array.Concat(array2): concatena “array2” a continuación de Array. Array.indexOf(elemento): busca el “elemento” en Array y devuelve la posición. Array.pop(): devuelve el último elemento de Array y lo remueve de Array. Array.push(elemento): inserta “elemento” al final del Array.
  • 50. Funciones User-defined • Funciones sin devolución de valor (sin return) o Procedimientos: function ImprimirHola() { document.write(“Hola”); }
  • 51. Funciones User-defined • Funciones con devolución de valor (return un valor): function SumaUno(j) { return j++; } x = SumaUno(x);
  • 52. Scope de Variables • Las variables son válidas dentro del módulo donde se las declara. • Una variable global tiene scope global, puede estar definida en cualquier lugar dentro del script. • Las variables locales son las definidas dentro de funciones. Tienen scope (local) dentro de la misma función.
  • 53. JS Ejercicios 1. Dados 2 arreglos, generar un tercero que contenga los 2 primeros. 2. Dado un arreglo con números devolver el mayor valor contenido en el arreglo. 3. Dado un arreglo con cadenas, devolver la cadena más larga dentro del arreglo. 4. Dada una fecha mostrarla en formato generar el string: “Hoy es día de mes de año.”