domingo, 16 de octubre de 2016

4.1. Funciones
Cuando se desarrolla una aplicación compleja, es muy habitual utilizar una y otra vez las mismas instrucciones. Un script para una tienda de comercio electrónico por ejemplo, tiene que calcular el precio total de los productos varias veces, para añadir los impuestos y los gastos de envío.
Cuando una serie de instrucciones se repiten una y otra vez, se complica demasiado el código fuente de la aplicación, ya que:

  • ·      El código de la aplicación es mucho más largo porque muchas instrucciones están repetidas.
  • ·      Si se quiere modificar alguna de las instrucciones repetidas, se deben hacer tantas modificaciones como veces se haya escrito esa instrucción, lo que se convierte en un trabajo muy pesado y muy propenso a cometer errores.
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.
En el siguiente ejemplo, las instrucciones que suman los dos números y muestran un mensaje con el resultado se repiten una y otra vez:
var resultado;
var numero1 = 3;
var numero2 = 5; 
// Se suman los números y se muestra el resultado
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
numero1 = 10;
numero2 = 7;
// Se suman los números y se muestra el resultado
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
numero1 = 5;
numero2 = 8;
// Se suman los números y se muestra el resultado
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
Aunque es un ejemplo muy sencillo, parece evidente que repetir las mismas instrucciones a lo largo de todo el código no es algo recomendable. La solución que proponen las funciones consiste en extraer las instrucciones que se repiten y sustituirlas por una instrucción del tipo "en este punto, se ejecutan las instrucciones que se han extraído":
var resultado;
var numero1 = 3;
var numero2 = 5;
/* En este punto, se llama a la función que suma
2 números y muestra el resultado */
numero1 = 10;
numero2 = 7;
/* En este punto, se llama a la función que suma
2 números y muestra el resultado */
numero1 = 5;
numero2 = 8;
/* En este punto, se llama a la función que suma
2 números y muestra el resultado */
Para que la solución del ejemplo anterior sea válida, las instrucciones comunes se tienen que agrupar en una función a la que se le puedan indicar los números que debe sumar antes de mostrar el mensaje.
Por lo tanto, en primer lugar se debe crear la función básica con las instrucciones comunes. Las funciones en JavaScript se definen mediante la palabra reservadafunction, seguida del nombre de la función. Su definición formal es la siguiente:
function nombre_funcion() {
}
El nombre de la función se utiliza para llamar a esa función cuando sea necesario. El concepto es el mismo que con las variables, a las que se les asigna un nombre único para poder utilizarlas dentro del código. Después del nombre de la función, se incluyen dos paréntesis cuyo significado se detalla más adelante. Por último, los símbolos { y } se utilizan para encerrar todas las instrucciones que pertenecen a la función (de forma similar a como se encierran las instrucciones en las estructuras if o for).
Volviendo al ejemplo anterior, se crea una función llamada suma_y_muestra de la siguiente forma:
function suma_y_muestra() {
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
}
Aunque la función anterior está correctamente creada, no funciona como debería ya que le faltan los "argumentos", que se explican en la siguiente sección. Una vez creada la función, desde cualquier punto del código se puede llamar a la función para que se ejecuten sus instrucciones (además de "llamar a la función", también se suele utilizar la expresión "invocar a la función").
La llamada a la función se realiza simplemente indicando su nombre, incluyendo los paréntesis del final y el carácter ; para terminar la instrucción:
function suma_y_muestra() {
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
} 
var resultado;
var numero1 = 3;
var numero2 = 5;
suma_y_muestra();
numero1 = 10;
numero2 = 7;
suma_y_muestra();
numero1 = 5;
numero2 = 8;
suma_y_muestra();

El código del ejemplo anterior es mucho más eficiente que el primer código que se mostró, ya que no existen instrucciones repetidas. Las instrucciones que suman y muestran mensajes se han agrupado bajo una función, lo que permite ejecutarlas en cualquier punto del programa simplemente indicando el nombre de la función.
Lo único que le falta al ejemplo anterior para funcionar correctamente es poder indicar a la función los números que debe sumar. Cuando se necesitan pasar datos a una función, se utilizan los "argumentos", como se explica en la siguiente sección.

4.1.1. Argumentos y valores de retorno
Las funciones más sencillas no necesitan ninguna información para producir sus resultados. Sin embargo, la mayoría de funciones de las aplicaciones reales deben acceder al valor de algunas variables para producir sus resultados.
Las variables que necesitan las funciones se llaman argumentos. Antes de que pueda utilizarlos, la función debe indicar cuántos argumentos necesita y cuál es el nombre de cada argumento. Además, al invocar la función, se deben incluir los valores que se le van a pasar a la función. Los argumentos se indican dentro de los paréntesis que van detrás del nombre de la función y se separan con una coma (,).
Siguiendo el ejemplo anterior, la función debe indicar que necesita dos argumentos, correspondientes a los dos números que tiene que sumar:
function suma_y_muestra(primerNumero, segundoNumero) { ... }
A continuación, para utilizar el valor de los argumentos dentro de la función, se debe emplear el mismo nombre con el que se definieron los argumentos:
function suma_y_muestra(primerNumero, segundoNumero) { ... }
var resultado = primerNumero + segundoNumero;
alert("El resultado es " + resultado);
}
Dentro de la función, el valor de la variable primerNumero será igual al primer valor que se le pase a la función y el valor de la variable segundoNumero será igual al segundo valor que se le pasa. Para pasar valores a la función, se incluyen dentro de los paréntesis utilizados al llamar a la función:
// Definición de la función
function suma_y_muestra(primerNumero, segundoNumero) { ... }
var resultado = primerNumero + segundoNumero;
alert("El resultado es " + resultado);
}
// Declaración de las variables
var numero1 = 3;
var numero2 = 5;
// Llamada a la función
suma_y_muestra (numero1, numero2);
En el código anterior, se debe tener en cuenta que:

  • ·         Aunque casi siempre se utilizan variables para pasar los datos a la función, se podría haber utilizado directamente el valor de esas variables: suma_y_muestra (3, 5);
  • ·     El número de argumentos que se pasa a una función debería ser el mismo que el número de argumentos que ha indicado la función. No obstante, JavaScript no muestra ningún error si se pasan más o menos argumentos de los necesarios.
  • ·         El orden de los argumentos es fundamental, ya que el primer dato que se indica en la llamada, será el primer valor que espera la función; el segundo valor indicado en la llamada, es el segundo valor que espera la función y así sucesivamente.
  • ·         Se puede utilizar un número ilimitado de argumentos, aunque si su número es muy grande, se complica en exceso la llamada a la función.
  • ·         No es obligatorio que coincida el nombre de los argumentos que utiliza la función y el nombre de los argumentos que se le pasan. En el ejemplo anterior, los argumentos que se pasan son numero1 y numero2 y los argumentos que utiliza la función son primerNumero y segundoNumero.
A continuación se muestra otro ejemplo de una función que calcula el precio total de un producto a partir de su precio básico:
// Definición de la función
function calculaPrecioTotal(precio) {
var impuestos = 1.16;
var gastosEnvio = 10;
var precioTotal = ( precio * impuestos ) + gastosEnvio;
}
// Llamada a la función
calculaPrecioTotal(23.34);
La función anterior toma como argumento una variable llamada precio y le suma los impuestos y los gastos de envío para obtener el precio total. Al llamar a la función, se pasa directamente el valor del precio básico mediante el número23.34.
No obstante, el código anterior no es demasiado útil, ya que lo ideal sería que la función pudiera devolver el resultado obtenido para guardarlo en otra variable y poder seguir trabajando con este precio total:
function calculaPrecioTotal(precio) {
var impuestos = 1.16;
var gastosEnvio = 10;
var precioTotal = ( precio * impuestos ) + gastosEnvio;
}
// El valor devuelto por la función, se guarda en una variable
var precioTotal = calculaPrecioTotal(23.34);
// Seguir trabajando con la variable "precioTotal"
Afortunadamente, las funciones no solamente puede recibir variables y datos, sino que también pueden devolver los valores que han calculado. Para devolver valores dentro de una función, se utiliza la palabra reservada return. Aunque las funciones pueden devolver valores de cualquier tipo, solamente pueden devolver un valor cada vez que se ejecutan.
function calculaPrecioTotal(precio) {
var impuestos = 1.16;
var gastosEnvio = 10;
var precioTotal = ( precio * impuestos ) + gastosEnvio;
return precioTotal;
}
var precioTotal = calculaPrecioTotal(23.34);
// Seguir trabajando con la variable "precioTotal"
Para que la función devuelva un valor, solamente es necesario escribir la palabra reservada return junto con el nombre de la variable que se quiere devolver. En el ejemplo anterior, la ejecución de la función llega a la instrucción return precioTotal; y en ese momento, devuelve el valor que contenga la variableprecioTotal.
Como la función devuelve un valor, en el punto en el que se realiza la llamada, debe indicarse el nombre de una variable en el que se guarda el valor devuelto:
var precioTotal = calculaPrecioTotal(23.34);
Si no se indica el nombre de ninguna variable, JavaScript no muestra ningún error y el valor devuelto por la función simplemente se pierde y por tanto, no se utilizará en el resto del programa. En este caso, tampoco es obligatorio que el nombre de la variable devuelta por la función coincida con el nombre de la variable en la que se va a almacenar ese valor.
Si la función llega a una instrucción de tipo return, se devuelve el valor indicado y finaliza la ejecución de la función. Por tanto, todas las instrucciones que se incluyen después de un return se ignoran y por ese motivo la instrucción returnsuele ser la última de la mayoría de funciones.
Para que el ejemplo anterior sea más completo, se puede añadir otro argumento a la función que indique el porcentaje de impuestos que se debe añadir al precio del producto. Evidentemente, el nuevo argumento se debe añadir tanto a la definición de la función como a su llamada:
function calculaPrecioTotal(precio, porcentajeImpuestos) {
var gastosEnvio = 10;
var precioConImpuestos = (1 + porcentajeImpuestos/100) * precio;
var precioTotal = precioConImpuestos + gastosEnvio;
return precioTotal;
}
var precioTotal = calculaPrecioTotal(23.34, 16);
var otroPrecioTotal = calculaPrecioTotal(15.20, 4);
Para terminar de completar el ejercicio anterior, se puede rendondear a dos decimales el precio total devuelto por la función:
function calculaPrecioTotal(precio, porcentajeImpuestos) {
var gastosEnvio = 10;
var precioConImpuestos = (1 + porcentajeImpuestos/100) * precio;
var precioTotal = precioConImpuestos + gastosEnvio;
return precioTotal.toFixed(2);
}

var precioTotal = calculaPrecioTotal(23.34, 16);
FECHA: OCTUBRE 16 2016
Entrada de datos por teclado.

Para la entrada de datos por teclado tenemos la función prompt. Cada vez que necesitamos ingresar un dato con esta función, aparece una ventana donde cargamos el valor. Hay otras formas más sofisticadas para la entrada de datos en una página HTML, pero para el aprendizaje de los conceptos básicos de JavaScript nos resultará más práctica esta función.
Para ver su funcionamiento analicemos este ejemplo:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var nombre;
var edad;
nombre=prompt('Ingrese su nombre:','');
edad=prompt('Ingrese su edad:','');
document.write('Hola ');
document.write(nombre);
document.write(' asi que tienes ');
document.write(edad);
document.write(' años');
</script>
</body>
</html>
La sintaxis de la función prompt es:
<variable que recibe el dato>=prompt(<mensaje a mostrar en la ventana>,<valor
inicial a mostrar en la ventana>);

La función prompt tiene dos parámetros: uno es el mensaje y el otro el valor inicial a mostrar.


FECHA: OCTURE 16 2016
Operadores de igualdad y desigualdad (==, ===, !=, !==)

El operador == primero hace la conversión a un mismo tipo de dato para verificar si son iguales, en cambio el operador === llamado operador de igualdad estricta compara los valores sin hacer conversiones. Esto hace que cuando utilizamos el operador === retorne siempre false en caso que las variables que comparamos sean de distinto tipo.
El siguiente if se verifica verdadero ya que con el operador == primero se transforman los dos valores al mismo tipo de datos previos a verificar su igualdad:
var v1='55';
if (v1==55)
document.write('son iguales');
En cambio el siguiente if utilizando el operador de igualdad estricta se verifica false ya que son variables o valores de distinto tipo:
var v1='55';
if (v1===55)
document.write('son iguales');
Los operadores != y !== son los opuestos de == y ===.

El operador != retorna true si son distintos previo conversión a un mismo tipo de dato y el operador !== retorna true si los valores son distintos sin hacer una conversión previa, teniendo en cuenta que para tipos de datos distintos es true el valor retornado.
El siguiente if se verifica false:
var v1='55';
if (v1!=55)
document.write('son distintos');
En cambio utilizando el operador !== se verifica verdadero ya que son tipos de datos desiguales:
var v1='55';
if (v1!==55)
document.write('son distintos');
El operador de igualdad estricto === analiza los operandos de la siguiente forma:
Si los dos valores son de diferente tipo luego el resultado es false.Si los dos valores almacen null luego el resultado es true. Lo mismo si los dos valores almacenan undefined.
Si uno de los valores almacena el valor NaN luego la condición se verifica como false.
El operador de igualdad == analiza los operandos de la siguiente forma:
Si los dos operan dos no son del mismo tipo el operador == primero verifica si uno de los valores es null y el otro undefined luego retorna true, si uno es un número y el otro un string convierte a string el número y luego compara, si uno de los valores es true convierte este a 1 y luego compara, si uno de los valores es false convierte este a 0 (cero) y luego compara.
Algunas comparaciones:
if (true==1)  //verdadero
if (true===1)  //falso
if (false==0)  //verdadero

if (false===0)  //falso


FECHA: OCTUBRE 16 2016
Clase String

Un string consiste en uno o más caracteres encerrados entre simple o doble comillas.
Concatenación de cadenas (+)
JavaScript permite concatenar cadenas utilizando el operador +.
El siguiente fragmento de código concatena tres cadenas para producir su salida:
var final='La entrada tiene ' + contador + ' caracteres.';
Dos de las cadenas concatenadas son cadenas literales. La del medio es un entero que automáticamente se convierte a cadena y luego se concatena con las otras.
Propiedad length
Retorna la cantidad de caracteres de un objeto String.
var nom='Juan';
document.write(nom.length); //Resultado 4
Métodos
charAt(pos)
Retorna el carácter del índice especificado. Comienzan a numerarse de la posición cero.
var nombre='juan';
var caracterPrimero=nombre.charAt(0);
substring (posinicial, posfinal)
Retorna un String extraída de otro, desde el carácter 'posinicial' hasta el 'posfinal'-1:
cadena3=cadena1.substring(2,5);
En este ejemplo, "cadena3" contendrá los caracteres 2, 3, 4 sin incluir el 5 de cadena1 (Cuidado que comienza en cero).
indexOf (subCadena)
Devuelve la posición de la subcadena dentro de la cadena, o -1 en caso de no estar.
Tener en cuenta que puede retornar 0 si la subcadena coincide desde el primer carácter.
var nombre='Rodriguez Pablo';
var pos=nombre.indexOf('Pablo');
if (pos!=-1)
document.write ('Está el nombre Pablo en la variable nombre');
toUpperCase()
Convierte todos los caracteres del String que invoca el método a mayúsculas:
cadena1=cadena1.toUpperCase();
Luego de esto, cadena1 tiene todos los caracteres convertidos a mayúsculas.
toLowerCase()
Convierte todos los caracteres del String que invoca el método a minúsculas:
cadena1=cadena1.toLowerCase();
Luego de esto, cadena1 tiene todos los caracteres convertidos a minúsculas.

Ejemplo: Cargar un string por teclado y luego llamar a los distintos métodos de la clase String y la propiedad length.
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cadena=prompt('Ingrese una cadena:','');
document.write('La cadena ingresada es:'+cadena);
document.write('<br>');
document.write('La cantidad de caracteres son:'+cadena.length);
document.write('<br>');
document.write('El primer carácter es:'+cadena.charAt(0));
document.write('<br>');
document.write('Los primeros 3 caracteres son:'+cadena.substring(0,3));
document.write('<br>');
if (cadena.indexOf('hola')!=-1)
document.write('Se ingresó la subcadena hola');
else
document.write('No se ingresó la subcadena hola');
document.write('<br>');
document.write('La cadena convertida a mayúsculas es:'+cadena.toUpperCase());
document.write('<br>');
document.write('La cadena convertida a minúsculas es:'+cadena.toLowerCase());
document.write('<br>');
</script>
</body>

</html>


FECHA: OCTUBRE 16 2016

domingo, 2 de octubre de 2016

JavaScript: Operaciones y Funciones Matemáticas Básicas


Como realizar sumas de dos o mas números
var operador1, operador2, suma;
suma = operador1 + operador2;

Realizar resta (diferencia) de dos números
var operador1, operador2, resta;
resta = operador1 - operador2;

Multiplicación
var operador1, operador2, multiplicacion;
multiplicacion = operador1 * operador2;

División
var divisor, dividendo, division;
division = divisor / dividendo;

Potencia de un número
var potenica = Math.pow()

Raíz cuadrada
var raizCuadrara = Math.sqrt(9);
alert(raizCuadrara);

Redondear un valor
var redondea = Math.round(9.45);
alert("Valor redondeado 9.45= "+redondea);

Redondear un número al entero mas cercano
redondea = Math.ceil(9.01);
alert("Valor ceil 9.01= "+redondea);

Decrementar al entero inferior
redondea = Math.min(9.01);
alert("Valor min 9.01= "+redondea);

Decrementar al entero inferior
redondea = Math.floor(9.99);
alert("Valor floor 9.99= "+redondea);
// //decrementar al entero inferior

Obtener el valor máximo de una serie de valores
var valorMaximo = Math.max(20,15,10,3,28,64,74,13,76);
alert("El valor maximo es:"+valorMaximo);
// //Valor maximo de una serie de valores

Obtener el valor mínimo de una serie de valores
var valorMaximo = Math.min(20,15,10,3,28,64,74,13,76);
alert("El valor minimo es:"+valorMaximo);
// //Valor maximo de una serie de valores

Valor absoluto de un número
var absoluto = Math.abs(-10);
alert(absoluto);
// // valor absoluto

Calcular el seno de un número
var seno = Math.sin(30);
alert("El seno de 30 = "+seno);
// // Seno

Calcular el coseno de un número
var coseno = Math.cos(30);
alert("El coseno de 30 = "+coseno);
// // Coseno

Generar un número aleatorio
var aleatorio = Math.random();
alert(aleatorio);
// //Generar valor aleatorio

Generar un número aleatorio de 0 a X
var aleatorio = Math.floor(Math.random()*101);
alert(aleatorio);
// //Generar valor aleatorio entre 0 a 100

Generar un número aleatorio de 0 a X con decimales
//Generar valor aleatorio entre 0 a 10
var aleatorio = Math.floor(Math.random()*10) + Math.random();
alert(aleatorio);

Obtener el valor de PI
alert(Math.PI);

FECHA: Octubre 1 2016

Operadores aritméticos

En los primeros ejemplos de este tutor tan sólo se han usado sentencias muy simples como asignar un valor a una variable, mediante el operador de asignación, =, o realizar operaciones aritméticas, pero evidentemente JavaScript puede realizar más operaciones. En esta seccion y las siguientes se presentan los operadores de que dispone este lenguaje clasificados en varios grupos, según el contexto en el que se usen. Comenzamos con los más conocidos, los operadores aritméticos.

Suma +
Se trata de un operador usado para sumar dos valores numéricos o para concatenar cadenas entre sí o números y cadenas.
var var1 = 10, var2= "Buenos", var3 = " días", var4 = 31;
document.write(var1+var4) /* resultado 41 */ 
document.write(var2+var3) /* resultado: Buenos días */
document.write(var1+var3) /* resultando: 10 días */

Resta -
Operador usado para restar valores numéricos. Puede actuar sobre un único operando numérico cambiándole de signo.
var num1 = 10, num2 = 8, res = 0;
res = num1 - num2; /*res contiene 2 */
res = -res /* ahora res contiene -2*/

Producto ( * ) y cociente ( / )
Realizan las operaciones aritméticas de multiplicar y dividir dos valores numéricos.
var op1 = 50, op2= 4, div, mul;
div = op1/op2 /*div contiene 12.5 */
mul = op1 * op2 /*mul contendrá 200 */

Resto %
También llamado operador módulo calcula el resto de una división.
var op1 = 50, op2= 4, resto;
resto = op1 % op2; /*resto contiene 2 */ 

Incremento ( ++) y decremento (--)
Estos operadores se usan para incrementar o decrementar en 1 el valor de una variable. Si el operador se antepone a la variable la operación de incremento o decremento es prioritaria sobre cualquier otra.
var op1=5, op2 = 5, res;
res = ++op1; /*res toma el valor 6 y luego op1 el 6*/
res = op1++; /*res toma el valor 5 y luego op2 el 6*/ 

Operadores compuestos
Los operadores +, -, *, / pueden asociarse con el operador de asignación (=) para cambiar el valor de una variable numérica por incrementándolo, decrementándolo, multiplicándolo o dividiéndolo por un valor. El operador += puede usarse igualmente con variables de cadena.
var num = 20, cad = "buena";
num += 5; /*num adquiere el valor 25 (20 + 5) */
cad += 's' ; /*cad adquiere el valor 'buenas' */
num *= 10; /*num adquiere el valor 250 (25*10) */

FECHA: Octubre 2 2016

lunes, 26 de septiembre de 2016

EJERCICIO DE PRACTICA DE JAVA SCRIPT

<html>
<head><tittle></tittle></head>
<body>
<script>
document.write("<hr><center>marian del campo<br><font color='green'> 14</br></center></font></hr><hr></hr><marquee behavior='alternative'>colegio divino amor</marquee><hr></hr>");
var a = "hola";
var b = "carne";
var c = a + b;
alert("la respuesta es:"+c);
document.write("la respuesta es:"+c);
</script>
</body>
</html>

FECHA: Septiembre 26 2016