Академический Документы
Профессиональный Документы
Культура Документы
44 de 68
http://www.masterlinux.org
EFGM 2000-2007
<html><head><title> if simple</title></head>
<body>
Resultado de la divisin de x entre y<br>
<script language="JavaScript1.2">
x=5; y=0;
z=" <b>No se puede dividir por 0</b>";
if (y != 0) z=x/y;
document.write(z);
</script>
</body></html>
El script anterior ejecutar siempre la lnea document.write(z), sin
importar qu valor tenga la variable y. En ocasiones es deseable forzar al
programa a realizar determinadas acciones si la evaluacin de la expresin da
como resultado false. Por ejemplo, cuando el valor de la variable y es cero, se
podra informar de tal hecho a travs de un mensaje:
<html>
<head><title> objeto simple</title></head>
<body>
<script language="JavaScript1.3">
x=5;
y=0;
if (y != 0)
{
z=x/y;
m="El resultado de x/y es " + z;
}
else
{
m="No se puede hacer la divisin, y vale cero";
}
document.write(m);
</script>
</body>
</html>
45 de 68
http://www.masterlinux.org
EFGM 2000-2007
46 de 68
http://www.masterlinux.org
EFGM 2000-2007
47 de 68
http://www.masterlinux.org
EFGM 2000-2007
La sentencia break
Esta sentencia como su nombre lo indica rompe la ejecucin normal de
un bloque de sentencias. Puede ser utilizada dentro de switch, for o while.
Su efecto, si es colocada dentro de un for o un while consiste en terminar el
ciclo sin chequear si la condicin se sigue cumpliendo. Si es utilizada dentro de
un switch, ignorar todos los bloques de instrucciones ubicados debajo de ella.
<script language="JavaScript1.3">
a=2;
switch (a)
{
case 1:
document.write("Soy el caso uno");
break;
case 2:
document.write(" Soy el caso dos");
break;
case 3:
document.write(" Soy el caso tres");
break;
default:
document.write(" Termin");
}
</script>
El anterior script comenzar su ejecucin en case 2:, mostrar la frase
Soy el caso dos y terminar su ejecucin al encontrar la sentencia break.
48 de 68
http://www.masterlinux.org
EFGM 2000-2007
De las tres condiciones anteriores se puede deducir que para calcular por
ejemplo el factorial de 200, se podra escribir en JavaScript algo similar a:
numero=200;
n=0;
fac=1;
fac*=(numero-n);
n++;
fac*=(numero-n);
n++;
.
.
//as hasta completar 200 sentencias fac*=(numero-n); n++;
document.write(El factorial de 200 es + fac);
El ciclo o bucle for de JavaScript, permite la ejecucin repetitiva de una
o ms sentencias utilizando para ello pocas lneas de cdigo. La sintaxis de la
sentencia for y su funcionamiento se explican a continuacin:
for(inicializacin;expresin;incremento)
{
sentencia_1;
sentencia_2;
.
.
.
sentencia_n;
}
contina_programa;
49 de 68
http://www.masterlinux.org
EFGM 2000-2007
50 de 68
http://www.masterlinux.org
EFGM 2000-2007
La sentencia while
Existen en JavaScript otras dos estructuras que permiten la ejecucin
cclica de una o ms sentencias, dependiendo del resultado de la evaluacin de
una expresin. La primera de ellas es la instruccin while, cuya sintaxis se
muestra a continuacin:
while(expresin)
{
sentencia_1;
sentencia_2;
.
.
.
sentencia_n;
}
contina_programa
Las sentencias contenidas dentro del bloque, se ejecutarn mientras que
el resultado de evaluar expresin sea verdadero (true). Cuando el programa
encuentra una sentencia while, evala la expresin. Si el resultado de esta
evaluacin es cierto, ejecuta la sentencia o bloque de sentencias que se
encuentra a continuacin del while, volviendo a evaluar la expresin. Lo anterior
51 de 68
http://www.masterlinux.org
EFGM 2000-2007
se repite hasta que el resultado de evaluar expresin sea false. Cuando esto
ocurre, el programa continuar ejecutando las instrucciones ubicadas justo
despus del bloque de sentencias del while. Es obvio pensar, que dentro del
bloque de sentencias de un while, debe existir una variable que controle el valor
de expresin. De lo contrario el while se ejecutar indefinidamente. Observe
tambin, que la expresin es evaluada antes de ejecutar el bloque de sentencias.
Es posible entonces que las sentencias nunca se ejecuten.
<script language="JavaScript1.3">
fac=6;
x=5;
while(x>0)
{
fac*=x;
--x;
}
document.write("El factorial de 6 es " + fac);
</script>
El anterior script que nuevamente calcula el factorial de 6, es un buen
ejemplo para ilustrar el uso de while. Al iniciar el ciclo, x vale 5 y fac vale 6,
luego x>0 es cierto. En la primera iteracin fac toma como valor 30 (6*5) y x se
decrementa en 1, la condicin se sigue cumpliendo y en el segundo ciclo fac
vale 120 (30*4) y x vuelve a decrementarse en 1. Despus de 5 ciclos, fac vale
720 y x vale cero; la condicin x>0 deja de cumplirse y el programa ejecuta la
lnea document.write("El factorial de 6 es " + fac);
La sentencia do while
El funcionamiento de do while es similar al de while, aunque existen
diferencias en su sintaxis y comportamiento:
do
{
bloque_de_sentencias;
}
while(expresin);
contina_programa;
El bloque de sentencias a continuacin del do, se ejecutar por lo menos
una vez, dado que la evaluacin de expresin se realiza despus de su
ejecucin. Si el resultado de evaluar expresin es verdadero (true), el bloque de
sentencias continuar ejecutndose. El ciclo se terminar cuando expresin
alcance el valor false.
x=0;
do
{
document.write("Esto se imprimir una vez");
--x;
}
while(x>0)
El anterior script se ejecutar una vez, a pesar de que desde el principio
no se cumple la condicin x>0.
52 de 68
http://www.masterlinux.org
EFGM 2000-2007
53 de 68
http://www.masterlinux.org
EFGM 2000-2007
vez estn compuestos por otros objetos que son al mismo tiempo sus
propiedades. Lo anterior significa que se puede acceder a cualquiera de esos
objetos a travs de JavaScript y utilizar los mtodos implementados en ellos, as
como, editar sus propiedades.
Es necesario entonces conocer los atributos y mtodos de cada uno de
estos objetos para interactuar con ellos. De hecho, se ha venido utilizando el
mtodo write del objeto document en casi todos los scripts que se han
desarrollado hasta ahora dentro del mdulo.
La grfica siguiente, ilustra la sintaxis bsica para referirse a los objetos
de una pgina sencilla compuesta por un formulario llamado form1, un campo de
texto denominado cuadro y un botn submit de nombre Boton.
54 de 68
http://www.masterlinux.org
EFGM 2000-2007
valor especfico al desplegar la pgina, por ejemplo, la fecha y hora actual del
sistema, se tendra que escribir una lnea similar a la siguiente:
document.form1.cuadro.value= new Date();
La pgina web y el script completo para ilustrar lo anterior sera similar a:
<html>
<head>
<title>Titulada</title>
</head>
<body bgcolor="#FFFFDD" text="#000000">
<form name="form1" method="post" action="">
<input name="cuadro" type="text">
<br>
<br>
<input name="Boton" type="submit" value="Enviar">
</form>
<script language="javascript1.3">
x=document.form1.Boton.value;
document.form1.cuadro.value= new Date();
document.write("El valor de la variable x es "+ x);
</script>
</body>
</html>
A travs de JavaScript se pueden cambiar todos los atributos de un
objeto dado de forma dinmica. La siguiente pgina tendr fondo de color negro
y texto color lima, aunque estos fueron definidos en la etiqueta <body> con
valores diferentes. Lo mismo ocurre con el ttulo de la pgina:
<html>
<head>
<!-- Observe el ttulo -->
<title>Ttulo Inicial</title>
</head>
<!-- En la etiqueta body se define el color de fondo
blanco y el color de texto rojo-->
<body bgcolor="WHITE" text="red">
DE QUÉ COLOR APARECERÁ ESTE TEXTO?
<script language="javascript1.3">
//La siguiente lnea cambia el color de fondo a negro
document.bgColor="#000000";
//La siguiente lnea cambia el color de texto a lima
document.fgColor="lime";
//Con esta lnea se cambia el ttulo
document.title="Ttulo Final";
</script>
</body>
</html>
Otros atributos del objeto document son: alinkColor y vlinkColor, que
corresponden a los colores del texto de los enlaces y los enlaces visitados;
width y height, que son el ancho y el alto en pxeles del documento
respectivamente.
En cuanto a los mtodos del objeto document, a lo largo del mdulo se ha
utilizado uno de los ms importantes: el mtodo document.write(), cuya
funcin es bien conocida. Hay una variante de ste mtodo que trabaja de
55 de 68
http://www.masterlinux.org
EFGM 2000-2007
56 de 68
http://www.masterlinux.org
EFGM 2000-2007