Академический Документы
Профессиональный Документы
Культура Документы
Tutorial de JavaScript
NDICE
Introduccin.............................................................................................................1
La etiqueta <SCRIPT> ............................................................................................2
Gramtica.................................................................................................................3
Sentencias, bloques y comentarios..........................................................................4
Variables..................................................................................................................5
Tipos de datos..........................................................................................................6
Procedimientos y funciones.....................................................................................7
Operadores.............................................................................................................10
Estructuras de control de flujo...............................................................................12
Objetos...................................................................................................................15
Objetos del lenguaje...............................................................................................16
Eventos...................................................................................................................22
Objetos del navegador............................................................................................24
Formularios............................................................................................................35
Implantacin de Aplicaciones
Tutorial de JavaScript
Introduccin
Ya que has seguido un curso de HTML, puedes observar una cosa: crear un
documento HTML es crear algo de carcter esttico, inmutable con el paso del
tiempo. La pgina se carga, y ah termina la historia. Tenemos ante nosotros la
informacin que buscbamos, pero no podemos interactuar con ella. As pues, como
solucin a este problema, nace JavaScript. Y qu es JavaScript?
Se trata de un lenguaje de tipo script (guin), basado en objetos y guiado
por eventos diseado especficamente para el desarrollo de aplicaciones
cliente-servidor dentro del mbito de Internet.
Los programas JavaScript van incrustados en los documentos HMTL (entre
las etiquetas <SCRIPT> y </SCRIPT>), y se encargan de realizar acciones en el
cliente, como pueden ser pedir datos, confirmaciones, mostrar mensajes, crear
animaciones, mostrar "popups" o texto que sigue al ratn, comprobar campos...
Los programas en JavaScript no generan ningn tipo de cdigo compilado, sino que
ste se interpreta en el navegador de Internet una vez se descarga la pgina que lo
contiene. JavaScript, por tanto, es un lenguaje interpretado.
Este curso pretende iniciarte en el uso de este lenguaje. Observa en esta pgina
algunas de las aplicaciones de JavaScript y comienza a estudiar siguiendo el orden
establecido en el ndice.
Implantacin de Aplicaciones
Tutorial de JavaScript
La etiqueta <SCRIPT>
JavaScript (desde ahora JS) es un lenguaje de script, de guiones, creado
originalmente por la empresa Nestcape, que se inserta en las pginas web
mediante la etiqueta <SCRIPT> de HTML.
Una vez que el navegador descarga una pgina que contiene un script se encarga
de interpretarlo y de ejecutarlo. As se consigue la independencia del script frente a
la plataforma. Lo nico que necesitamos, pues, es un navegador que interprete
scripts!
Existen varias versiones del lenguaje JS y adems diferentes nmeros de versin
para cada navegador, por ejemplo, JavaScript 1.3 para Nestcape Navigator 4.06 y
4.6 o JScript 5 para Microsoft Internet Explorer 5.0, entre otros.
La etiqueta <Script> puede insertarse en cualquier parte de la pgina, aunque
frecuentemente se sita en la seccin de cabecera. Mediante el atributo language
se debe indicar si se trata de un script de JS o de cualquier otro lenguaje (si no se
indica se sobreentiende que es un script de JavaScript):
<Script language="JavaScript">
<!-cdigo
//-->
</Script>
Los smbolos <!-- y //--> evitan que los navegadores que no puedan interpretar
scripts interpreten el cdigo de stos como parte del contenido de la pgina. Para
facilitar la lectura del cdigo a veces no se incluyen tales smbolos en los ejemplos
de este curso.
Y si el navegador no soporta scripts? Pues se puede agregar la etiqueta especial
<NOSCRIPT></NOSCRIPT> que mostrar su contenido si el navegador no
soporta lenguajes de guiones.
Una pgina web puede contener ms de un script. Su orden de ejecucin
corresponde a su orden de aparicin en la pgina. Si bien hay scripts que no son
ejecutados hasta que el usuario lleve a cabo alguna accin (como los manejadores
de eventos) o el estado de la pgina cambie por algn motivo (por ejemplo, porque
se acaba de procesar todo el documento).
Implantacin de Aplicaciones
Tutorial de JavaScript
Gramtica
Ya que conoces otro lenguaje de programacin ests familiarizado con el uso de
variables, operadores, declaraciones... Lo que se resume en la tabla siguiente son
los elementos principales de la gramtica de JS.
Variables
Operadores
Expresiones
Sentencias
Objetos
Funciones y
Mtodos
Nota importante:
JavaScript es sensible a maysculas y minsculas, todos los elementos de JS deben
referenciarse como se definieron, no es lo mismo Variable1 que variable1.
Implantacin de Aplicaciones
Tutorial de JavaScript
</Script>
Los bloques no son ms que conjuntos de sentencias agrupadas que llevan a cabo
una accin especfica dentro del cdigo. En JS las sentencias se agrupan mediante
los smbolos { y }. El siguiente cdigo te preguntar por tu nombre. Si escribes
Alicia obtendr dos mensajes. No te preocupes por entender todo el cdigo!
Simplemente fjate en las dos sentencias incluidas entre llaves:
<Script language="JavaScript">
nombre = prompt("Introduzca su nombre por favor", "")
if(nombre == "Alicia")
{
alert("Hola " + nombre);
alert("Hoy vamos a estudiar JavaScript");
}
</Script>
Por ltimo mediante los comentarios podemos hacer explcito a otros (o a
nosotros mismos en un futuro) las tareas llevadas a cabo por nuestro cdigo. JS
utiliza el smbolo // para especificar un comentario de una lnea y /* y */ para
encerrar los comentarios de ms de una lnea. Los comentarios no son
interpretados por el navegador:
//La siguiente sentencia te desea unos "buenos das"
alert("Buenos das")
Tambin se suelen situar a la derecha del cdigo:
alert("Buenas noches") //Te desea "buenas noches"
Implantacin de Aplicaciones
Tutorial de JavaScript
Variables
Las variables son una de las piezas clave de todo lenguaje de programacin. Las
variables nos permiten almacenar y manipular datos.
Generalmente antes de usar una variable hay que declararla. Declarar una
variable no es ms que reservar una regin de la memoria de trabajo del ordenador
para su uso posterior. La siguiente sentencia declara una variable denominada
cadena mediante la palabra reservada var:
var cadena
Nota 1: Los nombres de las variables pueden contener letras, nmeros y el smbolo _.
No se puede utilizar un nmero como primer carcter del nombre de una variable.
Por ahora slo hemos reservado espacio en memoria. An no hemos asignado
ningn valor. Si quisieras asignar tal valor a las variables anteriormente declaradas
tendras que escribir los siguientes cdigos:
var cadena
cadena = "Alicia"
//declara la variable
//asigna el valor "Alicia"
Implantacin de Aplicaciones
Tutorial de JavaScript
Tipos de datos
JS es un lenguaje "poco tipado" ya que posee muy pocos tipos distintos de datos.
Cuando declaramos una variable sta no pertenece a ningn tipo en concreto
(undefined) hasta que se le asigna un valor. Son correctas las siguientes
asignaciones:
var mivariable;
mivariable=123.72;
mivariable=true;
mivariable="Hola a todos";
Los tipos de valores que pueden ser asignados a una variable son bsicamente los
siguientes:
Numricos
(Number)
Alfanumricos
(String)
Booleanos
(Boolean)
Referencias a
objetos (Object)
En funcin del tipo de valor asignado a una variable diremos que la variable es de
tipo number, string, boolean, object, etc. Veamos un ejemplo:
numeroEntero = 4
numeroCFlotante = 0.5
cadena = "Alicia"
booleano = true
referenciaObjeto = window
En el ejemplo anterior aparece el valor contenido en la variable y el tipo de dato
que es. Esto ltimo se consigue gracias a la funcin typeof(), que devuelve una
cadena indicando el tipo de dato de la variable que se le enva como parmetro.
Quizs te ests preguntando qu valores contienen las variables que an no han
sido inicializadas (es decir, que slo han sido declaradas) y a que tipos pertenecen.
En el caso de JS una variable que no ha sido inicializada es de tipo undefined y
contiene el valor especial null.
var nombre
alert(nombre)
Implantacin de Aplicaciones
Tutorial de JavaScript
Procedimientos y funciones
Los procedimientos y las funciones nos van a permitir llevar a cabo diferentes
tareas. Por ahora slo hemos visto como declarar y asignar valores (si bien la
sentencia alert es en realidad un mtodo del objeto window, como veremos ms
adelante). La diferencia entre los procedimientos y las funciones es que estas
ltimas adems de llevar a cabo una tarea devuelven un valor. Veamos
primeramente un ejemplo de un procedimiento:
<Script language="JavaScript">
function buenosDias()
{
alert("Buenos das")
}
buenosDias()
</Script>
JS utiliza la palabra reservada function. Los argumentos deben ir entre parntesis.
Si no hay argumentos simplemente aparecern los parntesis. El cuerpo de la
funcin se sita entre llaves. La nica sentencia del cuerpo en el ejemplo es
alert("Buenos das"). La ltima sentencia se limita a llamar al procedimiento por su
nombre. Obsrvese que JS incluye parntesis despus del nombre del
procedimiento.
Si incluimos este script en una pgina web obtendremos el mensaje de buenos das
correspondiente. Si bien, para esto, sera ms fcil incluir simplemente la sentencia
alert apropiada. Ahora bien, imagina que el cdigo correspondiente a los
procedimientos slo se ejecute cuando el usuario pulse sobre un determinado botn
de la pgina (como en los ejemplos de este curso):
<Script language="JavaScript">
function buenosDias1()
{
alert("Buenos das")
}
</Script>
Implantacin de Aplicaciones
{
}
Tutorial de JavaScript
c = a + b
return c
total = suma1(3, 2)
alert(total)
</Script>
Como antes utiliza las mismas normas para nombrar funciones y parntesis para
sus argumentos. A diferencia del ejemplo anterior, en ste la funcin tiene dos
argumentos, a y b, que recibirn los valores 3 y 2 cuando sea llamadas mediante la
expresin suma1(3, 2). Posteriormente en el cuerpo de la funcin se asigna a c el
resultado de sumar los valores a y b, tras lo cual se devuelve el resultado de c
mediante la sentencia return a la variable total. Por ltimo las sentencias siguientes
son las encargadas de pasar los valores a la funcin, recibir el resultado de la
operacin de sta y finalmente mostrar el resultado mediante una sentencia alert.
Al igual que antes, podemos llamar a esta funcin mediante un botn. Pero esta vez
vamos a complicar un poco ms las cosas. Vamos a pedir al usuario que introduzca
los dos nmeros a ser sumados:
<Script language="JavaScript">
function suma3()
{
uno = prompt("introduzca un nmero", "")
dos = prompt("introduzca otro nmero", "")
c = uno + dos
return c
}
</Script>
La funcin prompt(), al igual que la sentencia alert, es un mtodo del objeto window
que nos permite mostrar una peticin al usuario. Debe incluirse la cadena vaca
como segundo argumento para evitar que aparezca la cadena undefined en el
cuadro de texto donde el usuario debe introducir los datos, por defecto.
Seguramente te habrs percatado de que las funciones anteriores no realizan la
adicin de los valores introducidos, como era de esperar, sino que se limitan a
concatenar tales valores. Esto se debe a que prompt() devuelve una cadena no un
valor numrico y a que el operador + concatena cadenas cuando alguno de sus
operandos es una cadena. Para evitar esto se deben convertir los valores devueltos
por prompt() a valores numricos mediante la funcin parseInt() de la manera
siguiente:
<Script language="JavaScript">
function suma5()
{
uno = prompt("introduzca un nmero", "")
dos = prompt("introduzca otro nmero", "")
c = parseInt(uno) + parseInt(dos)
return c
}
</Script>
Implantacin de Aplicaciones
Tutorial de JavaScript
Las funciones como parseInt(), del objeto Global, nos ahorran trabajo en la
elaboracin de nuestro cdigo. JS cuenta con un gran nmero de funciones de este
tipo para llevar a cabo operaciones relacionadas con el tipo de las variables, las
cadenas, las fechas y ciertos clculos matemticos. En JS las operaciones
concernientes a cadenas, fechas y operaciones matemticas son tratadas como
mtodos de objetos. Los estudiaremos ms adelante.
Nota 1: Las funcin parseFloat() acomete la misma tarea para valores en coma
flotante.
Nota 2: Las variables declaradas en el mbito de una funcin o procedimiento
reciben el nombre de variables locales. Cada vez que se llama a una funcin o
procedimiento que contenga una declaracin de una variable local sta es cargada
en la memoria del ordenador hasta que se sale de la funcin o procedimiento.
Deben ser declaradas explcitamente:
function local()
{
var nombre
nombre = "Alicia"
alert(nombre)
}
local()
alert(nombre)
Una vez que se llame a los correspondientes procedimientos se mostrar el
contenido de la variable nombre. Ahora bien, una vez se sale del procedimiento ste
se descarga de memoria produciendo un error en tiempo de ejecucin en JS.
Las variables declaradas fuera del mbito de una funcin reciben el nombre de
globales. A diferencia de las anteriores se encuentran disponibles en memoria
durante toda la ejecucin del programa:
var numero
numero = 5
function global()
{
numero = 3
}
global1()
alert(numero)
Nota 3: En JS las variables se pasan a las funciones por valor, igual que en C:
var numero
numero = 5
function valor(n)
{
n = n - 3
}
valor(numero)
alert(numero)
En JS la sentencia valor(numero) pasa el valor de numero, es decir un 5, al argumento n
del procedimiento. Por lo tanto la variable numero no se ve afectada por las
operaciones llevadas a cabo por el procedimiento.
Implantacin de Aplicaciones
Tutorial de JavaScript
Operadores
Los smbolos encargados de llevar a cabo unas determinadas operaciones con unos
determinados valores reciben el nombre de operadores y los fragmentos de
cdigo en los cuales aparecen se denominan expresiones. La expresin n = a + 3
es numrica porque el valor resultante de llevar a cabo la operacin que la integra
es de tipo numrico. Pero tambin hay expresiones de tipo cadena, booleanas, etc.
Veremos a continuacin los diferentes tipos de operadores ms usados en JS:
Aritmticos
*
Efecta una multiplicacin entre sus operandos. Ej. 3*4 es igual a 12.
Efecta una divisin entre sus operandos. Ej. 3/4 es igual a 0.75.
Efecta una adicin entre sus operandos. Ej. 3 + 2 es igual a 5. En JS, si alguno de los operandos
es una cadena se obtiene una concatenacin de los operandos. Ej. "Alicia tiene " + 5 + " aos" es
igual a 'Alicia tiene 5 aos'.
Efecta una substraccin de sus operandos. Ej. 3 - 2 es igual a 1. Tambin funciona como signo
negativo de un nmero.
=
=
=
=
5
++a
10
a++
//Asigna 5 a 'a'
//a y b valen 6.
//asigno 10 a 'a'
//b vale 10 no 11! a vale 11
De comparacin
==
Devuelve true si ambos operandos contienen el mismo valor numrico, alfanumrico, booleano o la
misma referencia a objeto.
!=
Devuelve true si ambos operandos no contienen el mismo valor numrico, alfanumrico, booleano
o la misma referencia a objeto.
<
Efecta una comparacin entre sus operandos devolviendo true si el primer operando es menor o
anterior que el segundo. Ej. 3 < 4 es igual a true.
>
Efecta una comparacin entre sus operandos devolviendo true si el primer operando es mayor o
posterior que el segundo. Ej. 3 > 4 es igual a false.
<=
Efecta una comparacin entre sus operandos devolviendo true si el primer operando es menor o
igual que el segundo. Ej. 3 <= 4 es igual a true.
>=
Efecta una comparacin entre sus operandos devolviendo true si el primer operando es mayor o
igual que el segundo. Ej. 3 <= 4 es igual a false.
10
Implantacin de Aplicaciones
===
Tutorial de JavaScript
Devuelve true si existe igualdad estricta entre los operandos; es decir, coinciden en contenido y en
tipo. Ej. var a="3"; varb=3; se cumple que a==b, pero no se cumple que a===b.
= 5
= 4
+= a
-= a
*= a
/= a
//Es
//Es
//Es
//Es
equivalente
equivalente
equivalente
equivalente
a
a
a
a
b
b
b
b
=
=
=
=
b
b
b
b
+
*
/
a
a
a
a
Lgicos
!
&&
||
Otros operadores
Asigna un valor especificado a una variable si la condicin
(condicin) ? trueVal :
es true, por otra parte asigna un valor alternativo si la
falseVal
condicin es false.
new
this
delete
void
typeof
11
Implantacin de Aplicaciones
Tutorial de JavaScript
12
Implantacin de Aplicaciones
Tutorial de JavaScript
.
default:
cdigo
}
En esta estructura se ejecuta el cdigo correspondiente al caso cuya comparacin
de identidad entre su valor y la expresin arroje como resultado true. Veamos un
ejemplo:
nombre = prompt("Introduzca su nombre por favor", "")
switch(nombre)
{
case "Alicia":
alert("Hola Alicia")
break
case "Lewis":
alert("Hola Lewis")
break
default:
alert("Hola " + nombre)
}
Bucles
Como ya hemos dicho los bucles nos permiten repetir un nmero determinado o
indeterminado de veces ciertas sentencias de nuestro cdigo. En JS, for es el bucle
determinado por excelencia:
for(i = inicio; expresin condicional; i++)
{
cdigo
}
En un bucle for primeramente se inicializa una variable que recibe el nombre de
contador representada comnmente con la letra i. A continuacin en JS se comprueba
la expresin condicional. Si es true se ejecuta el cdigo correspondiente, se aade una
unidad a la variable contador y se vuelve a evaluar la expresin condicional y a ejecutar
el cdigo, hasta que la expresin condicional devuelva false. Veamos un ejemplo:
var m
m = ""
for(i = 0; i < 5; i++)
{
m += "vuelta " + i + "\n"
}
alert(m)
alert(i)
Si ejecutas el cdigo observa que el bucle ejecuta el cuerpo del bucle un total de 5
veces. Fjate en el valor final de la variable contador. La secuencia de escape '\n'
permite introducir un salto de carro en el cuadro de dilogo alert.
Por ltimo un bucle indeterminado de JS es:
while(expresin condicional)
13
Implantacin de Aplicaciones
{
Tutorial de JavaScript
cdigo
}
En JS se ejecuta el cuerpo del bucle mientras que la expresin condicional sea true.
Ejemplo:
i = 0
while(i < 5)
{
alert(i)
i++
}
Tambin se acepta la siguiente variante del bucle indeterminado:
do
{
cdigo
}
while(expresin condicional)
La diferencia estriba en que mientras que el primero puede no llegar a ejecutarse,
el segundo siempre ejecutar el cuerpo del bucle al menos una vez.
En cualquier momento se puede salir de un bucle de JS mediante la palabra clave
break. Adems podemos pasar a la siguiente vuelta de un bucle mediante la
palabra clave continue.
14
Implantacin de Aplicaciones
Tutorial de JavaScript
Objetos
Un objeto es una estructura que contiene tanto variables (llamadas propiedades)
como funciones que manipulan dichas variables (llamadas mtodos). A partir de
esta estructura se ha creado un nuevo modelo de programacin, la programacin
orientada a objetos, que atribuye a los mismos propiedades como herencia o
polimorfismo. Como veremos, JavaScript simplifica en algo este modelo.
El modelo de la programacin orientada a objetos normal y corriente separa los
mismos en dos: clases e instancias. Las primeras son entes ms abstractos que
definen un conjunto determinado de objetos. Las segundas son miembros de una
clase, poseyendo las mismas propiedades que la clase a la que pertenecen. En
Javascript esta distincin se difumina. Slo tenemos objetos.
Propiedades y mtodos
Veamos ahora cmo se accede a los mtodos y propiedades de un objeto:
objeto.propiedad
objeto.metodo(parmetros)
Un constructor es una funcin que inicializa un objeto. Cuando creamos un objeto
nuevo del tipo que sea, lo que hacemos en realidad es llamar al constructor
pasndole argumentos. Por ejemplo, si creamos un objeto Array de esta manera:
vector = new Array(9);
En realidad, estamos llamando a un constructor llamado Array que admite un
parmetro. Sera algo as:
function Array(longitud)
{
...
}
Clasificacin de los objetos
Una primera clasificacin del modelo de objetos lo dividira en dos grandes grupos.
Por una parte, tendramos los objetos directamente relacionados con el navegador y
las posibilidades de programacin HTML (denominados, genricamente, objetos
del navegador), que estudiaremos ms adelante, y por otra parte un conjunto de
objetos relacionados con la estructura del lenguaje, llamados genricamente
objetos del lenguaje u objetos intrnsecos.
En el apartado siguiente vamos a estudiar estos ltimos, posteriormente se
estudiarn los objetos del navegador.
15
Implantacin de Aplicaciones
Tutorial de JavaScript
El objeto Object
El objeto Object es aquel del que derivan todos los objetos de JS. Proporciona, por
tanto, una funcionalidad comn a todos los objetos existentes. Cuenta con dos
mtodos que podremos aplicar, por tanto, a cualquier objeto de los que
estudiaremos ms adelante. Estos mtodos son:
El objeto Math
El objeto Math es un objeto global que ofrece constantes y mtodos para
desarrollar funciones bsicas para matemticas. Veamos ahora algunos mtodos de
este objeto:
Math.sqrt(n)
Math.abs(n)
16
Implantacin de Aplicaciones
Tutorial de JavaScript
Math.random()
El objeto String
El objeto String facilita mtodos para la manipulacin de cadenas de texto. Su
nica propiedad es length, que devuelve la longitud de la cadena. Por ejemplo,
"Alicia".length es igual a 6.
A continuacin veremos algunos de los mtodos con los que cuenta:
String.fromCharCode(n) Devuelve el carcter ASCII correspondiente a n. Ej.
String.fromCharCode(65,66) es igual a "AB".
cadena.charCodeAt(i)
cadena.charAt(i)
cadena.substr(i, n)
cadena.substring(i, n)
cadena1.indexOf(
17
Implantacin de Aplicaciones
Tutorial de JavaScript
cadena2, i)
cadena1.lastIndexOf(
cadena2, i)
cadena.toUpperCase()
cadena.toLowerCase()
Hay que hacer ciertas matizaciones con respecto a las cadenas. Habrs observado
que aparte del primer mtodo en el cual se usa el objeto String, el resto de mtodos
se han utilizado sobre cadenas normales. Esto se debe a que en JS las cadenas
pueden ser tratadas de la manera habitual o como objetos:
s = new String("Alicia")
alert(s.toUpperCase())
Adems de estos mtodos el objeto String cuenta con varios mtodos que encierran
a la cadena tratada entre etiquetas HTML. Estos mtodos son:
cadena.bold()
cadena.font(color)
cadena.italics()
cadena.link(referencia)
cadena.small()
cadena.sub() y
cadena.sup()
El objeto Date
En JS debemos crear un objeto Date para poder utilizar alguno de los mtodos
correspondientes al tratamiento de fechas:
fecha = new Date()
18
Implantacin de Aplicaciones
Tutorial de JavaScript
alert(fecha)
Mediante el mtodo toLocaleString() obtendremos un formato de fecha ms
acorde con nuestro sistema:
fecha = new Date()
alert(fecha.toLocaleString())
Veamos algunos de los mtodos asociados al objeto denominado fecha:
fecha.getDate()
fecha.getMonth()
fecha.getHours()
El objeto Array
Este objeto nos va a dar la facilidad de construir arrays cuyos elementos pueden
contener cualquier tipo bsico, y cuya longitud se modificar de forma dinmica
siempre que aadamos un nuevo elemento (y, por tanto, no tendremos que
preocuparnos de esa tarea). Para poder tener un objeto array, tendremos que
crearlo con su constructor, por ejemplo, si escribimos:
a=new Array(15);
tendremos creada una variable a que contendr 15 elementos, enumerados del 0 al
14. Para acceder a cada elemento individual usaremos la notacin a[i], donde i
variar entre 0 y N-1, siendo N el nmero de elementos que le pasamos al
constructor.
Tambin podemos inicializar el array a la vez que lo declaramos, pasando los
valores que queramos directamente al constructor, por ejemplo:
a=new Array(21,"cadena",true);
que nos muestra, adems, que los elementos del array no tienen por qu ser del
mismo tipo.
19
Implantacin de Aplicaciones
Tutorial de JavaScript
array.reverse()
array.sort()
array.pop()
El siguiente cdigo introduce en una matriz las 26 letras del abecedario anglosajn
y las presenta separadas por el signo '-'.
var alfabeto = new Array(26);
for (i=0;i<alfabeto.length-1;i++)
alfabeto[i]=String.fromCharCode(65+i);
alert(alfabeto.join('-'));
20
Implantacin de Aplicaciones
Tutorial de JavaScript
El objeto Global
El objeto Global ofrece al programador una serie de mtodos y propiedades que
estn a su alcance en cualquier mbito de una aplicacin escrita con JS.
Las propiedades de este objeto son:
Infinity
NaN
Valor que indica que una expresin que debera ser un nmero no lo
es realmente.
undefined
isFinite(n)
isNaN(n)
parseInt(cadena)
21
Implantacin de Aplicaciones
Tutorial de JavaScript
Eventos
Un evento, como su mismo nombre indica, es algo que ocurre. Para que una rutina
nuestra se ejecute slo cuando suceda algn suceso deberemos llamarla desde un
controlador de eventos. Estos controladores se asocian a un elemento HTML que los
admita y se incluyen as:
<ELEMENTO manejadorDeEvento="Cdigo_JavaScript">
Siendo ELEMENTO una etiqueta HTML y manejadorDeEvento un evento provedo
por el navegador.
Lista de eventos
Aqu tienes una pequea gua de eventos definidos en JavaScript.
Evento
Descripcin
onLoad
<BODY...>
<FRAMESET...>
onUnLoad
<BODY...>
<FRAMESET...>
<A HREF..>
<AREA...>
onMouseOut
<A HREF..>
<AREA...>
onSubmit
Enviar un formulario
<FORM...>
onClick
Pulsar un elemento
onBlur
Perder el cursor
<INPUT TYPE="text"...>
<TEXTAREA...>
onChange
Cambiar de contenido o
perder el cursor
<INPUT TYPE="text"...>
<TEXTAREA...>
onFocus
Conseguir el cursor
<INPUT TYPE="text"...>
<TEXTAREA...>
onSelect
Seleccionar texto
<INPUT TYPE="text"...>
<TEXTAREA...>
Ejemplo:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function Calc(f)
{
if( confirm("Seguro?") )
f.result.value = eval(f.expr.value);
else
alert("Vuelve otra vez.");
22
Implantacin de Aplicaciones
Tutorial de JavaScript
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
Introduzca una expresin:
<INPUT TYPE="text" NAME="expr" SIZE=15>
<INPUT TYPE="button" VALUE="Calcular" ONCLICK="Calc(this.form)">
<BR>
Resultado:
<INPUT TYPE="text" NAME="result" SIZE=15 >
<INPUT TYPE="reset" NAME="Submit" VALUE="Borrar todo">
</FORM>
</BODY>
</HTML>
Que se despliega como:
Introduzca una expresin:
Resultado:
Borrar todo
23
Implantacin de Aplicaciones
Tutorial de JavaScript
El objeto Window
Es el objeto principal. Define la ventana sobre la que estamos trabajando e incluye
los objetos referentes a la barra de tareas, el documento o la secuencia de
direcciones de la ltima sesin.
An cuando el objeto se llame Window, disponemos siempre de una referencia a l
llamada window (recordad que Javascript distingue entre maysculas y minsculas).
Ser con esa referencia con la que trabajemos. Este hecho ser comn a todos los
objetos del modelo de objetos.
Por ltimo, indicar que en Javascript, se supone que todas las propiedades y
mtodos que llamamos sin utilizar ninguna referencia, en realidad se hacen
utilizando esa referencia window. As, por ejemplo, cuando ejecutamos el mtodo
24
Implantacin de Aplicaciones
alert() en realidad
window.alert().
Tutorial de JavaScript
lo
que
estamos
haciendo
es
ejecutar
el
mtodo
[Variable=][window.]open(URL,
nombre, propiedades)
Permite crear (y abrir) una nueva ventana. Si queremos tener acceso a ella desde la
ventana donde la creamos deberemos asignarle una variable, si no simplemente
invocamos el mtodo: el navegador automticamente sabr que pertenece al
objeto window. El parmetro URL es una cadena que contendr la direccin de la
ventana que estamos abriendo: si est en blanco, la ventana se abrir con una
pgina en blanco. El nombre ser el que queramos que se utilize como parmetro
de un TARGET y las propiedades son una lista separada por comas de algunos de
los siguientes elementos:
toolbar[=yes|no]
location[=yes|no]
directories[=yes|no]
status[=yes|no]
menubar[=yes|no]
scrollbars[=yes|no]
resizable[=yes|no]
width=pixels
height=pixels
Debemos tener cuidado con las propiedades que modifiquemos, es posible que
algunas combinaciones de los mismos no funcionen en todos los navegadores. El
Explorer 4, por ejemplo, da error ante la combinacin toolbar=no, directories=no,
menubar=no. Veamos un ejemplo:
<SCRIPT LANGUAGE="JavaScript">
function AbrirVentana()
{
MiVentana=open("","Ventana","toolbar=no,menubar=no,status=yes");
MiVentana.document.write("<HEAD><TITLE>Ttulo</TITLE></HEAD>");
MiVentana.document.write("<CENTER><H1><B>"+
"Esto puede ser lo que tu quieras"+
"</B></H1></CENTER>");
}
</SCRIPT>
<BODY>
...
<INPUT TYPE="button"
NAME="Boton1"
VALUE="Plsame" onClick="AbrirVentana();">
...
</BODY>
25
Implantacin de Aplicaciones
Tutorial de JavaScript
MiVentana y escribe en ella por medio del objeto Document (que se estudiar ms
adelante) todo el cdigo HTML de la pgina.
close()
Cierra la ventana actual. A no ser que hayamos acabado de abrirla nosotros
mostrar al usuario una ventana de confirmacin para que decida l si quiere o no
cerrarla. Esto se hace por motivos de seguridad, ya que sera demasiado fcil hacer
un script de esos mal intencionados que nos cerrase la ventana del navegador.
alert(mensaje)
Muestra una ventana de dilogo con el mensaje especificado.
confirm(mensaje)
Muestra una ventana de dilogo con el mensaje especificado y dos botones. Si el
usuario pulsa OK, el mtodo devuelve true. Si, en cambio, pulsa Cancelar, devolver
false.
prompt(mensaje,valor_por_defecto)
Muestra una ventana de dilogo con el mensaje especificado y un campo de texto
en el que el usuario pueda teclear, cuyo valor inicial ser igual a valor_por_defecto.
Si el usuario pulsa OK, el mtodo devuelve la cadena introducida en el campo de
texto. Si, por el contrario, pulsa Cancelar, devolver el valor null. Dado que este
valor se considera igual a false, podemos comprabarlo directamente en una
condicin para ver qu ha hecho el usuario.
Por ejemplo, el siguiente cdigo muestra un saludo slo si el usuario ha pulsado el
botn de Aceptar:
var
contestacion = prompt("Cmo te llamas, criatura?","");
if (contestacion)
alert("Hola, " + contestacion);
[identificador=]setTimeout("funcion",tiempo)
Llama a funcin cuando hayan pasado tiempo milisegundos. Imprescindible a la
hora de realizar cualquier rutina que deba ejecutarse a cierta velocidad.
clearTimeout(identificador)
Detiene el proceso anterior.
scroll(x,y)
Desliza el documento contenido en la ventana hasta la posicin especificada por las
coordenadas x e y que indican el grado de desplazamiento horizontal y vertical en
pxels, respectivamente. Ambos argumentos estn referidos a la esquina superior
izquierda de la ventana actual.
26
Implantacin de Aplicaciones
Tutorial de JavaScript
name
Sirve para averiguar o asignar el nombre de una ventana determinada.
closed
Propiedad booleana que indica si la ventana est o no cerrada.
length
Informa sobre la cantidad de ventanas hijas que contiene la ventana actual
(frames).
self
Devuelve una referencia a la propia ventana. Suele usarse para diferenciar una
ventana de un formulario si tienen el mismo nombre.
parent
Devuelve una referencia a la ventana que contiene a la ventana actual.
top
Devuelve una referencia a la ventana de orden superior del navegador, es decir, a
la que contiene todas las dems ventanas.
status
Define la cadena de caracteres que saldr en la barra de estado en un momento
dado.
dafaultStatus
Define la cadena de caracteres que saldr por defecto en la barra de estado.
Cuando no la especificamos, defaultStatus ser igual al ltimo valor que tom
status.
frames[]
Uno de los problemas ms frecuentes a los que se enfrenta un programador de
Javascript es el manejo de marcos. Es decir, cmo accedo yo al cdigo o a objetos
como Window o Document de otros marcos? JS propone una manera bastante
sencilla de hacerlo.
JS considera el documento de declaracin de marcos (es decir, aquel en el que
escribimos las etiquetas FRAME y FRAMESET) como un objeto Window normal y
27
Implantacin de Aplicaciones
Tutorial de JavaScript
corriente. Permite acceder a los marcos que hemos declarado en l por medio del
vector frames. Es decir, si en nuestro documento estuviera la siguiente lnea:
<FRAME NAME="principal"
SRC="MiPagina.html">
Podramos acceder a su objeto
window.frames["principal"].
Window
por
medio
de
la
referencia
El objeto Navigator
Este objeto permite obtener diversas informaciones sobre el navegador donde se
est ejecutando el cdigo JS. Se suele usar para averiguar el nombre y la versin
28
Implantacin de Aplicaciones
Tutorial de JavaScript
del navegador que ejecuta nuestro cdigo, de forma que se puedan tomar
decisiones sobre qu tipo de cdigo ejecutar o qu tipo de pginas mostrar.
appName
Cadena que contiene el nombre del cliente.
appVersion
Cadena que contiene informacin sobre la versin del cliente.
cpuClass
Informa sobre el tipo de procesador sobre el que se est ejecutando el sistema
operativo.
javaEnabled()
Averigua si el navegador est configurado para soportar el uso de programas
escritos en Java, como los Applets.
Ejemplo:
<SCRIPT LANGUAGE="JavaScript">
function Navegador()
{
alert(navigator.appName);
alert(navigator.appVersion);
alert(navigator.cpuClass);
if
(navigator.javaEnabled())
alert("S est preparado para
soportar Applets de Java");
else
alert("NO est preparado
para soportar Applets de Java");
}
</SCRIPT>
El objeto Screen
Como caba esperarse, se puede acceder a este objeto por medio de la referencia
screen. Nos permitir conocer la configuracin de la pantalla del usuario. Al igual
que en el anterior objeto, todos sus atributos son de slo lectura. Conviene indicar
que este objeto slo est disponible desde las versiones 4.0 de los navegadores.
29
Implantacin de Aplicaciones
Tutorial de JavaScript
Propiedades.
height
Averigua la altura en pxels de la pantalla.
width
Averigua la anchura en pxels de la pantalla.
colorDepth
Indica el nmero de bits utilizados para proporcionar el color en la pantalla del
sistema donde se ejecuta el navegador. Por ejemplo, si vale 4 es que se permite la
visualizacin de 16 colores al mismo tiempo (24).
As, por ejemplo, puedes comprobar la configuracin de tu pantalla con el siguiente
cdigo:
Ejemplo:
function
Pantalla()
{
var texto=screen.width + "x"
+ screen.height
+ "x"
+ Math.pow(2,screen.colorDepth) + " colores.";
alert(texto);
}
El objeto Document
Este objeto representa el propio documento HTML que se est mostrando en la
ventana del navegador. Se accede a l por medio de la referencia document
(aunque tambin sera vlido window.document). Su mayor importancia viene por
el nmero de vectores que posee, que referencian a objetos Image, Form o Link,
los cuales permiten acceder a las imgenes, formularios y enlaces del documento,
respectivamente.
lastModified
Contiene la fecha y hora en que se modific el documento por ltima vez y se suele
usar en conjuncin con write para aadir al final del documento estas
caractersticas.
bgColor
30
Implantacin de Aplicaciones
Tutorial de JavaScript
open()
31
Implantacin de Aplicaciones
Tutorial de JavaScript
Abre un nuevo documento para escribir. Un documento debe estar abierto para
poder escribir en l.
close()
Cierra el documento, impidiendo escribir de nuevo en l.
write(cadena)
Escribe el cdigo HTML indicado en cadena en nuestro documento HTML.
A la hora de escribir en un documento por medio de write hay que tener en cuenta
un hecho fundamental. Para poder escribir en un documento, ste debe estar
abierto y, al abrirlo, se destruye todo el cdigo que haya en l.
Un documento se abre automticamente cuando empieza a cargarse y se cierra
cuando termina de hacerlo. As pues, si deseamos escribir en un documento sin
sobreescribir su contenido, deberemos hacerlo antes de que ste termine de
cargar. Si lo hacemos despus, sobreescribiremos su contenido. Por lo tanto:
//escribir.html
<HTML>
<HEAD>
<TITLE>Escribe
y no sobreescribe</TITLE>
</HEAD>
<BODY>
Este es un
documento que fue modificado por ltima vez el da
<SCRIPT
LANGUAGE="JavaScript">document.write(document.lastModified);
</SCRIPT>
</BODY>
</HTML>
32
Implantacin de Aplicaciones
Tutorial de JavaScript
onLoad="escribir()">
Hola.
</BODY>
</HTML>
El objeto History
Se accede a este objeto por medio de la referencia window.history y contiene
todas las direcciones que se han visitado en la sesin actual. Aunque no permite
acceder a ellas, dispone de varios mtodos para sustituir el documento actual por
alguno que el usuario ya haya visitado:
back()
Volver a la pgina anterior. Es muy sencillo de utilizar, slo tienes que pulsar
cuya etiqueta se ha declarado como:
aqu,
<A HREF="javascript:window.history.back()">
forward()
Ir a la pgina siguiente.
go(donde)
Ir a donde se indique, siendo donde un nmero tal que go(1) significa lo mismo que
forward() y go(-1) es equivalente a back().
El objeto Location
Se accede a este objeto por medio de la referencia window.location y contiene
informacin sobre la direccin de la pgina actual en varias propiedades.
href
Permite el acceso a la direccin de la pgina actual. Si lo cambiamos cambiaremos
de pgina.
protocol
Protocolo de la pgina actual. Habitualmente http.
host
33
Implantacin de Aplicaciones
Tutorial de JavaScript
34
Implantacin de Aplicaciones
Tutorial de JavaScript
Formularios
En el captulo anterior veamos que uno de los objetos descendientes del objeto
document era el objeto Form. En este captulo, pues, vamos a estudiar con
detenimiento este objeto y todos sus componentes.
El objeto Form es el contenedor de todos los elementos del formulario. La siguiente
figura muestra los objetos que puede contener un objeto Form:
action
reset()
submit()
Vistas ahora las propiedades y mtodos del objeto Form, pasamos a estudiar, uno
por uno, todos los objetos contenidos en el formulario.
El objeto checkbox
Las "checkboxes" nos permiten seleccionar varias opciones marcando el cuadrito
que aparece a su izquierda. El cuadrito pulsado equivale a un "s" y sin pulsar a un
"no" o, lo que es lo mismo, a "true" o "false".
35
Implantacin de Aplicaciones
Tutorial de JavaScript
Propiedades
checked
defaultChecked
name
value
Mtodos
click()
Realiza la accin de pulsado del botn
<HTML>
<HEAD>
<title>Ejemplo de CheckBox</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!-function Mostrar()
{
msg="Opcion 1:"+formulario.check1.checked+"\n";
msg+="Opcion 2:"+formulario.check2.checked+"\n";
msg+="Opcion 3:"+formulario.check3.checked+"\n";
alert(msg);
}
//-->
</script>
<BODY>
<form name="formulario" id="formulario">
<input type="checkbox" name="check1" checked>Opcion 1<br>
<input type="checkbox" name="check2">Opcion 2<br>
<input type="checkbox" name="check3" checked>Opcion 3<br>
</form>
<A href="javascript:Mostrar()">Ver valores</A>
</BODY>
</HTML>
El objeto select
Este objeto representa una lista de opciones dentro de un formulario. Puede
tratarse de una lista desplegable de la que podremos escoger alguna (o algunas) de
sus opciones.
Propiedades
length
name
36
Implantacin de Aplicaciones
Tutorial de JavaScript
Se trata de un array que contiene cada una de las opciones de la lista. Este
array tiene, a su vez, las siguientes propiedades:
options
<HTML>
<HEAD>
<title>Ejemplo de Select y Options</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!-function Mostrar()
{
msg="Elementos:"+formulario.edad.length+"\n";
msg+="Edad: "+
formulario.edad.options[formulario.edad.selectedIndex].value+
"\n";
alert(msg);
}
//-->
</script>
<BODY>
<form name="formulario" id="formulario">
Edad:<br><select name="edad">
<option value="<18" SELECTED>Menor de 18 aos</option>
<option value=">18 y <60">Entre 18 y 60 aos</option>
<option value=">60">Mayor de 60 aos</option>
</select> </form>
<A href="javascript:Mostrar()">Ver valores</A>
</BODY>
</HTML>
El objeto radio
Al contrario que con los checkbox, que nos permiten elegir varias posibilidades
entre las dadas, los objetos radio slo nos permiten elegir una de entre todas las
que hay. Estn pensados para posibilidades mtuamente excluyentes (no se puede
ser a la vez mayor de 18 aos y menor de 18 aos, no se puede estar a la vez
soltero y casado, etc.).
Propiedades
checked
37
Implantacin de Aplicaciones
Tutorial de JavaScript
defaultChecked
length
name
value
Hay que recordar que para agrupar elementos de tipo radio, todos ellos deben
tener el mismo valor en NAME.
Mtodos
click()
Realiza la accin de pulsado del botn.
<HTML>
<HEAD>
<title>Ejemplo de Radio</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!-function Mostrar()
{
msg="Elementos:"+formulario.edad.length+"\n";
msg+="Menor de 18 aos:"+formulario.edad[0].checked+"\n";
msg+="Entre 18 y 60 aos:"+formulario.edad[1].checked+"\n";
msg+="Mayor de 60 aos:"+formulario.edad[2].checked+"\n";
alert(msg);
}
//-->
</script>
<BODY>
<form name="formulario" id="formulario">
Edad:<br>
<input type="radio" name="edad" value="<18">
Menor de 18 aos.<br>
<input type="radio" name="edad" value=">18 y <60" checked>
Entre 18 y 60 aos.<br>
<input type="radio" name="edad" value=">60">
Mayor de 60 aos.<br>
</form>
<A href="javascript:Mostrar()">Ver valores</A>
</BODY>
</HTML>
El objeto button
Tenemos tres tipos de botones: un botn genrico, 'button', que no tiene accin
asignada, y dos botones especficos, 'submit' y 'reset'. Estos dos ltimos s que
tienen una accin asignada al ser pulsados: el primero enva el formulario y el
segundo limpia los valores del formulario.
name
Propiedades
Es una cadena que contiene el valor del parmetro NAME.
38
Implantacin de Aplicaciones
value
Tutorial de JavaScript
Propiedades
dafaultValue
name
value
maxlength
Mtodos
blur()
focus()
39
Implantacin de Aplicaciones
Tutorial de JavaScript
40