JAVASCRIPT


Una función tiene esta pinta en javascript
function elevarAlCuadrado( numero ) {
return numero * numero ;
}
Cuando la creamos
var cuadrado = elevarAlCuadrado(10);
Cuando la usamos
Una función tiene esta pinta
function elevarAlCuadrado ( entrada ) {
return entrada * entrada ;
}
var numero = 12;
var resultado = elevarAlCuadrado( numero );
console.log(`${numero} al cuadrado es ${resultado}`);
¿para que nos sirven?
- Problemas mucho más pequeños.
- Nos aporta mucha semántica a nuestro código.
- Nos permite rehusar código.
- Nos evita duplicar código que luego tendríamos que mantener.
- Nos facilita el trabajo en equipo.
- Entender un código de JavaScript de 200 líneas que no usa funciones ... créeme .. que no te lo desearía ni aunque fueras mi peor enemigo
while
var nombre = prompt('Dime tu nombre');
while ( nombre === 'Miguel'){
alert('Lo siento, Miguel no puede pasar');
nombre = prompt('Dime otro nombre');
}
alert('Ahora si puedes pasar' + nombre);
Las Strings tienen funciones dentro de ellas !
En Javascript al igual que en otros lenguajes, podemos hacer muchas cosas con las strings. De hecho, tienen muchos métodos:
🤯
Funciones de las Strings
string.indexOf(string, indice)
string.lastIndexOf(string, indice)
string.includes(string, indice)
string.toLowerCase()
string.toUpperCase()
string.trim()
string.replace(string)
Objetos
Los objetos nacen con el objetivo de poder representar datos más complejos y acercarlos a la realidad.
Por ejemplo, una persona o un usuario no solo tiene nombre y no se representaría al completo con una string con su nombre, para ello creamos un objeto que tiene varias "propiedades"
var usuario = {
nombre : 'Yunior',
edad : 26,
email : 'yunior@squaads.com',
}
Objetos
var usuario = {
nombre : 'Yunior',
edad : 23,
email : 'yunior@squaads.com'
}
var nombre = usuario.nombre;
var edad = usuario.edad;
console.log("El usuario se llama " + nombre +
"y tiene " + edad + " años");
Arrays
var frutas = [ "peras" , "manzanas" , "platanos"];
console.log( 'La primera fruta es ' + frutas[0]);
console.log( 'La segunda fruta es ' + frutas[1]);
console.log( 'La tercera fruta es ' + frutas[2]);
console.log(frutas);
Al igual que en otros lenguajes, las posiciones van desde el cero hasta el tamaño menos 1.
Si tenemos 5 elementos => 0 , 1 , 2 , 3 y 4
Arrays. Introducir valores
var frutas = [ "peras" , "manzanas" , "plátanos"];
frutas.push('kiwi'); // 4
console.log(frutas); // ["peras" , "manzanas" , "plátanos", "kiwi"]
frutas.pop(); // "kiwi"
console.log(frutas); // ["peras" , "manzanas" , "plátanos"]
El bucle for
var frutas = [ "peras" , "manzanas" , "platanos"];
for ( var indice = 0 ; indice < frutas.length ; indice++){
console.log("La fruta es " + frutas[indice] );
}
for ( var indice = 0 ; indice < 3 ; indice++ )
Inicialización
condición
nuevo estado
El bucle for
var frutas = [ "peras" , "manzanas" , "platanos"];
var numeroFrutas = frutas.length;
for (var pos = 0; pos < numeroFrutas ; pos++){
var fruta = frutas[pos];
var numero = pos + 1;
console.log("La fruta número " + numero + " es " + fruta);
}
while para recorrer arrays
var frutas = ["plátanos", "manzanas" , "peras"]
var contador = 0;
while ( contador < frutas.length ){
var fruta = frutas[contador];
alert("Fruta encontrada: " + fruta);
contador++;
}
¡IMPORTANTÍSIMO!
Cuidado con los bucles infinitos y los whiles. Muchas RAM han muerto en el intento de hacer diapos como estas

Hemos visto
Variables primitivas (boolean, number, string)
Estructuras de control (el if y el switch)
el bucle for y el while
los Arrays
y las funciones
otro bucle más el forEach()
El forEach es un bucle que nos permite recorrer de manera MUCHO MÁS SENCILLA un array
AUNQUE TE AVISO, LA PRIMERA VEZ TE VA A ASUSTAR ;) AVISADO QUEDAS
foreach()
var users = [ "Yunior", "Miguel" ];
users.forEach( function (user) {
console.log(user);
});
El método forEach() ejecuta la función indicada una vez por cada elemento del array.
foreach()
var users = [ "Yunior", "Miguel" ];
users.forEach( function (user, indice) {
console.log(`usuario = ${user}`);
console.log(`posicion = ${indice}`);
});
Si necesito usar la posición, puedo pedirle al forEach que me diga las posiciones.
Para eso, le indico una función con dos parámetros.
Ejemplo
var dnis = [ "44552342B", "12345678A" ];
dnis.forEach( function (dni) {
if (dni == "12345678A"){
alert('Te encontré');
}
});
Recorrer los DNIs y si encuentro el 12345678A muestra un mensaje
Ejemplo
var dnis = [ "44552342B", "12345678A" ];
dnis.forEach( function (dni, indice) {
if (dni == "12345678A"){
dnis.splice(indice, 1);
}
});
Recorrer los DNIS y si encuentro el 12345678A lo borramos
¡ TIEMPO DE KATAS !
A programar
callbacks
callback
Un callback (llamada de vuelta) es una función que recibe como argumento otra función para ejecutarla más tarde.
En el siguiente ejemplo, la función foo recibe por parámetro otra función, que es el callback. La función foo es la encargada de ejecutar el callback.
function foo(callback) {
//do something
callback();
}
callback
En el siguiente ejemplo, la función foo recibe por parámetro otra función, que es el callback. La función foo es la encargada de ejecutar el callback.
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar)

Que pasa .. si ¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
¿?
Que pasa .. si ¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
¿?

Que pasa .. si ¿?
¿?

Que está mal?

Que está mal?
¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
Que está mal?
¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
Ahora mezclemos
Array + funciones
foreach()
var users = [ "Yunior", "Miguel" ];
users.forEach( function (user) {
console.log(user);
});
El método forEach() ejecuta la función indicada una vez por cada elemento del array.
foreach()
var users = [ "Yunior", "Miguel" ];
function muestroPorConsola(algo){
console.log(algo);
}
users.forEach(muestroPorConsola);
El método forEach() ejecuta la función indicada una vez por cada elemento del array.
foreach()
var users = [ "Yunior", "Miguel" ];
function muestroPorConsola(algo){
console.log(algo);
}
users.forEach(muestroPorConsola());
El método forEach() ejecuta la función indicada una vez por cada elemento del array.
¿y esta?
var users = [ "Yunior", "Miguel" ];
function muestroPorConsola(algo){
console.log(algo);
}
users.forEach(muestroPorConsola);
foreach()
var users = [ "Yunior", "Miguel" ];
users.forEach( function (user) {
console.log(user);
});
Live coding
¡ A trabajar !
Clonate de nuevo este repositorio en una carpeta nueva
https://github.com/YuniorGlez/dia-01-javascript
Sitúate luego en la rama que se llama teaching/04-repaso-funciones-objetos-arrays-callbacks


Ya no hay más teoría sobre variables, bucles, arrays, funciones, objetos, etc.
¡ Ahora toca hacer dinámica nuestra web con todo esto que sabemos !
MANIPULACIÓN DEL DOM/HTML

JavaScript y las variables globales
Cuando desarrollamos una web, podemos acceder a unas determinadas variables y funciones que ya están creadas por defecto.
Por ejemplo, cuando usábamos el console.log() o el alert eran funciones globales
Document
var nuestraWeb = document.body;
nuestraWeb.innerHTML = `<h1> Nuevo HTML</h1>`
var mensaje = "Mi nombre";
mensaje = mensaje + ' no es ';
mensaje += 'Miguel';
console.log(mensaje) // Mi nombre no es Miguel
Pausa informativa
innerHTML + getElementById
var results = document.getElementById('results');
var numero = 25;
results.innerHTML += `<p> Nuevo resultado = ${numero}</p>`;
<body>
<div id="results">
<h1> Zona de resultados <h1>
</div>
</body>
innerHTML + getElementById
var displaySection = document.getElementById('display');
var username = prompt(`Hola, ¿cómo te llamas?`);
displaySection.innerHTML += `<h1> Bienvenido ${username}</h1>`;
<body>
<div id="display"></div>
</body>

Ejercicio
Crea dos elementos en el HTML con los identificadores que prefieras para poder acceder a ellos desde javascript luego. Pídele al usuario su nombre y luego su edad. Añade a uno de los dos elementos de la pantalla un mensaje de bienvenida con su nombre y con un formato de <h2>. En el otro bloque, añade un mensaje de 'No deberías entrar a esta web si eres menor de edad, ¿estás seguro?' y además dos botones (<button>) uno que ponga SI y otro NO. (añádelo solamente si era menor de 18)
Ejercicio
Crea un elemento en el HTML con el identificador 'listaDeFrutas'
Crea un array vacío que se llamará frutas. INVESTIGA como crear un array vacío si no lo sabes ;) #GoogleIsYourFriend
Pídele al usuario que introduzca sus 3 frutas favoritas y ve añadiéndolas al array
Ahora viene lo bueno ;) en ese elemento que hay en el DOM, añade una lista dónde aparezcan cada una de las frutas y una cabezera que diga 'Estas son tus frutas favoritas:'

Extra
onClick="metodo()"
<button onClick="peligro()"> ¡ NO ME PULSES ! </button>
function peligro(){
alert('Peligro !!');
}
onClick="metodo(value)"
<li class="user"
onClick="userSelected('Pepe')">
<h2>Pepe</h2>
</li>
function userSelected(username){
console.log(username);
}
En grupos
Volvemos al piedra papel tijeras
Ahora que sabes imprimir en el DOM usando el innerHTML y ahora que sabes detectar clicks.
¿Te animas a hacer un Piedra Papel y Tijeras con interfaz?
Curso de Frontend EOI-Telefonica Noviembre 2024. Javascript Quinto día :) ¿LA DESTRUCCION?
By Yunior González Santana
Curso de Frontend EOI-Telefonica Noviembre 2024. Javascript Quinto día :) ¿LA DESTRUCCION?
Quinto día de Javascript del curso de "EOI Telefónica Noviembre 2024" online.
- 152