JAVASCRIPT
function elevarAlCuadrado( numero ) {
return numero * numero ;
}
var cuadrado = elevarAlCuadrado(10);
function elevarAlCuadrado ( entrada ) {
return entrada * entrada ;
}
var numero = 12;
var resultado = elevarAlCuadrado( numero );
console.log(`${numero} al cuadrado es ${resultado}`);
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);
En Javascript al igual que en otros lenguajes, podemos hacer muchas cosas con las strings. De hecho, tienen muchos métodos:
string.indexOf(string, indice)
string.lastIndexOf(string, indice)
string.includes(string, indice)
string.toLowerCase()
string.toUpperCase()
string.trim()
string.replace(string)
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',
}
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");
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
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"]
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
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);
}
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
Variables primitivas (boolean, number, string)
Estructuras de control (el if y el switch)
el bucle for y el while
los Arrays
y las funciones
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
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.
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.
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
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
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();
}
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)
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
¿?
¿?
¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
¿?
function foo(callback) {
//do something
callback();
}
function gritar(){
console.log('AHHH !!! ')
}
foo(gritar())
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.
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.
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);
var users = [ "Yunior", "Miguel" ];
users.forEach( function (user) {
console.log(user);
});
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 !
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
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
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>
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>
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)
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:'
<button onClick="peligro()"> ¡ NO ME PULSES ! </button>
function peligro(){
alert('Peligro !!');
}
<li class="user"
onClick="userSelected('Pepe')">
<h2>Pepe</h2>
</li>
function userSelected(username){
console.log(username);
}
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?