Vous êtes sur la page 1sur 31

CURSO DE JAVASCRIPT PRIMERA PARTE 1.

INTRODUCCIN
En un principio las pginas Web disponan de un contenido esttico, tan slo permitan que el usuario utilizase enlaces para moverse entre las distintas partes de su contenido. Con el paso del tiempo se ha visto la necesidad de desarrollar tecnologas que permitan dotar a las pginas de internet de interactividad, es decir, dar la posibilidad al usuario de interactuar con la informacin que se presenta en los navegadores. El primer lenguaje utilizado para crear pginas Web fue el sencillo y manejable lenguaje de hipertexto llamado HTML. Este lenguaje permite mostrar texto e imgenes en los navegadores, as como crear enlaces entre todos sus elementos. Posteriormente, se Netscape Corporation creo el lenguaje JavaScript para permitir, de una manera sencilla, introducir una mayor interactividad en las pginas Web. El cdigo JavaScript puede ser incorporado directamente en las pginas HTML y no se requieren complejos conceptos de programacin para su uso.

2. PRIMEROS PASOS CON JAVASCRIPT


Para aadir JavaScript se limita el cdigo con la la etiqueta SCRIPT. Este puede estar en cualquier lugar de la pgina. El cdigo se ejecuta en el lugar donde se encuentra.
<SCRIPT LANGUAGE="JavaScript"> <!-Aqu va el cdigo //--> </SCRIPT>

Ejemplo 2.1: Mostrar un texto por pantalla utilizando la

instruccin document.write(texto)

<SCRIPT LANGUAGE="JavaScript"> <!-document.write ("Este texto est escrito con JavaScript"); //--> </SCRIPT>

[Ejecucin]
Ejemplo 2.2: Utilizar las intrucciones: navigator.appName, que indica el nombre del navegador y navigator.appVersion, que nos indica la versin, para ver esta

informacin por pantalla.


<SCRIPT LANGUAGE="JavaScript"> <!-document.write ("El navegador utilizado actualmente es "+navigator.appName+ " ,versin "+navigator.appVersion); //--> </SCRIPT>

[Ejecucin]

3. VARIABLES Y VALORES
Las variables son elementos del lenguaje que permiten almacenar distintos valores en cada momento. Se puede almacenar un valor en una variable y consultar este valor posteriormente, tambin podemos modificar su contenido siempre que queramos.

Definir variables
Para declarar las variables en JavaScript se utiliza la instruccin var. A cada variable se le asigna un nombre, y opcionamente, un valor inical. Si no se trata de una funcin, la instruccin var es opcional, pero se recomienda utilizarla.
var ejemplo; ejemplo= "Hola"; es lo mismo que var ejemplo="Hola"

var resultado=3+7; contiene el valor 10

Nombrar variables

Cada variable es identificada por un nombre. Al asignar un nombre a una variables se deben tener en cuenta las siguientes reglas:

Se pueden utilizar todas las letras del alfabeto en maysculas y minsculas, los nmeros del 0 al 9 y el guin subrayado. Los nombres de las variables no pueden contener puntos ni espacios en blanco. El primer carcter ha de ser una letra o el guin subrayado. En el nombre se hace distincin entre maysculas y minsculas. No se puede utilizar como nombre ninguna de las palabras reservadas para JavaScript, es decir, no se pueden utilizar palabras que coincidan con las queque pertenecen al lenguaje JavaScript. Oficialmente no hay restricciones en cuanto a la longitud del nombre, pero ste debe caber en una sola lnea.
Nombre de variables vlidos Nombres de variables no vlidos Aux_Nombre mail1 _primero resultado Aux nombre 1mail entrada.primero JavaScript

Tipos de variables
Los tipos de valores que puede contener una variable JavaScript son:

Nmeros: puede contener cualquier tipo de nmero real o entero. Operadores lgicos o boolean: puede contener uno de los siguiente valores: true, false, 1 y 0. Cadenas de caracteres o String: cualquier combinacin de caracteres (letras, numeros, signos especiales y espacios). Las cadenas se delimitan mediante comillas dobles o simples. Las comillas simples, por norma, sern utilizadas dentro de fragmentos de cdigo delimitados por comillas dobles o viceversa.
Tipo de variable Numrica Variable numero1 = 3; numero2 = 3.7; numero3 = 0.6; numero4 = 5+7; cadena1 = "Pepe";

String

cadena2 = "Bienvenido a el site Web"; Boolean entrada = true; salida = false; auxentrada = 1; auxsalida = 0

Conversin
Los nmeros pueden incluirse facilmente en strings, pero los strings no se pueden incluir directamente en numeros, para eso existen funciones explicitas de conversin, parseInt() y parseFloat() son las funciones encargadas de hacerlo. parseFloat(cadena) transforma en nmero una cadena de caracteres que se ha de transmitir y la devulve como valor numrico. Si el nmero se puede interpertar como nmero decimal, la funcin lo tiene en cuenta. Como signo decimal se interpreta el punto. La funcin resulta muy til, por ejemplo, para transformar las entradas del usuario en valores numricos que permitan hacer clculos. Devulve NaN cuando la cadena de caracteres empieza con caracteres que no se pueden interpretar como parte de un nmero. Si la cadena contiene caracteres no numricos hacia el final, el nmero se interpreta slo hasta donde empiezan los caracteres no numricos, y se devulve como valor la parte interpretada como nmero. parseInt(cadena) funciona de forma similar a la funcin anterior, pero el valor devuelto siempre es un entero y considera el punto como un carcter. A continuacin veremos unos ejemplos de conversin de variables:
var aPartirde = 1; var hastaAqui = 10,frase; var hacerQue = "Contar desde "; frase=hacerQue + aPartirde + " a " + hastaAqui + ".";

Despues de ejecutar estas sentencias, la variable frase contendr "Contar desde 1 a 10." Los datos numricos han sido obligados a tomar la forma de un string.
var ahoraQue = 0, frase; frase = ahoraQue + 1 + "10"; // En este caso, porque "10" es un string, // el operador "+" concatena los valores.

Despues de su ejecucin, la variable ahoraQue contiene "0110". Para llegar a este resultado se siguen los siguientes pasos:

1. Mira los tipos de 1 y "10" y ahoraQue. El "10" y ahoraQuees un string, el 1 es un nmero, entonces el numero es obligado a convertirse en string. 2. Como en la expersin hay valores strings, se efectua una concatenacion de string. El resultado es "0110" 3. Almacena este resultado en frase. En el ejemplo siguiente se realiza una conversin de la cadena "10" nmero entero, por lo que la operacin se realiza como si todos los operandos fuesen nmeros.
var ahoraPues = 0; ahoraPues = ahoraPues + 1 + parseInt("10"); // En este caso, "+" realiza una suma.

Despues de la ejecucin, la variable ahoraPues contiene el entero 11.

Ejercicios
Ejercicio 3.1: Introducir el siguiente cdigo utilizando por los menos 4 variaciones

en la definicin y declaracin de variables, con la condicin de que el resultado sea el mismo. Explicar los cambios.
<SCRIPT LANGUAGE="JavaScript"> <!-var edad=23, nueva_edad, incremento; var nombre="Rosa Garca"; incremento=4; nueva_edad=edad+incremento; document.write(nombre+ " dentro de "+incremento +" aos tendr "+ nueva_edad+" aos") //--> </SCRIPT>

Ejercicio 3.2: Detectar, corregir y explicar los errores en el siguiente cdigo

(hacerlo en papel).
<SCRIPT LANGUAGE="JavaScript"> <!-var texto.inic="Presentamos el producto"; var 3aux=4,numero,aux1="ana"; var emp est=true,var=5; var aux3_1=5;Nom_Primero; var _texto=entrada; aux3_1="Pedro"; Nom_Primero=aux3_1; aux1=aux3_1; //--> </SCRIPT>

Ejercicio 3.3: Indicar qu salidas (document.write) se obtendran del siguiente

cdigo (hacerlo en papel).


<SCRIPT LANGUAGE="JavaScript"> <!-var aux1="Oveja que bala",aux2="bocado que pierde"; var num1=8, num2=5,resultado,operando="20"; document.write(aux1+aux2+"<br>"); document.write (num1+num2+"<br>"); num1=num1+num2; resultado=num1+num2; document.write (num1+"-"+num2+"-"+resultado); resultado=operando+num1; document.write (resultado); resultado=parseInt(operando)+num1; document.write (resultado); //--> </SCRIPT>

Ejercicio 3.4 Sustituir los comentarios por las rdenes apropiadas


<SCRIPT LANGUAGE="JavaScript"> <!-var puntos="340"; var descuento=20; //Hacer lo necesario para restar "puntos" de "descuento" //Mostrar por pantalla un mensaje del tipo: //Los puntos obtenidos son 340, el descuento es 20 y el resultado final es 320 //--> </SCRIPT>

Ejercicio 3.5Sustituir los comentarios por las rdenes apropiadas


<SCRIPT LANGUAGE="JavaScript"> <!-var nombre="Elena"; var aos="20"; var aux=2; /*Hacer lo necesario para que se vea el siguiente mensaje utilizando las variables correspondientes: Elena tiene 20 aos y dentro de 2 aos tendr 22*/ //--> </SCRIPT>

4. MOSTRAR Y LEER EN PANTALLA


alert()
El mtodo alert() permite mostrar al usuario informacin literal o el contenido de variables en una ventana independiente. La ventana contendr la informacin a mostrar y el botn Aceptar.
Su sintaxis es:
alert(mensaje)

Ejemplo 4.1: Muestra un mensaje literal en una ventana.


<SCRIPT LANGUAGE="Javascript"> <!--//Mtodo Alert() alert("Bienvenido a Bulanladia"); // --> </SCRIPT>

[Ejecucin] Caracteres especiales En los mensajes se pueden introducir determinados caracteres que permiten realizar funciones especiales dentro de los valores de tipo string. stos son:

Carcter \n \t \\ \ \"

Funcin Salto de lnea Tabulador Carcter \ Comilla simple Comilla doble

Ejemplo 4.2: Muestra un mensaje, que es la combinacin de una variable y un

literal, en una ventana. Adems se produce un salto de lnea pues se utiliza un caracter especial que la provoca.
<SCRIPT LANGUAGE="Javascript"> <!--//Mtodo Alert()

var nombre="Mara"; alert(nombre+"\nbienvenida a Bulanladia"); // --> </SCRIPT>

[Ejecucin]

confirm()
A travs del mtodo confirm() se activa un cuadro de dilogo que contiene los botones Aceptar y Cancelar. Cuando el usuario pulsa el botn Aceptar, este mtodo devuelve el valor true; Cancelar devuelve el valor false. Con ayuda de este mtodo el usuario puede decidir sobre preguntas concretas e influir de ese modo directamente en la pgina.
Su sintaxis es:
confirm(mensaje)

Ejemplo 4.3: Solicita la confirmacin de una operacin


<SCRIPT LANGUAGE="Javascript"> <!--//Mtodo Confirm() var respuesta; respuesta=confirm ("Desea cancelar la subscripcin?"); document.write("Usted ha contestado que "+respuesta) // --> </SCRIPT>

[Ejecucin]

prompt()
El mtodo prompt() abre un cuadro de dilogo en pantalla en el que se pide al usuario que introduzca algn dato. Si se pulsa el botn Cancelar, el valor de devolucin es false/null. Pulsanto en Aceptar se obtiene el valor true y la cadena de caracteres introducida se guarda para su posterior procesamiento.
Su sintaxis es:
prompt(pregunta, respuesta)

Siendo pregunta la informacin que se muestra y respuesta la informacin por defecto que la orden tomar de entrada.

Ejemplo 4.4: Solicita la provincia, dando como opcin por defecto "Asturias". Se puede introducir otra provincia a la mostrada. Si se pulsa Aceptar se muestra la provincia introducida y si no se muestra una ventana que indica lo sucedido.
<SCRIPT LANGUAGE="Javascript"> <!--//Mtodo Prompt() var provincia; provincia=prompt("Introduzca la provincia ","Asturias"); document.write("Usted ha introducido la siguiente informacin "+provincia) // --> </SCRIPT>

[Ejecucin]

Ejercicios
Ejercicio 4.1: Haz un programa que pregunte por el nombre de la persona y por

los apellidos y despus los muestre en una ventana. A continuacin debe preguntar si quiere salir, dando opcin, solamente, a una contestacin afirmativa o negativa y la respuesta en el documento. [Ejecucin]

5. LOS OPERADORES
Combinando variables y valores, se pueden formular expresiones ms complejas. Las expresiones son una parte esencial de los programas. Para formular expresiones se utilizan los operadores.

Operadores de asignacin
Los operadores de asignacin se utilizan para asignar valores a las variables. Alguno de ellos tambin incluyen operaciones.
Operador = += -= Descripcin Asigna a la vble de la parte izquierda el valor de la parte derecha. Suma los operandos izquierdo y derecho y asigna el resultado al operando izquierdo. Resta el operando derecho del operando izquierdo y asigna el resultado al

operando izquierdo. *= /= %= Multiplica ambos operandos y asigna el resultado al operando izquierdo. Divide ambos operandos y asigna el resultado al operando izquierdo. Divide ambos operandos y asigna el resto al operando izquierdo.

Ejemplo 5.1: Se muestra el funcionamiento de los distintos operadores de

asignacin.
<SCRIPT LANGUAGE="Javascript"> <!--//Operadores de asingacin var num1=3; var num2=5; num2+=num1; num2-=num1; num2*=num1; num2/=num1; num2%=num1; // --> </SCRIPT>

[Ejecucin]

Operadores aritmticos
Los operadores aritmticos se utilizan para hacer clculos aritmticos.
Operador Descripcin + * / % Suma. Resta. Multiplica. Divide. Calcula el resto de una divisin.

Adems de estos operadores, tambin existen operadores aritmticos unitarios: incremento (++), disminucin (--) y la negacin unitaria (-). Los operadores de incremento y disminucin pueden estar tanto delante como detrs de una variable. Estos operadores aumentan o disminuyen en 1, respectivamente, el valor de una variable. La diferencia entre ambas posiciones reside en el momento en que se ejecuta la operacin.

Operador Descripcin (x=5) y = ++ x y = x++ y = -- x y = x-y =-x Primero el incremento y despus la asingancin. y=6 Primero la asignacin y despus el incremento y=5 Primero el decremento y despus la asingancin. y=4 Primero la asignacin y despus el decremento. y=5 Se asigna a y el valor negativo de x, pero x no vara. y = -5

Ejemplo 5.2: Se muestra el funcionamiento de los operadores aritmticos


<SCRIPT LANGUAGE="Javascript"> <!--//Operadores aritmticos var num1=5, num2=8,resultado1, resultado2; resultado1=((num1+num2)*200)/100; resultado2=resultado1%3; resultado1=++num1; resultado2=num2++; resultado1=--num1; resultado2=num2--; resultado1=-resultado2; // --> </SCRIPT>

[Ejecucin]

Operadores de comparacin
Para comparar dos valores entre s, se utiliza el operador de comparacin. Como valor de retorno se obtiene un valor lgico o booleano: true o false.
Operador Descripcin == != > < Devuelve el valor true cuando los dos operandos son iguales. Devuelve el valor true cuando los dos operandos son distintos. Devuelve el valor true cuando el operando de la izquierda es mayor que el de la derecha. Devuelve el valor true cuando el operando de la derecha es menor que el de la

izquierda. >= <= Devuelve el valor true cuando el operando de la izquierda es mayor o igual que el de la derecha. Devuelve el valor true cuando el operando de la derecha es menor o igual que el de la izquierda.

Ejemplo 5.3: Se muestra el resultado de distintas expresiones lgicas.


<SCRIPT LANGUAGE="Javascript"> <!--//Operadores de comparacin var a=4;b=5; document.write("<BR>El resultado "+(a==b)); document.write("<BR>El resultado "+(a!=b)); document.write("<BR>El resultado "+(a>b)); document.write("<BR>El resultado "+(a<b)); document.write("<BR>El resultado "+(a>=b)); document.write("<BR>El resultado "+(a<=b)); // --> </SCRIPT>

de la expresin 'a==b' es igual a de la expresin 'a!=b' es igual a de la expresin 'a>b' es igual a de la expresin 'a<b' es igual a de la expresin 'a>=b' es igual a de la expresin 'a<=b' es igual a

[Ejecucin]

Operadores lgicos
Los operadores lgicos se utilizan para el procesamiento de los valores booleanos. A su vez el valor que devuelven tambin es booleano: true o false. Suponemos para los ejemplos la siguiente instruccin var a=3;b=4;c=5;
Operador Descripcin && || ! Y lgica. El valor de devolucin es true cuando ambos operandos son verdaderos. O lgica. El valor de devolucin es true cuando alguno de los operandos es verdadero o lo son los dos. No lgica. El valor de devolucin es true cuando el valor es falso.

Ejemplo 5.4: Se muestra el resultado de distintas operaciones realizadas con

operadores lgicos.

<SCRIPT LANGUAGE="Javascript"> <!--//Operadores lgicos document.write("<BR>El resultado de la expresin 'false&&false' es igual a "+(false&&false)); document.write("<BR>El resultado de la expresin 'false&&true' es igual a "+(false&&true)); document.write("<BR>El resultado de la expresin 'true&&false' es igual a "+(true&&false)); document.write("<BR>El resultado de la expresin 'true&&true' es igual a "+(true&&true)); document.write("<BR>El resultado de la expresin 'false||false' es igual a "+(false||false)); document.write("<BR>El resultado de la expresin 'false||true' es igual a "+(false||true)); document.write("<BR>El resultado de la expresin 'true||false' es igual a "+(true||false)); document.write("<BR>El resultado de la expresin 'true||true' es igual a "+(true||true)); document.write("<BR>El resultado de la expresin '!false' es igual a "+(!false)); // --> </SCRIPT>

[Ejecucin]

Operador typeof
El operador typeof variable devuelve una cadena de texto que describe el tipo de datos al que pertenece la variable. Ejemplo 5.5. Describe el tipo de datos de distinas variables.
<HTML> <HEAD> <SCRIPT LANGUAGE="Javascript"> var ciudad="Oviedo"; var edad=6; var carnet=true; document.write("<BR>La variable ciudad es de tipo: "+typeof ciudad+ "<BR>"); document.write("La variable edad es de tipo: "+typeof edad + "<BR>"); document.write("La variable carnet es de tipo: "+typeof carnet + "<BR>"); </SCRIPT> </HEAD> <BODY> </BODY> </HTML>

[Ejecucin]

eval()

La funcin eval() calcula la cadena de caracteres que se ha de transmitir y devuelve el resultado como valor. si la cadena contiene caracteres que no se pueden interpretar como parte de la operacin de clculo, emite un mensaje de error. Ejemplo 5.6. Se pide una expresin numrica y se averiguar el resultado utilizando la funcin eval().
var expresion,resultado; expresion=prompt("Introduce la operacin a realizar",""); resultado=eval(expresion); alert ("El resultado de la operacion es "+resultado);

[Ejecucin]

Ejercicios
Ejercicio 5.1: Completar el siguiente cdigo con las sentencias indicadas en los

comentarios.
<HTML> <HEAD> <SCRIPT LANGUAGE="Javascript"> var precioOrdenador,nombre; precioOrdenador=150000; //Calcular el 16% del precio del ordenador y mostar por pantalla //Mostrar una expresin lgica con operadores de comparacin cuyo resultado sea True //Mostrar una expresin lgica con operadores de comparacin cuyo resultado sea False //Mostrar una expresin lgica con operadores lgicos cuyo resultado sea True //Mostrar una expresin lgica con operadores lgicos cuyo resultado sea False /*Pedir el nombre de un animal por pantalla y despus mostrar el tipo de la variable en la que se almacen el dato y el de "precioOrdenador*/ </SCRIPT> </HEAD> <BODY> </BODY> </HTML>

Ejercicio 5.2: Escribir las instrucciones necesarias para realizar las siguientes

operaciones: 1. Incrementar en 1 el contenido de una variable llamada precio 2. Decrementar en 1 el contenido de una variable llamada precio

3. Tenemos una variable llamada total y otra precio1, conseguir acumular en la variable total el contenido de precio1. 4. Tenemos una variable llamada aux1 y otra llamada aux2, conseguir asignar el valor de aux2 a aux1 e incrementar, posteriormente, el valor de aux2 en 1. 5. Tenemos una variable llamada aux1 y otra llamada aux2, conseguir incrementarel valor de aux2 en 1 y, posteriormente, asignar el valor de aux2 a aux1.
Ejercicio 5.3: Supongamos el siguinte fragmento de cdigo
var var var var aux1=7; aux2=10; aux3=17; aux4=20;

Qu devolvera el siguiente cdigo?: alert((aux1<aux3)&&(aux2<aux4)); Qu devolvera el siguiente cdigo?: alert((aux1>aux3)||(aux2<aux4)); Qu devolvera el siguiente cdigo?: alert((aux1<aux3)||(aux2!=aux4));
Ejercicio 5.4. Dada la declaracin inicial de variables siguiente:
var var var var var aux1=7; aux2="perro"; aux3=17; aux4="20"; total1,total2,total3,total4,total5,total6;

Hacer un programa donde se muestre el resultado de las siguentes operaciones, mostrar tambin el tipo de datos resultante de cada operacin (typeof). Fijarse en los resultados: datos y tipo de dato.
total1=aux1+aux2 total2=aux1+aux3 total3=aux1+aux4 total4=aux2+aux3 total5=aux2+aux4 total6=aux3+aux4

Ejercicio 5.5. Hacer la traza del siguiente cdigo e indicar que valores se muestran

por pantalla.
var porcentaje=12; var apuesta; apuesta=prompt("Introduce la apuesta ",""); apuesta=parseInt(apuesta); porcentaje=(apuesta*12)/100; porcentaje+=1;

apuesta-=porcentaje; document.write("La casa se queda con el 12%+1 que se corresponde con "+porcentaje+" euros"); document.write("<BR>Tu apuestas "+apuesta+" euros");

Ejercicio 5.6. Hacer la traza del siguiente cdigo e indicar que valores se muestran

por pantalla. Hacer una traza suponiendo que se introduce el nombre de Ana y otra introduciendo el nombre de Pedro.
var veces,puntos=3,total=100; var nombre,auxLog; nombre=prompt("Introduce tu nombre",""); veces=prompt("Cuantas veces has entrado aqu",""); auxLog=(nombre=="Ana"); alert("Eres Ana?="+auxLog); veces=parseInt(veces); veces+=1; puntos=++veces; total=total+puntos+veces; auxLog=(nombre=="Pedro")&&(veces==3); alert ("El valor total es "+total+"\nEres Pedro y has entrado 3 veces?:"+auxLog);

6. BUCLES/ESTRUCTURAS
Para controlar el flujo de informacin en los programas JavaScript existen una serie de estructuras condicionales y bucles que permiten alterar el orden secuencial de ejecucin.

if-else
La instruccin if es permite la ejecucin de un bloque u otro de instrucciones en funcin de una condicin. Sintaxis:
If (condicin) { bloque de instrucciones que se ejecutan si la condicin se cumple } else{ bloque de instrucciones que se ejecutan si la condicin no se cumple }

Las llaves slo se han de utilizar cuando haya varias instrucciones seguidas pertenecientes a la ramificacin.

Puede existir una instruccin if que no contenga la parte else. En este caso, se ejecutaran una serie de rdenes si se cumple la condicin y si esto no es as, se continuara con la rdenes que estn a continuacin del bloque if.
Ejemplo 6.1. Pide un da de la semana y emite un mensaje en el caso de que la

variable xdia sea domingo.


<SCRIPT LANGUAGE="Javascript"> <!--//Instruccin if-else var xdia; xdia=prompt("Introduce el da de la semana ", ""); if (xdia == "domingo") alert("Hoy es festivo"); else alert ("Hoy no es domingo, es muy problable que tengas que trabajar"); </SCRIPT>

[Ejecucin]
Ejemplo 6.2: Analiza la edad de Luis y Ana, las cuales se piden por pantalla.
<SCRIPT LANGUAGE="Javascript"> <!--//Instruccin if-else var edadAna,edadLuis; edadAna=parseInt(prompt("Introduce la edad de Ana","")); edadLuis=parseInt(prompt("Introduce la edad de Luis","")); if (edadAna > edadLuis){ document.write("Ana es mayor que Luis."); document.write(" Ana tiene ",edadAna," aos y Luis ", edadLuis); } else{ document.write("Ana es menor o de igual edad que Luis."); document.write(" Ana tiene ",edadAna," aos y Luis ", edadLuis); } </SCRIPT>

[Ejecucin] Ramificaciones anidadas Para las condiciones ramificadas ms complicadas, a menudo se utilizan las ramificaciones anidadas. En ellas se definen consultas if dentro de otras consultas if. Ejemplo 6.3: Analiza, de una forma precisa, la edad de Luis y Ana, las cuales se piden por pantalla.
<SCRIPT LANGUAGE="Javascript"> <!--//Instruccin if-else anidadas var edadAna,edadLuis;

edadAna=parseInt(prompt("Introduce la edad de Ana","")); edadLuis=parseInt(prompt("Introduce la edad de Luis","")); if (edadAna > edadLuis){ document.write("Ana es mayor que Luis."); } else{ if (edadAna<edadLuis){ document.write("Ana es menor que Luis."); }else{ document.write("Ana tiene la misma edad que Luis."); } } document.write(" Ana tiene ",edadAna," aos y Luis ", edadLuis); </SCRIPT>

[Ejecucin]

El operador ?
La construccin ? se conoce tambin como operador condicional. La ventaja de este operador es que permite comprobar dos valores distintos tomando como base una condicin. Sintaxis: (condicin) ? verdadero:falso; La condicin puede ser una expresin o cualquier valor booleano. En base al resultado se ejecutar a continuacin o bien la instruccin contenida enverdadero(true) o la contenida en falso (false). Ejemplo 6.4: Averigua el navegador utilizado y muestra el nombre en pantalla.
<SCRIPT LANGUAGE="Javascript"> <!--//Instruccin condicional ? var navegador, aviso; navegador=navigator.appName; aviso=(navegador=="Microsoft Internet Explorer")? "Est utilizando el navegador IE":"Est utilizando un navegador distinto a IE"; document.write(aviso); </SCRIPT>

[Ejecucin]

La instruccin switch
En la instruccin switch se calcula la expresin indicada en ella y, segn el resultado, se ejecuta una instruccin determinada dentro del grupo de comandos.

Sintaxis:
switch (variable){ case valor1: instruccin1; break case valor2: instruccin2; break etc default: instruccinI }

Con esta estructura se puede evitar el uso de intrucciones if anidadas. Primero se comprueba un valor para ver si concuerda con los bloques case, y si la equivalencia es positiva se ejecuta la instruccin correspondiente. Si el valor no concuerda, la instruccin se ejecuta en la parte default, lo que corresponde a la ramaelse de una consulta if-else. Este ltimo bloque es opcional. Ejemplo 6.5: Pide un nombre por pantalla y muestra un mensaje personalizado.
<SCRIPT LANGUAGE="Javascript"> <!--//Instruccin condicional swith var nombre; nombre=prompt("Introduce tu nombre",""); switch (nombre){ case "Alberto": alert ("Hola "+nombre+" te esperaba"); break case "Gonzalo": alert ("Hola "+nombre+" ya te envi lo que me pediste"); break default: { alert ("Hola "+nombre+" bienvenid@"); } } </SCRIPT>

[Ejecucin]

Bucle for
Cuando la ejecucin de un programa llega a un bucle for, lo primero que hace es ejecutar la Inicializacin del ndice, a continuacin analiza la Condicin de prueba y si esta se cumple ejecuta las instrucciones del bucle. Cuando finaliza las ejecucin de las instrucciones del bucle se realiza la Modificacin del ndice y las lneas de cgigo que contiene el bucle y cuando stas finalizan, se retorna a la cabecera del bucle for y se realiza la despus la Condicin de prueba, si la

condicin se cumple se ejecutan las instrucciones y si no se cumple la ejecucin contina en las lneas de cdigo que siguen al bucle. Sintaxis:
for (Inicializacin del ndice; Condicin de prueba; Modificacin en el ndice){ instrucciones }

Ejemplo 6.6: Escribe los nmeros pares de 0 a 30


<SCRIPT LANGUAGE="Javascript"> <!--//Bucle for for (i=2;i<=30;i+=2) { document.write ("<BR>"+i); } document.write("<BR> Ya se han escrito los nmeros pares del 0 al 30"); </SCRIPT>

[Ejecucin] Ejemplo 6.7: Escribe los nmeros pares de 0 a 30


<SCRIPT LANGUAGE="Javascript"> <!--//Bucle for for (i=30;i>=2;i-=2) { document.write ("<BR>"+i); } document.write("<BR> Ya se han escrito los nmeros pares del 0 al 30"); </SCRIPT>

[Ejecucin] Ejemplo 6.8: Escribe las potencias de 2 hasta 3000


<SCRIPT LANGUAGE="Javascript"> <!--//Bucle for aux=1; for (i=2;i<=3000;i*=2) { document.write ("<BR> 2 elevado a "+aux+" es igual a "+i); aux++; } document.write("<BR> Ya se han escrito las potencias de 2 menores de 3000"); </SCRIPT>

[Ejecucin]

El bucle while

Con el bucle while se pueden ejecutar un grupo de instrucciones mientras se cumpla una condicin. Si la condicin nunca se cumple, entonces tampoco se ejecuta ningna instruccin. Si la condicin se cumple siempre, nos veremos inmersos en el problema de los bucles infinitos, que pueden llegar a colapsar el navegador, o incluso el ordenador. Por esa razn es muy importante que la condicin deje de cumplirse en algn momento. Sintaxis:
while (condicin){ instrucciones }

Ejemplo 6.9: Escribe los nmeros pares de 0 a 30


<SCRIPT LANGUAGE="Javascript"> <!--//Bucle while i=2; while (i<=30) { document.write (i); i+=2; } document.write("<BR> Ya se han escrito los nmeros pares del 0 al 30"); </SCRIPT>

[Ejecucin] Ejemplo 6.10: Pregunta una clave hasta que se corresponda con una dada.
<SCRIPT LANGUAGE="Javascript"> <!--//Bucle while auxclave=""; while (auxclave!="anonimo"){ auxclave=prompt("introduce la clave ","anonimo") } document.write ("Has acertado la clave"); </SCRIPT>

[Ejecucin]

El bucle do-while
La diferencia del bucle do-while frente al bucle while reside en el momento en que se comprueba la condicin: el bucle do-while no la comprueba hasta el final, es decir, despus del cuerpo del bucle, lo que significa que el bucle do-while se recorrer, una vez, como mnimo, aunque no se cumpla la condicin. Sintaxis:

do { instrucciones } while(condicin)

Esta orden fue introducida en las versiones JavaScript 1.2. Esto significa que los programas que contienen este bucle slo funcionan con los navegadores de cuarta generacin o superiores de Netscape y Microsoft. Ejemplo 6.11: Preguntar por una clave hasta que se introduzca la correcta
<SCRIPT LANGUAGE="Javascript"> <!--//Bucle do-while do { auxclave=prompt("introduce la clave ","anonimo") } while (auxclave!="anonimo") document.write ("Has acertado la clave"); </SCRIPT>

[Ejecucin]

Las instrucciones break y continue


En los bucles for y while se pueden utilizar las instrucciones break y continue para modificar el comportamiento del bucle. La instruccin break dentro de un bucle hace que ste se interrumpa inmediatamente, aun cuando no se haya ejecutado todava el bucle completo. Al llegar la la instruccin, el programa se sigue desarrollando inmediatamente a continuacin del bucle. Ejemplo 6.12: Pregunta por la clave y permitir tres respuestas incorrectas
<SCRIPT LANGUAGE="Javascript"> <!--//instrucciones break var auxclave=true; var numveces=0; //Mientras no introduzca la clave y no se pulse Cancelar while (auxclave != "anonimo" && auxclave){ auxclave=prompt("Introduce la clave ",""); numveces++; if (numveces == 3)break; } if (auxclave= ="anonimo") document.write("La clave es correcta"); else document.write("La clave no es correcta correcta"); </SCRIPT>

[Ejecucin]

El efecto que tiene la instruccin continue en un bucle es el de hacer retornar a la secuencia de ejecucin a la cabecera del bucle, volviendo a ejecutar la condicin o a incrementar los ndices cuando sea un bucle for. Esto permite saltarse recorridos del bucle. Ejemplo 6.13: Presenta todos los nmeros pares del 0 al 50 excepto los que sean mltiplos de 3
<SCRIPT LANGUAGE="Javascript"> <!--//instrucciones continue var i; for (i=2;i<=50;i+=2){ if ((i%3)==0) continue; document.write("<br>"+i); } </SCRIPT>

[Ejecucin]

Ejercicios
Ejercicio 6.1: Hacer la traza del siguente script, para los siguientes casos:

1. Que el usuario quiera ejecutar el programa e introduzca un nmero par. 2. Que el usuario quiera ejecutar el programa e introduzca un nmero impar. 3. Que el usuario no quiera ejecutar el programa.
var x,y,ejecutar; ejecutar=confirm("Desea ejecutar el programa?"); if (ejecutar){ alert("Practica de la estructura if"); x=prompt("Introduce un nmero ",""); x=parseInt(x); y=x%2; if (y==0){ alert("El nmero "+x+" es par "); } else{ alert("El nmero "+x+" es impar"); } } else{ alert("Perdiste una oportunidad"); }

Ejercicio 6.2: Escribir un script que permita introducir un nombre por pantalla y

que en el caso de que sea "Ramn" muestre un mensaje felicitndolo por su regreso. En todos los casos se muestra un mensaje informando de que la pgina Web hoy no est disponible.

Ejercicio 6.3: Escribir un script que permita introducir un pas y si no es Espaa

muestre el siguiente mensaje: "Bienvenido a nuestro pas". En cualquier otro caso no debe hacer nada.
Ejercicio 6.4: Escribir un script que permita introducir un nmero de ao y que

nos diga si pertenece al segundo milenio o no.


Ejercicio 6.5: Escribir un script que permita introducir un nmero y que muestre

un mensaje si el nmero es mltiplo de 3 (si el resto de dividirlo por 3 es 0) y otro si no lo es.


Ejercicio 6.6: Escribir un script que permita introducir el nombre del mes y el da.

Por pantalla se debe mostrar un mensaje indicando si es el da de Navidad o no.


Ejercicio 6.7: Escribir un script que pregunte si ya quiere dar sus datos personales

utilizando la ventana confirm(), en caso de que acepte se deben ejecutar las siguientes intrucciones: 1. Preguntar su nombre. 2. Preguntar la edad que tendr al final del ao actual. 3. Calcular el ao de nacimiento. 3. Mostar una ventana dando las gracias y el ao en el que naci. En el caso de que no acepte se deben ejecutar las siguientes instrucciones: 1. Mostar en una ventana el navegador que utiliza.
Ejercicio 6.8: Escribir un script que permita introducir dos nmeros y que muestre

un mensaje indicando cual es el mayor. En el caso de que sean iguales mostrar un mensaje indicndolo.
Ejercicio 6.9: Escribir un script que permita introducir tres nmeros y que muestre

un mensaje indicando cual es el menor.


Ejercicio 6.10: Escribir un script que pregunte por el nombre de dos personas (una

orden para cada caso) y por la edad de cada uno (una orden para cada caso). A continuacin se debe mostrar por pantalla el nombre de la persona mayor y en el caso de que tengan la misma edad se debe indicar en pantalla.
Ejercicio 6.11: Escribir un script que pregunte si quiere ver la frase del d

utilizando la orden confirm(). En el caso de que pulse Aceptar se debe mostrar por pantalla la frase: "No por mucho madrugar amanece ms temprano" y en el

caso de pulsar Cancelar se debe mostrar por pantalla el siguiente mensaje: "Vaya falta de curiosidad!"
Ejercicio 6.12: Escribir un script que pregunte por la ciudad de nacimiento del

usuario utilizando la orden prompt(). Si el usuario pulsa Cancelar mostar el siguiente mensaje:"Pues me quedo sin saber donde naciste", si el usuario pulsa Aceptar se debe comprobar si la ciudad es Oviedo y en caso afirmativo mostar el mensaje:"Naciste en Oviedo, como yo" y si no mostar un mensaje indicando la ciudad de nacimiento.
Ejercicio 6.13: Hacer los ejercicios 4 y 6 utilizando el operador ? Ejercicio 6.14: Hacer un script que al introducir el nombre de uno de los

trabajadores de la oficina (Pedro, Dcil, Rosa o Carmen) muestre un recado distinto para cada uno de ellos. En el caso de que el nombre introducido no sea de ningn trabajador entonces debe mostrar una pantalla con un mensaje de bienvenida. Utiliza la instruccin switch.
Ejercicio 6.15: Analizar el cdigo del script siguiente utilizando una traza para

ello. Indicar que es lo que se ve en pantalla en cada caso.


<SCRIPT LANGUAGE="Javascript"> var x=3; var y=3; var i,resultado; resultado=x; for (i=resultado;i<y;i++){ resultado*=y; } document.write("El resultado es "+resultado); </SCRIPT>

Hacer de nuevo la traza anterior en el caso de que x se inicialice en 1 en la primera instruccin.


Ejercicio 6.16: Hacer un script que pregunte por la nota de 4 asignaturas y despus

nos muestre la media.Utilizar el bucle for.


Ejercicio 6.17: Hacer un script que pregunte el nmero de mes en el que estamos,

en funcin de ello debe pedir al usuario la cantidad que ha ingresado cada uno de los meses. Al final debe mostrar la suma total de los ingresos en lo que va de ao y el iva de esa cantidad.Utilizar el bucle for.

Ejercicio 6.18: Hacer un script que muestre en pantalla los nmeros pares de 0 a

50 excepto el 20. Utilizar el bucle for.


Ejercicio 6.19: Hacer un script que muestre en pantalla los nmeros pares de 50 a

0 excepto el 22.Utilizar el bucle for.


Ejercicio 6.20: Hacer un script que lea un nmero por teclado y calcule su

factorial. El factorial de un nmero se calcula multiplicando el nmero por todos sus antecesores hasta el 1. Por ejemplo: el factorial de 5 es 5*4*3*2*1.Utilizar el bucle for.
Ejercicio 6.21: Hacer un script pida los ingresos y los gastos de los meses del

primer trimestre. Al final debe mostrar un mensaje indicando si se ha ganado dinero o se est en nmeros rojos. Utilizar el bucle for.
Ejercicio 6.22: Hacer el mismo script que el ejercicio anterior pero utilizando el

bucle while en vez de el bucle for.


Ejercicio 6.23: Analizar el cdigo del script siguiente utilizando una traza para

ello. Indicar que es lo que se ve en pantalla en cada caso.


<SCRIPT LANGUAGE="Javascript"> var x,a; var n=20000; x=1; a=10; while (a<n){ x+=1; a*=10 } document.write(x); </SCRIPT>

Ejercicio 6.24: Analizar el cdigo del script siguiente utilizando una traza para

ello. Indicar que es lo que se ve en pantalla en cada caso.


<SCRIPT LANGUAGE="Javascript"> var a,b,p; a=3; b=4; p=0; while (b!=0){ p+=a; b-=1; } document.write(p); </SCRIPT>

Ejercicio 6.25: Hacer un script que muestre en pantalla los nmeros pares de 0 a

50 excepto el 20. Utiliza la instruccin while.


Ejercicio 6.26: Hacer un script que muestre en pantalla los nmeros pares de 50 a

0 excepto el 22.Utiliza la instruccin while.


Ejercicio 6.27: Analizar el cdigo del script siguiente utilizando una traza para

ello. Indicar que es lo que se ve en pantalla en cada caso.


<SCRIPT LANGUAGE="Javascript"> var a,b,r; a=10; while (a>0){ b=a; r=1; if (a==4){ document.write("a es 4"); a-=4; continue; } for (b;b>0;b--){ r*=b; if (b==2)break; } a=b*2; document.write(a+"--->"+r+"<br>"); } </SCRIPT>

Ejercicio 6.28: Hacer un script que pregunte por la clave de entrada. El programa

slo finalizar cuando se introduzca la clave correcta, entonces se mostrar por pantalla el siguiente mensaje:"Clave correcta". Utiliza el bucle while.
Ejercicio 6.29: Aadir al siguiente script las rdenes necesarias para que slo

pregunte por la clave 3 veces cmo mximo.Utiliza el bucle break.

7. FUNCIONES
Una funcin es un conjunto de instrucciones que se agrupan bajo un nombre de funcin, slo cuando es llamada por su nombre en el cdigo del programa se provoca la ejecucin de las rdenes que contiene. Las funciones son muy importantes por diversos motivos:

Ayudan a estructurar los programas para hacerlos su cdigo ms comprensible y ms fcil de modificar. Permiten repetir la ejecucin de un conjunto de rdenes todas las veces que sea necesario sin necesidad de escribir de nuevo las instrucciones.

Una funcin consta de las siguientes partes bsicas:


Un nombre de funcin Los parmetros pasados a la funcin separados por comas y entre parntesis Las llaves de inicio y final de la funcin

Sintasix de la definicin de una funcin


function nombrefuncion (parmetro1, parmetro2){ instrucciones //si la funcin devuelve algn valor aadimos: return valor; }

Sintasix de la llamada a una funcin 1. La funcin se ejecuta siempre que se ejecute la sentencia.
nombrefuncion (parm1, parm2);

1. La funcin se ejecuta cuando se activa el enlace con el ratn


<A HREF="javascript:nombrefuncion (parm1, parm2)">Texto</A>

Es importante entender la diferencia entre definir una funcin y llamarla. Definir una funcin es simplemente especificar su nombre y definir qu acciones realizar en el momento en que sea invocada, para ello se emplea la palabra reservada function. Para llamar a una funcin es necesario especificar su nombre e introducir los parmetros que queremos que utilice. sta llamada se puede efectuar en una lnea de rdenes o bien a la derecha de una sentencia de asignacin en el caso de que la funcin devuelva algn valor debido al uso de la instruccin return. La definicin de una funcin se puede realizar en cualquier lugar del programa, pero se recomienda hacerlo en la cabecera del cdigo HTML. La llamada a una funcin se realizar cuando sea necesario, es decir, cuando se demande la ejecucin de las instrucciones que hay dentro de ella.

Ejemplo 7.1: Funcin que devuelve la suma de dos valores que se pasan por parmetros.
<HTML> <HEAD> <SCRIPT> <! function suma (a,b){ //definicin de la funcin return a+b; } function autora (){ document.write ("La autora es: Rosa Rodrguez"); } // --> </SCRIPT> </HEAD> <BODY> <SCRIPT> <! var op1=5;op2=25; var resultado; resultado=suma(op1,op2); //llamada a la funcin document.write (op1+"+"+"op2"+"="+resultado); // --> </SCRIPT> <A HREF="javascript:autora()">Ver autora</A> </BODY> </HTML>

[Ejecucin]

Variables locales y globales


Ahora que ya conocemos las funciones es muy importante diferenciar entre variables globales y locales:

Variables globales: pueden utilizarse en cualquier parte del cdigo y son declaradas fuera de toda funcin la instruccin var. Variables locales: se definen con la instruccin var dentro de una funcin y slo pueden ser utilizadas dentro de sta.

Ejemplo 7.2:
<SCRIPT LANGUAGE="JavaScript"> <!-<!--//Definicin de una vble global var vbleglobal1=20; function prueba(){ var vblelocal1=10; //Definicin de vble local var vblelocal2=vbleglobal1+vblelocal1; //En la funcn se puede acceder a las vble globales y locales

//definidas dentro de ella alert ("La suma de la vble local (10) y la global (20) es "+ vblelocal2); } prueba(); alert ("La variable global es "+vbleglobal1); //Desde fuera de la funcin las vbles locales definidas en ella no son accesibles //--> </SCRIPT>

[Ejecucin]

Ejercicios
Ejercicio 7.1: Crear una pgina web con enlace que active una ventana que

muestre el texto de un provervio.


Ejercicio 7.2: Crear una pgina web que al entrar pregunte por el nombre y la

direccin, despus muestre un ttulo y una imagen. Debajo de la imagen debe aparecer un enlace que al activarlo muestre en una ventana el nombre y la direccin introducida al cargarse la pgina.
Ejercicio 7.3: Crear una pgina web que al entrar pregunte por la edad y el nombre

de tres personas, despus muestre un ttulo y una imagen. Debajo de la imagen debe existir los siguientes enlaces:

que muestre el nombre y la edad de la persona mayor que muestre el nombre y la edad de la persona menor que muestre la media de las edades introducidas que muestre el ao de nacimiento y el nombre de la persona mayor que muestre el ao de nacimiento y el nombre de la persona menor

Ejercicio 7.4: Crear un programa muestre el siguiente men utilizando la orden

document.write:

1. Suma 2. Multiplicacin 3. Divisin 4. Resta 5. Calcular el resto de la divisin

El programa debe permitir introducir una opcin. Al elegir una de las opciones nos debe pedir los nmeros con los que realizar la operacin, ejecutarla y mostrar el resultado. Hacer la estructura de funciones de tal manera que los nmeros se

soliciten y se muestren en el programa principal, en las respectivas funciones slamente se deben realizar las operaciones.
Ejercicio 7.5: Modificar el programa anterior para que el men se componga de

enlaces, los cuales deben activar las respectivas operaciones.

Vous aimerez peut-être aussi