JAVASCRIPT
Las variables en JS
Pueden ser de muchos tipos distintos:
Las variables en JS
Pueden ser de muchos tipos distintos:
Resumen
var numero = 23;
var frase = "ola k ase?";
var boleano = false;
var condicion = boleano == false;
var temp1;
Creamos una variable de esta forma
var nombre = valorInicial
ó
var nombre;
Condiciones
var edadYunior = 26;
var edadMiguel = 38;
edadYunior < edadMiguel // true
edadYunior > edadMiguel // false
edadYunior == edadMiguel // false
edadYunior == edadYunior // true
edadYunior != edadYunior // false
var otraEdadYunior = "26";
If, else y else if
if ( 26 < 35) {
console.log('26 es menor que 35');
}else if ( true ) {
console.log("Hmmm, ¿me ejecutaría?");
}else {
console.log('26 no es menor que 36');
}
Prompt, alert, confirm
var edadUsuario = prompt('Dime tu edad');
var laConozco = confirm("Conoces la edad de Yunior?");
if (laConozco) {
var edadDeYunior = prompt("Dime su edad");
if (edadDeYunior > edadUsuario){
..
}else ...
}else{
alert("Se acabo el programa");
}
Podemos exigir que se cumplan dos condiciones a la vez. AND
if ( condicion1 && condicion2 )
O que al menos se cumpla alguna de las condiciones. OR
if ( condicion1 || condicion2 )
var esMenorDeEdad = 10 < 18;
var laTrampa = "false";
(esMenorDeEdad == true);
(esMenorDeEdad == 'true');
(esMenorDeEdad);
(esMenorDeEdad != false);
(esMenorDeEdad == false);
(!esMenorDeEdad)
(!esMenorDeEdad != false);
(!esMenorDeEdad == false);
(laTrampa == true);
(laTrampa)
(laTrampa === true || laTrampa == 'true')
ejecútalo en una consola de chrome
Ejercicio en grupos.
Piedra papel tijeras
Recoger por pantalla con 2 prompts la respuesta a la pregunta :
Escoge entre : "Piedra/Papel/Tijeras"
Escoge entre : "Piedra/Papel/Tijeras"
Si el usuario introduce algún valor inválido muéstrale un alert avisándole del error. En ese caso simplemente el usuario tendrá que volver a empezar.
Ahora, con esos 2 valores que has guardado, pues haz el juego de piedra papel tijeras y di quien ha sido el ganador con un alert
Extra: Hacemos que sea piedra/papel/tijera/lagarto/spock
var edad = prompt('Dime cual es tu edad');
edad = parseInt(edad);
var cumple = edad + 1;
console.log(typeof cumple); // Number
console.log('Vas a cumplir ' + cumple + ' años');
// Ufff menos mal :S pensé que me hacía muy viejo
var edad = prompt('Dime cual es tu edad');
var nombre = prompt('Dime tu nombre');
console.log("El usuario tiene " + edad + " años");
console.log(edad + 1); // ¿?
console.log(edad - 1); // ¿?
console.log(nombre + 1); // Nombre1
console.log(nombre - 1); // NaN
// Lo de abajo queda gracioso, pégalo en la consola
console.log(Array(16).join(nombre -1) + ' Batman !');
var diaDeLaSemana = prompt('¿Día de la semana favorito? del 1 al 7');
switch (diaDeLaSemana) {
case "1":
console.log('Es el lunes');
break;
case "2":
console.log('Es el martes');
break;
case "3":
console.log('Es el miércoles');
break;
case "4":
console.log('Es el jueves');
break;
case "5":
console.log('Es el viernes');
break;
case "6":
console.log('Es el sábado');
break;
case "7":
console.log('Es el domingo');
break;
default:
console.log('¿Se te fue de las manos la fiesta del sábado?');
}
Ya sabemos recoger valores con el prompt. Ya sabemos operar con variables y sumar, restar, multiplicar, etc Vamos a hacer el siguiente ejercicio
Un script, que le pregunte al usuario por el nombre de una fruta, por la cantidad que ha comprado y por último por el precio unitario de esa fruta. Así, hasta 5 veces sí responde que quiere seguir comprando (esto pregúntaselo con un confirm) NADA DE BUCLES
Una vez el usuario ha introducido hasta 5 compras (siempre y cuando haya dicho 4 veces que sí que quería comprar más) sácale en un alert el precio total de su cesta
IMPORTANTE: no usar bucles ni nada que no hayamos visto aún
Las funciones son una serie de instrucciones que se ejecutan al usar la función y que normalmente devuelven un resultado. Por ejemplo, nosotros ya hemos usado funciones, en este caso hemos usado los console.log(), los alert() o los confirm() y prompt()
10
function elevarAlCuadrado( numero ) {
return numero * numero ;
}
var cuadrado = elevarAlCuadrado(10);
function elevarAlCuadrado ( numero ) {
return numero * numero ;
}
Este sería el nombre de la función y es el que usaremos para llamarla.
function elevarAlCuadrado ( numero ) {
return numero * numero ;
}
Dentro del paréntesis están los "parámetros" de la función.
Esto son valores que nos pasan al llamarnos y que podremos usar dentro de la función
En javascript no existe el tipado ... sorry :)
Ptsss de momento, luego cuando lleguemos con angular verás ;)
function elevarAlCuadrado ( numero ) {
return numero * numero ;
}
Si nuestra función devuelve hacia afuera un resultado debemos escribir un return y a la derecha el resultado.
En este caso la función elevarAlCuadrado devuelve la multiplicación de un número por si mismo.
function elevarAlCuadrado ( entrada ) {
return entrada * entrada ;
}
var numero = 12;
var resultado = elevarAlCuadrado( numero );
console.log(numero + " al cuadrado es " + resultado);
+600 líneas en un único .js
ficheros menores de 70 líneas y funciones menores de 15 líneas
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/02-day-functions
Nos ponemos en grupos y vamos a crear el piedra papel tijera lagarto spock y vamos a crearlo de nuevo pero esta vez con funciones.
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);
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
for ( var indice = 0 ; indice < 5 ; indice++){
// Código
}
//Esto
indice++;
//es lo mismo que
indice = indice + 1;
//y también
indice+=1;
//y casi lo mismo que esto
++indice
for ( var indice = 0 ; indice < 3 ; indice++ )
Inicialización
condición
nuevo estado
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 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);
¿Recuerdas el ejercicio de preguntarle al usuario por 5 frutas?
Ahora lo vamos a hacer de la siguiente forma. Cuántas más funciones hagas y más sencillas sean mejor.
Paso 1: Preguntale al usuario que cuántas frutas distintas va a comprar
Paso 2: Preguntale por cada una de las frutas por su nombre y su cantidad y su precio unitario
Paso 3: cuando ya le has preguntado todas las veces muestra un mensaje que diga "Gracias. El precio total es: XX"
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"]