JavaScript 535f563ec50e764
JavaScript 535f563ec50e764
Variables
var1numero;
var numero;1_123;
Tipos de variables
Un array es una colección de variables, que pueden ser todas del mismo tipo o
cada una de un tipo diferente.
var dia1 = "Lunes";
var dia2 = "Martes";
...
var dia7 = "Domingo";
Será Incorrecto?
Qué seria lo mas optimo?
En este tipo de casos, se pueden agrupar todas las variables relacionadas en una colección de
variables o array. El ejemplo anterior se puede rehacer de la siguiente forma:
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
Ahora, una única variable llamada dias almacena todos los valores relacionados entre sí, en
este caso los días de la semana. Para definir un array, se utilizan los caracteres [ y ] para
delimitar su comienzo y su final y se utiliza el carácter , (coma) para separar sus elementos:
Var nombre_array = [valor1, valor2, ..., valorN];
Una vez definido un array, es muy sencillo acceder a cada uno de sus elementos. Cada
elemento se accede indicando su posición dentro del array. La única complicación, que es
responsable de muchos errores cuando se empieza a programar, es que las posiciones de los
elementos empiezan a contarse en el 0 y no en el 1:
var diaSeleccionado = dias[0]; // diaSeleccionado = "Lunes"
var otroDia = dias[5]; Qué día mostraría?
Ejercicio 3
var numero = 5;
--numero;
alert(numero); // numero = 4
var numero = 5;
numero++;
alert(numero); // numero = 6
Qué valor queda en cada variable?
var numero1 = 5;
var numero2 = 2;
numero3 = numero1++ + numero2;
var numero1 = 5;
var numero2 = 2;
numero3 = ++numero1 + numero2;
Lógicos
cantidad = 2;
vacio = !cantidad; // vacio = false
mensaje = "Bienvenido";
mensajeVacio = !mensaje; // mensajeVacio = false
AND
La operación lógica AND obtiene su resultado combinando dos valores
booleanos. El operador se indica mediante el símbolo && y su resultado
solamente es true si los dos operandos son true:
variable1 &&
variable1 variable2
variable2
true true true
true false false
false true false
false false false
var valor1 = true;
var valor2 = false;
resultado = valor1 && valor2; // resultado = false
valor1 = true;
valor2 = true;
resultado = valor1 && valor2; // Cuál seria el resultado?
OR
La operación lógica OR también combina dos valores booleanos. El operador
se indica mediante el símbolo || y su resultado es true si alguno de los dos
operandos es true:
variable1 ||
variable1 variable2
variable2
true true true
true false true
false true true
false false false
var valor1 = true;
var valor2 = false;
resultado = valor1 || valor2
Matemáticos
JavaScript permite realizar manipulaciones matemáticas sobre el valor de las variables numéricas.
Los operadores definidos son: suma (+), resta (-), multiplicación (*) y división (/). Ejemplo:
var numero1 = 10;
var numero2 = 5;
resultado = numero1 / numero2; // resultado = 2
resultado = 3 + numero1; // resultado = 13
resultado = numero2 – 4; // resultado = 1
resultado = numero1 * numero 2; // resultado = 50
Se trata del operador "módulo", que calcula el resto de la división entera de dos números. Si se
divide por ejemplo 10 y 5, la división es exacta y da un resultado de 2. El resto de esa división es 0,
por lo que módulo de 10 y 5 es igual a 0.
Sin embargo, si se divide 9 y 5, la división no es exacta, el resultado es 1 y el resto 4, por lo que
módulo de 9 y 5 es igual a 4.
El operador módulo en JavaScript se indica mediante el símbolo %, que no debe confundirse con el
cálculo del porcentaje:
var numero1 = 10;
var numero2 = 5;
resultado = numero1 % numero2; // resultado = ?
numero1 = 9;
numero2 = 5;
resultado = numero1 % numero2; // resultado = ?
Los operadores matemáticos también se pueden combinar con el operador de
asignación para abreviar su notación:
var numero1 = 5;
numero1 += 3; // numero1 = numero1 + 3 = 8
numero1 -= 1; // numero1 = numero1 - 1 = 4
numero1 *= 2; // numero1 = numero1 * 2 = 10
numero1 /= 5; // numero1 = numero1 / 5 = 1
numero1 %= 4; // numero1 = numero1 % 4 = 1
Relacionales
Los operadores relacionales definidos por JavaScript son idénticos a los que definen las
matemáticas: mayor que (>), menor que (<), mayor o igual (>=), menor o igual (<=), igual que (==) y
distinto de (!=).
Los operadores que relacionan variables son imprescindibles para realizar cualquier aplicación
compleja, como se verá en el siguiente capítulo de programación avanzada. El resultado de todos
estos operadores siempre es un valor booleano:
var numero1 = 3;
var numero2 = 5;
resultado = numero1 > numero2; // resultado = false
resultado = numero1 < numero2; // resultado = true
numero1 = 5;
numero2 = 5;
resultado = numero1 >= numero2; // resultado = true
resultado = numero1 <= numero2; // resultado = true
resultado = numero1 == numero2; // resultado = true
resultado = numero1 != numero2;
// El operador "=" asigna valores
var numero1 = 5;
resultado = numero1 = 3; // numero1 = 3 y resultado = 3
A partir del siguiente array que se proporciona: var valores = [true, 5, false,
"hola", "adios", 2];
La sintaxis es:
if(condicion) {
...
}
Ejemplo
if(...) {
alert("numero1 no es mayor que numero2");
}
if(...) {
alert("numero2 es positivo");
}
if(...) {
alert("numero1 es negativo o distinto de cero");
}
if(...) {
alert("Incrementar en 1 unidad el valor de numero1 no lo hace mayor o igual que numero2");
}
Estructura If…Else
En ocasiones, las decisiones que se deben realizar no son del tipo "si se
cumple la condición, hazlo; si no se cumple, no hagas nada". Normalmente las
condiciones suelen ser del tipo "si se cumple esta condición, hazlo; si no se
cumple, haz esto otro". Para este segundo tipo de decisiones, existe una
variante de la estructura if llamada if...else. Su definición formal es la
siguiente:
La sintaxis seria:
if(condicion) {
...
}
else {
...
}
Ejemplo
Propuesta: mejore este script de tal forma que al usuario ingresar una edad
determine si es mayor de edad o si es menos de edad
Ejercicio 6
El cálculo de la letra del Documento Nacional de Identidad (DNI) es un proceso matemático sencillo que
se basa en obtener el resto de la división entera del número de DNI y el número 23. A partir del resto
de la división, se obtiene la letra seleccionándola dentro de un array de letras.
El array de letras es:
var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];
Por tanto si el resto de la división es 0, la letra del DNI es la T y si el resto es 3 la letra es la A. Con
estos datos, elaborar un pequeño script que:
Almacene en una variable el número de DNI indicado por el usuario y en otra variable la letra del DNI
que se ha indicado. (Pista: si se quiere pedir directamente al usuario que indique su número y su letra,
se puede utilizar la función prompt())
En primer lugar (y en una sola instrucción) se debe comprobar si el número es menor que 0 o mayor que
99999999. Si ese es el caso, se muestra un mensaje al usuario indicando que el número proporcionado
no es válido y el programa no muestra más mensajes.
Si el número es válido, se calcula la letra que le corresponde según el método explicado anteriormente.
Una vez calculada la letra, se debe comparar con la letra indicada por el usuario. Si no coinciden, se
muestra un mensaje al usuario diciéndole que la letra que ha indicado no es correcta. En otro caso, se
muestra un mensaje indicando que el número y la letra de DNI son correctos.
Se pueden anudar estructuras if
La estructura if...else se puede encadenar para realizar varias comprobaciones
seguidas:
var veces = 0;
if(veces < 4) {
alert("Mensaje");
veces++;
}
La estructura for permite realizar este tipo de repeticiones (también llamadas bucles)
de una forma muy sencilla. No obstante, su definición formal no es tan sencilla como
la de if():
for(indice in array) {
...
}
Ejemplo
Si se quieren recorrer todos los elementos que forman un array, la estructura for...in
es la forma más eficiente de hacerlo, como se muestra en el siguiente ejemplo:
var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
for(i in dias) {
alert(dias[i]);
}
Analicemos: for(i in dias)
La variable que se indica como indice es la que se puede utilizar dentro del bucle
for...in para acceder a los elementos del array. De esta forma, en la primera
repetición del bucle la variable i vale 0 y en la última vale 6.
Con esta función se pueden extraer fácilmente las letras que forman una
palabra:
var palabra = "Hola";
var letras = palabra.split(""); // letras = ["H", "o", "l", "a"]
Funciones útiles para arrays
length, calcula el número de elementos de un array
var vocales = ["a", "e", "i", "o", "u"];
var numeroVocales = vocales.length;
NaN, (del inglés, "Not a Number") JavaScript emplea el valor NaN para indicar un valor numérico no definido (por ejemplo, la
división 0/0).
var numero1 = 0;
var numero2 = 0;
alert(numero1/numero2); // se muestra el valor NaN
isNaN(), permite proteger a la aplicación de posibles valores numéricos no definidos
var numero1 = 0;
var numero2 = 0;
if(isNaN(numero1/numero2)) {
alert("La división no está definida para los números indicados");
}
else {
alert("La división es igual a => " + numero1/numero2);
}
Infinity, hace referencia a un valor numérico infinito y positivo (también
existe el valor –Infinity para los infinitos negativos)
Cuando una serie de instrucciones se repiten una y otra vez, se complica demasiado el
código fuente de la aplicación, ya que:
Las funciones son la solución a todos estos problemas, tanto en JavaScript como en el
resto de lenguajes de programación. Una función es un conjunto de instrucciones que
se agrupan para realizar una tarea concreta y que se pueden reutilizar fácilmente.
Ejemplo: Aplicando las funciones se debería: Resultado utilizando un función:
var resultado; Las instrucciones comunes se tienen que agrupar, function suma_y_muestra() {
para que se le puedan indicar los números que
debe sumar antes de mostrar el mensaje. resultado = numero1 + numero2;
var numero1 = 3;
alert("El resultado es " + resultado);
var numero2 = 5;
Por lo tanto, en primer lugar se debe crear la }
// Se suman los números y se muestra el resultado función básica con las instrucciones comunes.
resultado = numero1 + numero2; Las funciones en JavaScript se definen mediante
la palabra reservada function, seguida del var resultado;
alert("El resultado es " + resultado); nombre de la función. Su definición formal es la
siguiente: