sintaxis del javascript - instituto...

32
Sintaxis del JavaScript El código JavaScript del que hablaremos en este manual va embebido en un documento HTML, y no tendremos en cuenta la reciente aparición de los scripts de servidor que pueden ir también codificados en JavaScript. Normalmente se escribe el código entre las etiquetas <SCRIPT> y </SCRIPT> de la página Web. Se recomienda que dicho código vaya incluido en la cabecera del documento, es decir, entre las etiquetas <HEAD> y </HEAD>. De esta manera, haremos que se cargue el script antes de ser llamado por el manejador de eventos en el cuerpo del documento, <BODY></BODY>, ya que si fuera al revés el manejador de eventos no tendría nada a qué referirse. Volvamos sobre el ejemplo de variables globales y locales para incluirlo ya en una página HTML capaz de ser visualizada por un browser. Las modificaciones aparecen en el siguiente ejemplo. <HTML> <HEAD> <TITLE>PRUEBA 1 </TITLE> <SCRIPT> var globalvar1=5; Function multiplica() { var localvar1=2 * globalvar1; alert("Dos por cinco son= " + localvar1); } </SCRIPT> </HEAD> <BODY BGCOLOR="#00AA00" TEXT="#FFFFFF" LINK="#0000FF" VLINK="#0000FF" ALINK="#0000FF" onLoad=multiplica()> <CENTER><H1> Esto es un ejemplo</H1></CENTER> </BODY> </HTML> Pulsa aquí para ver cómo se vería esta página. Como se puede observar, hemos incluido, como se mencionó previamente, el código de script en sus etiquetas correspondientes y dentro de la cabecera del documento. Una vez dentro del cuerpo del documento, se ha incluido un manejador de eventos onLoad, que llama al script definido en la carga de la página, ejecutándolo. El script es una función que contiene un método, alert(), que despliega una ventana con el texto definido como argumento del método. A la hora de diseñar nuestras páginas y scripts se debe pensar también en los usuarios que no disponen de browsers capaces de tratar nuestros diseños. Por ello existe una etiqueta específica para estos últimos: <NOSCRIPT></NOSCRIPT>. El contenido de estas etiquetas es tratado por los browsers que no admiten scripts, mientras que no se interpreta por los que sí lo hacen. Para usar correctamente el JavaScript en un browser, es importante saber cómo funciona éste último a la hora de visualizar el diseño y la composición del texto plano modificado con códigos HTML. Esta composición a partir del diseño especificado se realiza

Upload: others

Post on 19-Oct-2019

41 views

Category:

Documents


2 download

TRANSCRIPT

Sintaxis del JavaScript El código JavaScript del que hablaremos en este manual va embebido en un documento HTML, y no tendremos en cuenta la reciente aparición de los scripts de servidor que pueden ir también codificados en JavaScript. Normalmente se escribe el código entre las etiquetas <SCRIPT> y </SCRIPT> de la página Web. Se recomienda que dicho código vaya incluido en la cabecera del documento, es decir, entre las etiquetas <HEAD> y </HEAD>. De esta manera, haremos que se cargue el script antes de ser llamado por el manejador de eventos en el cuerpo del documento, <BODY></BODY>, ya que si fuera al revés el manejador de eventos no tendría nada a qué referirse. Volvamos sobre el ejemplo de variables globales y locales para incluirlo ya en una página HTML capaz de ser visualizada por un browser. Las modificaciones aparecen en el siguiente ejemplo.

<HTML> <HEAD> <TITLE>PRUEBA 1 </TITLE> <SCRIPT> var globalvar1=5; Function multiplica() { var localvar1=2 * globalvar1; alert("Dos por cinco son= " + localvar1); } </SCRIPT> </HEAD> <BODY BGCOLOR="#00AA00" TEXT="#FFFFFF" LINK="#0000FF" VLINK="#0000FF" ALINK="#0000FF" onLoad=multiplica()> <CENTER><H1> Esto es un ejemplo</H1></CENTER> </BODY> </HTML>

Pulsa aquí para ver cómo se vería esta página. Como se puede observar, hemos incluido, como se mencionó previamente, el código de script en sus etiquetas correspondientes y dentro de la cabecera del documento. Una vez dentro del cuerpo del documento, se ha incluido un manejador de eventos onLoad, que llama al script definido en la carga de la página, ejecutándolo. El script es una función que contiene un método, alert(), que despliega una ventana con el texto definido como argumento del método. A la hora de diseñar nuestras páginas y scripts se debe pensar también en los usuarios que no disponen de browsers capaces de tratar nuestros diseños. Por ello existe una etiqueta específica para estos últimos: <NOSCRIPT></NOSCRIPT>. El contenido de estas etiquetas es tratado por los browsers que no admiten scripts, mientras que no se interpreta por los que sí lo hacen. Para usar correctamente el JavaScript en un browser, es importante saber cómo funciona éste último a la hora de visualizar el diseño y la composición del texto plano modificado con códigos HTML. Esta composición a partir del diseño especificado se realiza

siempre secuencialmente, es decir, el browser comienza desde la primera línea de la página y continua descendiendo hasta el final de la misma. Por ello el JavaScript sólo refleja código que ya se haya encontrado. Por ejemplo, definamos en un formulario dos entradas de texto:

<FORM NAME="formula"> <input type="text" name="usuario" size=20 > <input type="text" name="edad" size=3 > </FORM>

A partir de su definición ambos elementos se pueden reflejar en JavaScript como los objetos document.formula.usuario y document.formula.edad respectivamente.Sin embargo no se pueden usar si no están previamente definidos.Por ejemplo, podemos visualizar sus valores mediante un script incluido después de la definición del formulario:

<SCRIPT> document.write(document.formula.usuario.value) document.write(document.formula.edad.value) </SCRIPT>

Sin embargo si lo ponemos antes no funcionará y aparecerá un error por no estar definido. Otro ejemplo: si hemos definido el título del documento como:

<TITLE> PRUEBA DE JAVASCRIPT</TITLE> el browser visualiza en la barra de su ventana dicho título. Si intentamos ahora cambiar el valor del título:

Document.title ="UNA NUEVA PRUEBA DE JAVASCRIPT" éste no cambiará, ni siquiera generará un error. Antes de centrarnos en partes internas de un documento, vamos a recordar cómo insertar scripts. Hay dos maneras distintas:

• Como sentencias de control y funciones usando las etiquetas <SCRIPT></SCRIPT>.

• Como manejadores de eventos usando las demás etiquetas de HTML.

Recordemos la opción <SCRIPT LANGUAGE="JavaScript> de especificación de lenguaje de código, y digamos que dentro de estas etiquetas puede ir un número indeterminado de instrucciones. Asimismo, ha de resaltarse que JavaScript es "case sensitive", es decir, hace distinción entre letras mayúsculas y letras minúsculas. Es importante entender la diferencia entre definir una función e invocar una función. Definirla le da nombre y especifica qué instrucciones ejecuta al ser llamada e invocarla hace que realmente ejecute las instrucciones.

Caso Práctico

Para terminar este apartado vamos a estudiar un ejemplo que resume todo lo anteriormente explicado. Se trata de un script en un formulario con una llamada de manejador de eventos. El código lo podemos ver a continuación:

<HTML> <HEAD> <TITLE>FORMULARIO 1</TITLE> <SCRIPT LANGUAGE="JavaScript"> function calcula(form){ if (confirm("¿Está seguro?")) form.resultado.value=eval(form.expr.value); else alert("Vuelva a intentarlo."); } </SCRIPT> <NOSCRIPT> <META HTTP-EQUIV=REFRESH CONTENT=0;URL=pru1.htm> </NOSCRIPT> </HEAD> <BODY BGCOLOR="#00AA00" TEXT="#FFFFFF" LINK="#0000FF" VLINK="#0000FF" ALINK="#0000FF"> <CENTER><H1>Calculadora</H1> <BR><FORM> Introduzca expresión: <INPUT TYPE="text" NAME="expr" SIZE=15> <INPUT TYPE="button" VALUE="Calcular" onClick="calcula(this.form)"> <BR> Resultado: <INPUT TYPE="text" NAME "resultado" SIZE=15> <BR> </FORM></CENTER> </BODY> </HTML>

Lo primero que nos encontramos es la definición en la cabecera de documento de la función calcula(form) que tiene como argumento el propio formulario. Las instrucciones que contiene se rigen por un bloque if - else que valora un método no visto hasta ahora confirm("cadena"):

function calcula(form) { if (confirm("¿Está seguro?")) form.resultado.value=eval(form.expr.value); else alert("Vuelve a intentarlo."") }

Lo que hace es sacar una ventana, como la que aparecía con el método alert("cadena") con la única diferencia que ofrece dos botones: uno de cancelación y otro de confirmación.La elección del usuario es lo que impone la condición del bloque if. En la línea

if (confirm("¿Está seguro?")) se controla si el usuario ha elegido Aceptar. En este caso el valor del cuadro de texto "resultado" del formulario definido en el cuerpo del fichero, toma el valor del resultado, valga la redundancia, de la expresión que haya sido introducida en el cuadro de texto "expr". Si el usuario elige el botón de cancelar, entramos en el else del bloque, haciendo que aparezca una ventana con el método alert(), diciendo "Vuelva a intentarlo". Observamos también una función nueva hasta ahora:eval("cadena").Lo que hace esta función es transformar a valor numérico la expresión matemática introducida en la cadena. En nuestro caso la cadena viene dada por el contenido del cuadro de texto "expr". Hay que señalar que este script no valida la entrada de datos, por lo que si no introducimos una expresión susceptible de evaluación matemática, obtendremos un error.

����������������� ��������������������� �����������

<SCRIPT LANGUAGE="JavaScript"> <!-- Programa JavaScript //--> </SCRIPT>

����������������������������������������������� ���������������������� ���������������������������������������������������� ��������� ������������� �������������������� ���!�

��

2. Comentarios en JavaScript

������ ����������������"������������������ �#�������� �� ������������$�����%������������������ �!�&����������'����������� �����(���� ������)��� *���������+����������������������)������ ����!�,��������������������"�����-�� �������� ������������������&.&//!�0��)�������������� ����������������

// comentario de una línea

�������� ��������������������������)�����������������������/*�(����������� �������+���*/�(-������� �������+��

/* comentario de varias líneas */

����1����������� ��������� ����������������������������������������������{���}!���������������)��������������������1����� ��*�������� ��*�����!�

��

3. Inclusión de ficheros externos con código JavaScript

������������������� �������"����������� ���������������1����������� �� ���� ���)���� �� ������������������������<head>���</head>!�2���� �����������������������������������������������<body>���</body>�(�����#� ���)� �����������������)�������������������1������ �������+)������������ ������������ �������������-�����������'����������1������������� ���!�

3��������1�������������������������� ����������������-��4������%������)����%�����������!�,�����-��4�������������"������������� ��������������������"��������������� ��(����1��������� 1�'��������<head>���</head>+��

<SCRIPT LANGUAGE="JavaScript" SRC="fichero.js"></SCRIPT>

,������� ������ ��������� ����� ����������������� �������������������������������!���������������)������-�� ��������"�������-��4������%�������������� �������������������������������������������������!%����5��������5��� ����!�

��

4. Escritura de cadenas de texto en la página

����������1������������Texto��������� ����������

document.write("Texto")

����������1������������Texto��������� ��������� ����������������������

document.writeln("Texto")

&���������������������������"�����������������%����

������� �� ��������

6�� 5����������

6�� ��1�����

6�� 7���������������

6-� 0�� �����������-�� ������

61� 7���������������������

,#� �����

<HTML> <HEAD> <TITLE>Ejemplo 2.1: escritura de cadenas de texto</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- document.write('<IMG SRC="imagen.gif">') document.write("<BR><H1>Bienvenido a JavaScript</H1>") //--> </SCRIPT> </BODY> </HTML>

&� ������� 1��������� � ����������� �������1���)������%������������ '������������������ �������� ����!�

��

5. Cuadros de diálogo

��� ������ ����������������������������"������ '����alert() ����1#����window��

alert("Texto")

�����#� �����

alert("¡Bienvenido!\n\n\tEsta Web está dedicada a JavaScript.")

,�������������������������� �� ��������1�������������������������1�����������������������!�������������������������#� ������������)��������1�������� ������1������

,%����������������������������������� �������������*���������������!�,�� '����prompt()�����1#����window �����������#������%�������������������������������������������!��� 1�'�� ���������1������)�����������������!�,#� �����

prompt("Su color favorito es: ","Azul")

����������������������������1��������1������

,���� ������� ������������������������ ���������������#������%��)������������������ ��-����!�,��������������� ����� �����������������������������������������������"����������������1�����������!������#� ���)���� ���������������������������"������� 1��)��������� ����������

<HTML> <HEAD> <TITLE>Ejemplo 2.2: página que pide el nombre</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- var nombre = prompt("Introduzca su nombre:","") document.write("<H2>Bienvendio, " + nombre + "</H2>") //--> </SCRIPT> <P>Aquí va el resto de la página...</P> </BODY> </HTML>

����� ������������#� ����������������� ������������������

,#� �����!����� ���������������� 1���

��������"� �������#� ������������)��� ���������4���-�������������1������������-���������nombre!�,������������������1������� ������-���������%������ ���������� �����������&�������8�����1�#�����������������-�� �����!�

9���� ����)�����������������������-�� �����������������"��������������������� ���������� '����confirm()�����1#����window!�,���� '���� ��������������������� ��������� ����#������%������������� ����� ������ ����)������1������)�������������������

confirm("¿Desea volver al inicio de la página?")

,���� '�������������������(�� �+���������������������-�����(����+�������������������!���� ����������#� ���������������������� ���

:�� ����4�������#� ������ �������������"������������������ ���

<HTML> <HEAD> <TITLE>Ejemplo 2.3: página que pide confirmación</TITLE> </HEAD>

<BODY> <H1>Página sobre sellos</H1> <SCRIPT LANGUAGE="JavaScript"> <!-- var entrar = confirm("¿De verdad desea entrar en esta pagina?") if ( !entrar ) self.close() //--> </SCRIPT> <P>Aquí va el resto de la página...</P> </BODY> </HTML>

,�����#� �����������-�� �������������� ������������������� ���!���������� �������������������)����������������������(������� ���� ��������������������� �������-�� �����+!������������������)���� ���������������������� ���!���������������-�(�!!!�+����������������%������������&�������8�����1�#�����������������-�� �����!��������������������

Declaración de variables

��������� ���#������������ �� ������� ���������������1���!�,������������������1����1���������� ������������������-�� �����!��

var nombre_variable nombre_variable = "valor"

������ �������������������������������������1��!������ ������������������ ����������!������#� ���)�������� ��� ���������������������� �)���� ����-�������������1������� 1���resultado������ ��������������������� �!��

var resultado resultado = 10 + 10

��������1���resultado�����������4��������������;!��������-��������������)�����"� ������� 1��!�&� ������1�����)�����������������������������������������'�����������������1��������� � ����������-�������!�,�������������������-����������� � ����������������� ���������������������1��!��

��������������)���� ��������"��������� ��������������������������1��������� � �������������������)������ ������ �����

var resultado = 10 + 10

0�������������������������������� �������������������������������1���������������"����)��������������� ����������������������1������������var������� �������� ���1��)�����������!��

,���� 1�������������1�������� ��"����������������������������������_!�2���'�������������������* ����!������� 1�����������1�������������1������ ��*�������� ��*�����!�

,#� ������

<HTML> <HEAD><TITLE>Ejemplo 3.1: uso de una variable</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var name = prompt("Introduce tu nombre:","Nombre") //--> </SCRIPT></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- document.write('<IMG SRC="welcome.gif">') document.write("<H1>Hola " + name + ". ¡Bienvenido a mi página!</H1>") //--> </SCRIPT></BODY></HTML>

,��������#� �������4������"�����������1���nombre������ ���������� 1�����������)���-�� ���� ��������� �����4�����������#� �����!���������������������!�

��

3. Operadores aritméticos

,��������� �#������� �� �������%�����������#���������������������� ����������"���������������������������!�5�����-��� ��������������������� '�����)��� ����������)��������������� �������������������������(�����#� ���)�����������������������)�1*���������������)����!+!�

,��������������%������������ ��������������������� '�������

3.1. Binarios ������� ����������

=� 0�� �����������������������������"��������������������������4��

+=� � �������������������"������������������4������� ����������������������������������4��

-=� 7����������������������"������������������4������� ��������������������������������4��

*=� ������������������������������4���������������"����������� ��������������������������������4��

/=� 2����������������������"����������������������4������� ��������������������������������4��

%=� 2����������������������"����������������������4������� ������������������������������������������������������4��

��

3.2. Unarios ������� ����������

++x� <���� �����%�����������������������������

x++� 2������������������%�������#������� ����������������

-x� 2�������%��� ���

��

4. Operadores lógicos

���������������� ���������������������������� �1�����=�����1��������!�

������� ����������

&&� >��� ����(����������������������������������������������)���-����������������������+�

||� 3��� ����(������������������������������������������ 1���������������)���-����������������������+�

!� 5���� ����(��������������������������������-����)���-������������������+�

��

6. Operadores de comparación

������������������ �������������������� ������������(�� �+���-�����(����+!�,����������������������������"������� ����-������������������������ �#�������� �� �����)�����������"����������������������-�����������������������������������������-����!�

������� ����������

==� 2��������������������������������������� �����

!=� 2������������������������������������������������

>� 2������������������������ �������������� ������������� ���

<� 2������������������������ �������������� ������������� ���

>=� 2������������������������ �������������� �������� ����������� ���

<=� 2������������������������ �������������� �������� ����������� ���

��

7. Operadores condicionales

,����������?�������������������������������������(4��������&//+!�:�� ������#� �����

(condicion) ? valor1 : valor2

�������������������������)�����%���������� �����������?���������-���������������!������#� ������

(dia=="Domingo") ? "Festivo" : "Laborable"

,#� ������

<HTML> <HEAD><TITLE>Ejemplo operadores</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var pregunta = "¿Cuánto vale 10 + 10?" var respuesta_correcta = 20

var correcto = "<p>¡CORRECTO!</p>" var incorrecto = "<p>INCORRECTO</p>" //realiza la pregunta var respuesta_dada = prompt(pregunta, "0") //comprueba la respuesta var salida = (respuesta_dada == respuesta_correcta) ? correcto : incorrecto //--> </SCRIPT></HEAD> <BODY><SCRIPT LANGUAGE="JavaScript"> <!-- //escribe la salida document.write(salida) //--> </SCRIPT></BODY></HTML>

��

8. Comparaciones: sentencia if ... else

������ �������������������"�������"�����������������if ... else!��������%����������� ��������

if (condicion) sentencia unica if (condicion) { varias sentencias } if (condicion) { varias sentencias } else { varias sentencias2 }

���������������if ... else�������������!��,������� ���������������� ����������#� ����������������if ... else!��

<HTML> <HEAD><TITLE>Ejemplo sentencia if ... else</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- //definicion de variables var pregunta = "¿Cuánto vale 10 + 10?" var respuesta_correcta = 20 var correcto = "<p>¡Correcto!</p>" var incorrecto = "<p>¡Incorrecto!</p>" //realiza la pregunta var respuesta_dada = prompt(pregunta, "0"); //comprueba la respuesta if (respuesta_dada != respuesta_correcta) { //respuesta incorrecta, segunda oportunidad if ( confirm("¡No! Pulsa OK para reintentarlo.")) respuesta_dada = prompt(pregunta, "0") }

//comprueba la respuesta var salida = (respuesta_dada == respuesta_correcta) ? correcto : incorrecto //--> </SCRIPT></HEAD> <BODY><SCRIPT LANGUAGE="JavaScript"> <!-- //escribe la salida document.write(salida) //--> </SCRIPT></BODY></HTML>

��

Definición de una función

function nombre_funcion(argumentos) { bloque de comandos }

,���� 1��������-��������������1����� ��*�������� ��*�����!������������������������@A@���� ��"���������������!�

,#� ������

function ImprimeNombre(nombre) { document.write("<HR>Tu nombre es <B><I>") document.write(nombre) document.write("</B></I><HR>") }

��������1���������������%����������������-����������� �� �������������������������1����������������������-�����!�

����-����������������������������!�������������

function cubo(numero) { var cubo = numero * numero * numero return cubo }

�� 1�'��������4�1��������

return numero * numero * numero

���-������eval()�����*������������������������������ '����!������#� ���)�eval("10*10")�������������������?;;!�

,#� ������

<HTML> <HEAD><TITLE>Preguntador</TITLE>

<SCRIPT LANGUAGE="JavaScript"> <!-- //DEFINICION DE LA FUNCION HazPregunta() function HazPregunta(pregunta) { //VARIABLES LOCALES var solucion = eval(pregunta) var salida = "Que da " + pregunta + "?" var correcto='<IMG SRC="correcto.gif">' var incorrecto='<IMG SRC="incorrecto.gif">' //REALIZA LA PREGUNTA var respuesta = prompt(salida,"0") //COMPRUEBA EL RESULTADO return (respuesta == solucion) ? correcto : incorrecto } //--> </SCRIPT></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- //EJECTUA LA FUNCION HazPregunta var resultado = HazPregunta("10 + 10") document.write(resultado) //--> </SCRIPT> </BODY></HTML>

��

2. Funciones recursivas

����������������� �������� �� ��!�B���#� ����������������������-�������������������-��������������* ������

function factorial(numero) { if (numero > 1) { return numero * factorial(numero - 1) } else { return numero } }

�,����-���������1�������������-��������������* ����%����� ���%� �����������������-�����������%�C�?��

%D�E�%�F�(%�C�?+D�

:�� ������ ��-������������#� �������������������������-��������"��� ������������������

<HTML> <HEAD><TITLE>Preguntador</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- //DEFINICION DE LA FUNCION HazPregunta() function HazPregunta(pregunta) { //VARIABLES LOCALES

var solucion = eval(pregunta) var salida = "Que da " + pregunta + "?" var correcto='<IMG SRC="correcto.gif">' var incorrecto='<IMG SRC="incorrecto.gif">' //REALIZA LA PREGUNTA var respuesta = prompt(salida,"0") //COMPRUEBA EL RESULTADO return (respuesta == solucion) ? correcto : HazPregunta(pregunta) } //--> </SCRIPT></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- //EJECTUA LA FUNCION HazPregunta var resultado = HazPregunta("10 + 10") document.write(resultado) //--> </SCRIPT> </BODY></HTML>

,����-�������������������1�� ����� � ��������������������������������������������!�B�������1���-�� ���������������������������������������������������* ����������������������������������� ����������������* ������������������������������������������������ ���!�

����� �����-�� ��������1�������-����������������������������#�������������������)��'���������������������9�����������������)��������������������������������"��!�

��

3. Creación de objetos

������������1#����)���� ������������������-������������(�������+���

function empleado(nombre, edad, puesto) { this.nombre = nombre this.edad = edad this.puesto = puesto }

,������������)�������������this������-���������1#��������������������"�!�B�����"��-�������������)���� ��������������1����(������������1#����+�������������������� ������ ��������

empleado_1 = new empleado("Pedro", 26, "Programador")

������$�����������������������1#�������������������4������������������������-������������������!������#� ������

empleado_1.jefe = "Luis"

,���������������������������-���������������1#�����������������!�

�����1#��������������������-�� ��������1#����������������������������1#���!������#� ������

function oficina(ciudad, pais) { this.ciudad = ciudad this.pais = pais } oficinaPedro = new oficina("Madrid","España") empleado_1 = new empleado("Pedro", 26, "Programador", oficinaPedro)

,������#� ������������)�4�������-����������������������������-�� ����

function empleado(nombre, edad, puesto, oficina) this.nombre = nombre this.edad = edad this.puesto = puesto this.oficina = oficina }

2������������-������������������������������1#���)���������������-��������������������������������!�,�����-������������1�������� 1����� '����!�B�� '��������-����������� ������ ��������

function mostrarPerfil() { document.write("Nombre: " + this.nombre + "<BR>") document.write("Edad: " + this.edad + "<BR>") document.write("Puesto: " + this.puesto + "<BR>") } function empleado(nombre, edad, puesto) { this.nombre = nombre this.edad = edad this.puesto = puesto this.mostrarPerfil = mostrarPerfil }

0�������� ���������������������������1#����������������������� '��������������

empleado_1.mostrarPerfil

,#� ����-�������

<HTML><HEAD><TITLE>Empleados</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- //DEFINE EL METODO muostrarPerfil function mostrarPerfil() { document.write("<H1>Perfil del empleado " + this.nombre + "</H1><HR><PRE>") document.writeln("Edad: " + this.edad) document.writeln("Puesto: " + this.puesto) document.write("</PRE>")

} //DEFINE EL OBJECTO EMPLEADO function empleado() { this.nonmbre = prompt("Introduzca el nombre del empleado: ", "Nombre") this.edad = prompt("Introduzca la edad de " + this.nombre, "00") this.mostrarPerfil = mostrarPerfil } nuevoEmpleado = new empleado() //--> </SCRIPT> </HEAD><BODY><SCRIPT LANGUAGE="JavaScript"> <!-- nuevoEmpleado.mostrarPerfil() //--> </SCRIPT> </BODY></HTML>

��

4. Arrays asociativos

,��������������������������������1#������������������������������������������ ������ ��������

empleado_1[0] = "Pedro" empleado_1[1] = 26 empleado_1[2] = "Programador"

>��� 1�'���������������� ��������������������

empleado_2["nombre"] equivale a empleado_2[0] empleado_2["edad"] equivale a empleado_2[1]

:� ������������#� ������������������������� ��*�����������

<HTML><HEAD><TITLE>Menu de usuario</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- //DEFINE METODO PARA VER LA INFORMACION function verInfo() { document.write("<H1>Perfil del empleado: " + this.nombre + "</H1><HR><PRE>") document.writeln("Numero de empleado: " + this.numero) document.writeln("Edad: " + this.edad) document.writeln("Puesto: " + this.puesto) document.write("</PRE>") } //DEFINE METODO PARA OBTENER LA INFORMACION function obtenerInfo() { var menu = "1. Salir/n2. Nombre/n3. Edad/n4. Puesto" var eleccion = prompt(menu, "0") if (eleccion != null) { if ((eleccion < 0) || (eleccion > 4)) { alert ("Eleccion incorrecta.") this.obtenerInfo() } else {

if (eleccion != "0") { this[eleccion - 1] = prompt("Introduzca informacion","") this.obtenerInfo() } } } //DEFINE OBJETO function empleado() { this.nombre = "" this.edad = 0 this.puesto = 0 this.verInfo = verInfo this.obtenerInfo = obtenerInfo } empleadoNuevo = new empleado() //--> </SCRIPT></HEAD> <BODY><SCRIPT LANGUAGE="JavaScript"> <!-- empleadoNuevo.obtenerInfo() empleadoNuevo.verInfo() //--> </SCRIPT> </BODY></HTML>

Eventos en JavaScript

,������������)������������������������������������� �� ����������������������������������'���������!�B����������������������������������������������������"������� *����������(�����#� ���)������ 1����������������-�� �����)�������������������������+!�

����������������������� ����������� ���#���������������!�,�����������������"��������� �� �� �������-���������������������� ������������ ���#���������������!�

����� ��������1��� ���������� ���#����������������������������"������������������)���������������������������������������������������� ��-����!�

�������� ������ ����������������

�������� ?!?� ,�������������� ��������� �������� � ���

��� �� ?!;� B����� �������-�� �����)���������������� ���������������-����

��������� ?!;�(?!?��������������+�

,�������������� �����-�� �������� 1���

������� ?!;� ���4���������������1#������-�� ������

��������� ?!��(���������+� ���4����������1���������1#������-�� ������

����������� ?!�� ,����������������������������1#������������������

�������� ?!?� ������ �������� �������� � �����������������

����� �� ?!?�(?!������������+�

B����������)� ���������� �������-�� ����������1�����-����

���������� ?!�� ,����������������������

����������� ?!�� ,�������� �����������������������

�������� ?!�� ,����������1�������������

������� ?!;�(?!?������� ���+�

,������ ������� ���������� ���������������

��!� ������� ?!�� ,���������������1��������������

��!� ��!�"�� ?!�� ,�������� ��������������

��!� ��# �� ?!?� ,����������1���������������������

��!� ��#"��� ?!;�(?!?����������+�

,����������������������������� � ���

��!� ����� ?!�� ,����������1������1��������������

��!�"�� ?!�� ��� ������������������� �����

��$����� ?!?� ,���������� ������-�� ������

��$���%�� ?!�� ����� 1�������� �$����������������� �����

��&����� ?!;� �������������������%�������� �����%��������������%�������-�� ������

��& � ��� ?!;� ,����������������-�� ������

�������� ?!;� ,���������1����������� ����

��

,#� ���������������

<INPUT TYPE="text" onChange="CompruebaCampo(this)">

,��������#� ���)�CompruebaCampo()�������-������������������-���������� �������������� ����������(4�1���� �������������1��������� �� �+!�,�������-������this�����������1���������������� �#�)��������-���������1#�������������������-����������� ��������-������(������������)������ ������-�� �����+!�

����� ��������1��� ������������������������������"��������������1#�������� ��������1#�������������������5��� ����!�

������������� �������������������������

�������� ' ����

��� �� � ����()�������*()��������()�����()

��������()$����()$����()&����()& � ��()+�*�()+�*�����()�������

��������� ��������()&����()+�*�()+�*������

������� � ����()��� ���()�������*()����()$����()

$����()& � ���

��������� ��� ���()�����

����������� �������

�������� ' ���()�������

����� �� � ����()�������*()��������()�����()��������()$����()$����()&����()& � ��()

+�*�()+�*�����()�������

���������� ��� ���()' ���()����()+�*������

����������� ��� ���()' ���()����()+�*������

�������� ��� ���()' ���()����()+�*������

������� ' ���()�����()�������

��!� ������� � ����()��� ���()�����

��!� ��!�"�� 5�� ���(�1����������������+�

��!� ��# �� �����()�����

��!� ��#"��� �����()�����

��!� ����� � ����()��� ���()�����

��!�"�� �������

��$����� ��� �

��$���%�� �������

��&����� +�*�()+�*������

��& � ��� ��� �

�������� �������

��

2. Métodos de evento disponibles en JavaScript

������ ������� '�����������������������"��������������������

� ���������� !������������"��

� �,-� ,�� �������-��������1#�������������������� ��

����,-� �� �����������"�����������������1�������1#�������������������� ��

��� �,-� ���������-��������1#�������������������� ��

�����,-� �����������������������%�������� ������������������� ��

� � ��,-� 7����"��������������-�� ���������������������� ��

��

,#� ������

<HTML> <HEAD><TITLE>Eventos</TITLE> <SCRIPT> <!-- function Reacciona(campo) { alert("¡Introduzca un valor!") campo.focus() } //--> </SCRIPT></HEAD> <BODY> <FORM METHOD=POST> <INPUT TYPE=text NAME=campo onFocus="Reacciona(this)"> </FORM> </BODY> </HTML>

��

3. Eventos onLoad y onUnload

��������� ������1�����������<BODY>�������!�

,#� ������

<BODY onLoad="Hola()" onUnload="Adios()">

���-������Hola()�����#������������������������ ������� ���������-������Adios()�����1��������!�

,#� ������

<HTML> <HEAD> <TITLE>Ejemplo onLoad y onUnload</TITLE> </HEAD> <BODY onLoad="alert('¡Bienvenido a mi página!')" onUnload="alert('¡Vuelva pronto!')"> ... </BODY> </HTML>

,�������������#� �����������"���-����������

<HTML> <HEAD> <TITLE>Ejemplo con funciones</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var name = "" function Hola() { nombre = prompt('Introduzca su nombre:','') alert('¡Hola ' + nombre + '!') } function Adios() { alert('¡Adios ' + nombre + '!') } //--> </SCRIPT> </HEAD>

<BODY onLoad="Hola()" onUnload="Adios()"> ... </BODY> </HTML>

��

4. Ejemplo de aplicación en formularios

:� ������������#� ������������� �������%�����

<INPUT TYPE=text NAME="test" onBlur="alert('¡Gracias!')" onChange="Comprueba(this)">

,��������#� ���)��� �� ������������������������������

<HTML> <HEAD><TITLE>Calculadora interactiva</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function Calcula(form) { form.resultados.value = eval(form.entrada.value) } function CogeExpresion(form) { form.entrada.blur() form.entrada.value = prompt("Introduce una expresión matemática válida en JavaScript","") Calcula(form) } //--> </SCRIPT></HEAD> <BODY> <FORM METHOD=POST> Calculadora interactiva: <INPUT TYPE=text NAME="entrada" VALUE="" onFocus="CogeExpresion(this.form)"> <BR>El resultado es:<INPUT TYPE=text NAME="resultados" VALUE="" onFocus="this.blur()"> </FORM> </BODY> </HTML>

Acceso a los formularios de una pagina

����-�� ����������� ������-�� ������������������������ ��������������������������������������������!�,��������forms��� ����������� �������������-�� ������������������������� ���)���������������������'����������� ��-����!�2������� ��)��������#� ������ ������

<FORM METHOD=POST NAME="Formu">

���������������-�� �����)������������-�� ��������������������

document.forms[0] (primer formulario) document.forms["Formu"] document.Formu

��

1.1. Propiedades del objeto formulario #������� ����������

������� &���������������������������������1���0&�<35������ �937��

��� ����� 0�������������������������������������� �����������-�� ������(�� ���� ��������%��)�������������������)�1������)!!!+�

������ � &��������������������������<�,�����"�����������-����������������������-�� �����������������������������!�7�-��#���������1���,5&�>�,������ �937��

�� �� &���������������������������������1���50�,������ �937��

��� ��� &���������������������� 1�����������������1#����������1 ���(���������������������1������������������+�

��� �4� 7�-��#������* ��������� ���������-�� ������

��4�� &���������������������������������1����,��32������ �937��

��

1.2. Métodos del objeto form � ���� ����������

4����,����� <��������� ���#��������������������-�����

������ �� ������������������1����������������1�����1����������������-�� ������

�1 ��� ,��������-�� ������

��

,#� �����

<HTML> <HEAD><TITLE>Ejemplo de metodo submit()</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function CompruebaValor(Formu) { if (Formu.respuesta.value == "100") Formu.submit()

else Formu.respuesta.value = "" } //--> </SCRIPT> </HEAD> <BODY> <FORM METHOD=POST onSubmit="alert('¡Respuesta correcta!'); return false"> ¿Cuánto vale 10 * 10? <INPUT TYPE="text" NAME="respuesta" onChange="CompruebaValor(this.form)"> </FORM> </BODY> </HTML>

��

1.3. Eventos de formulario $���� ����������

��7����� &���������������������1�����������

���1 ��� &���������������������1������1 ���

���������

2. Acceso a los elementos de un formulario

��������������������� ����������-�� ������������������)��������"�����������elements!�,���������������������������������������1#�������-�� ������(� ����))�������*))��� ����))������))��������))�����))�����))�����))� � ��))��*�)�����*�����+)������������������������������������ ��-����!�

�����#� ���)������-�� ���������� 1�����9�� ����������� �������%���(��*�+������������������������(�������*+)���� ����������������������������� �������

MiFormu.elements[0] MiFormu.elements[1] MiFormu.elements[2]

3��������1������������"�������� 1��������� ��������������������������!�0��)��������� �������%�������#� ������������������� ������%��)������� ���������������������������������

MiFormu.elements[0] MiFormu.elements["MiTexto"] MiFormu.MiTexto

,#� ���������"���������������elements���������1����� ���������!�

<HTML> <HEAD> <TITLE>Tabla de multiplicar</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function Calcula(Formu) { var num = 1 var Numero = Formu.Numero.value Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ Formu.elements[num].value = Numero * num++ } //--> </SCRIPT> </HEAD> <BODY> <FORM METHOD=POST> Number: <INPUT TYPE=text NAME="Numero" VALUE=1 onChange="Calcula(this.form);"><BR> x 1: <INPUT TYPE=text NAME="1" VALUE=1 onFocus="blur();"><BR> x 2: <INPUT TYPE=text NAME="2" VALUE=2 onFocus="blur();"><BR> x 3: <INPUT TYPE=text NAME="3" VALUE=3 onFocus="blur();"><BR> x 4: <INPUT TYPE=text NAME="4" VALUE=4 onFocus="blur();"><BR> x 5: <INPUT TYPE=text NAME="5" VALUE=5 onFocus="blur();"><BR> x 6: <INPUT TYPE=text NAME="6" VALUE=6 onFocus="blur();"><BR> x 7: <INPUT TYPE=text NAME="7" VALUE=7 onFocus="blur();"><BR> x 8: <INPUT TYPE=text NAME="8" VALUE=8 onFocus="blur();"><BR> x 9: <INPUT TYPE=text NAME="9" VALUE=9 onFocus="blur();"><BR> x 10: <INPUT TYPE=text NAME="10" VALUE=10 onFocus="this.blur();"><BR> <INPUT TYPE=button NAME="Calcula" VALUE="Calcula" onClick="Calcula(this.form);"> </FORM> </BODY> </HTML>

��� ���������#�����������elements��������� ���-�������������� �� ��������������"��������1�������������������������� ���������-�� ������ �������������!������#� ���)����-�������������%&�����#� ����������������������1������������ ������-�� ���

function Calcula(Formu) { var Numero = Formu.Numero.value for(num = 1; num <= 10; num++) { Formu.elements[num].value = Numero * num } }

��

3. Métodos, propiedades y eventos de los elementos de un formulario

&������ ���������-�� ������������������������ '�����������������"���������������������������������1������-�� �����!�0��������������� ����������1������� ���� ���������!�

��

3.1. Cuadro de selección (checkbox) #������� ����������

�4��G�� <����������������������������������������

�-���&4��G�� <�������������������-����������� �����

�� �� <���������� 1��������� ������������� �������������-���������������<5�B��

����� <�������������������� ������������� �������������-���������������<5�B��

� ���� ����������

����G(+� �� ������������������1����������������1�����������������������

$���� ����������

��&���G� &���������������������1����������������1�����������������������

��

3.2. Botón de selección (radio)

,���� �������������������������(�������*+���������-����������������������� ������������������������ �������������������� 1����� ��������������������������������������������!�

#������� ����������

�4��G�� <�����������������������1�����������������

�-���&4��G�� <�������������������-����������� �����

�� �� <���������� 1��������� ������������� �������������-���������������<5�B��

����� <�������������������� ������������� �������

������-���������������<5�B��

���%� <�����������������1���������������������� ����������������������� ����

��� �4� <���������* ������1������������������������� ����

� ���� ����������

����G(+� �� ������������������1����������������1������1�����������������

$���� ����������

��&���G� &���������������������1����������������1������1�����������������

��

,#� �����

<HTML> <HEAD> <TITLE>Ejemplo de cuadro de seleccion (checkbox)</TITLE> <SCRIPT> <!-- function Calcula(Formu, Campo) { if (Formu.BotonAccion[1].checked) { Formu.resultado.value = Math.sqrt(Formu.entrada.value) } else { Formu.resultado.value = Formu.entrada.value * Formu.entrada.value } } //--> </SCRIPT> </HEAD> <BODY> <FORM METHOD=POST> <P>Valor:<BR> <INPUT TYPE="text" NAME="entrada" VALUE=0 onChange="Calcula(this.form, this.name);"> <P>Acción:<BR> <INPUT TYPE="radio" NAME="BotonAccion" VALUE="cuadrado"> Al cuadrado<BR> <INPUT TYPE="radio" NAME="BotonAccion" VALUE="raiz2"> Raiz cuadrada<BR> <P>Resultado:<BR> <INPUT TYPE=text NAME="resultado" VALUE=0> </FORM> </BODY> </HTML>

��

3.3. Cuadro de texto (text) #������� ����������

�-���:���� <�������������������-����������� ������������� �������������-���������������<5�B��

�� �� <���������� 1��������� ������������� �������������-���������������<5�B��

����� <�������������������������� �����

� ���� ����������

-���(+� 2�����-���������� �����(����������������������%���������"����������������+�

1��(+� H�������-���������� �����

������(+� ����������������%���������������������%���

$���� ����������

��&4�� �� &����������� 1���������������� �������%���

��9���� &������������������������-��������������������������%���

��=��� &����������'�������-����

��������� &������������������������%���

��

3.4. Lista de selección (select) #������� ����������

�������� 0�������������������������������������� ����������������������������

�������<��%� 2��������������������������������������������������� �����

�������I�J!������

<�������������������� �����������������)��������� �������������-���������������3��<35�

�������I�J!���%��

&���������������������%����������������������������������������

�������I�J!���������

<������������������������������ �����������������

�������I�J!��-�����������

<�������������������������������������������-�����

� ���� ����������

-���(+� 2�����-���������� �����

1��(+� H�������-���������� �����

$���� ����������

��&4�� �� &����������� 1���������������������������

��9���� &������������������������-�������������������������������������

��=��� &����������'�������-����

��

&� ���#� ���)��������� ��������� ��������

<SELECT NAME="Ejemplo" onFocus="Ver()"> <OPTION SELECTED VALUE="Opción 1">1 <OPTION VALUE="Opción 2">2 <OPTION VALUE="Opción 3">3 </SELECT>

������������������������������������������������� ����� �����)��� �������������������������������������4���

Ejemplo.options[1].value = "Opción 2" Ejemplo.options[2].text = "3" Ejemplo.selectedIndex = 0 Ejemplo.options[0].defaultSelected = true Ejemplo.options[1].selected = false

��

3.5. Area de texto (textarea)

��������������������defaultValue)�name���value)�������� �� ���� ��-�������������������������%��!����� '�����focus())�blur()���select()����������"����������������� ����)����� ������������������onFocus)�onBlur���onSelect!�

��

3.6. Botones submit y reset

����1�������� � ��������������������������������name���value)������������"������������������ '����click()�������������onClick()!�

,��1������1 ����������� '���������������������-��������� '����submit()�������������onSubmit!�,�� '����submit()������"������ ���������-�� ������(�������������������������1������ � ��+!�,���������onSubmit���������������������������-�� �����)���� �������������"�������������������������������-�� �������������������"������������(�����#� ���)��������������� ���+!�

��

4. Ejemplo final: calculadora

<HTML> <HEAD> <TITLE>Calculadora</TITLE> <SCRIPT> <!-- var total = 0 var UltimaOperacion = "+" var NuevoNumero = true function IntroduceNumero(Digito) { var Formu = Digito.form if (NuevoNumero) { BorraNumero(Formu) NuevoNumero = false } Formu.display.value = Formu.display.value + Digito.name } function Limpiar(Formu) { total = 0 UltimaOperacion = "+" Formu.display.value = "" } function BorraNumero(Formu) { Formu.display.value = "" } function Calcula(Operacion) { var Formu = Operacion.form var Expresion = total + UltimaOperacion + Formu.display.value UltimaOperacion = Operacion.value total = eval(Expresion) Formu.display.value = total NuevoNumero = true } //--> </SCRIPT> </HEAD> <BODY> <FORM> <TABLE BORDER=1> <TR><TD COLSPAN=4><INPUT TYPE=text NAME=display VALUE="" onFocus="this.blur();"></TD></TR> <TR> <TD><INPUT TYPE=button NAME="7" VALUE=" 7 "

onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="8" VALUE=" 8 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="9" VALUE=" 9 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="+" VALUE=" + " onClick="Calcula(this);"></TD></TR><TR> <TD><INPUT TYPE=button NAME="4" VALUE=" 4 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="5" VALUE=" 5 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="6" VALUE=" 6 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="-" VALUE=" - " onClick="Calcula(this);"></TD> </TR> <TR> <TD><INPUT TYPE=button NAME="1" VALUE=" 1 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="2" VALUE=" 2 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="3" VALUE=" 3 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="*" VALUE=" * " onClick="Calcula(this);"></TD></TR><TR> <TD><INPUT TYPE=button NAME="0" VALUE=" 0 " onClick="IntroduceNumero(this);"></TD> <TD><INPUT TYPE=button NAME="C" VALUE=" C " onClick="Limpiar(this.form);"></TD> <TD><INPUT TYPE=button NAME="CE" VALUE="CE" onClick="BorraNumero(this.form);"></TD> <TD><INPUT TYPE=button NAME="/" VALUE=" / " onClick="Calcula(this);"></TD> </TR> </TABLE> </FORM> </BODY> </HTML>

31�'�������� �������-����������-�� ���������������������� �������� �� ���var Formu = Digito.form���� �����1���������-�� ���������������������1�����Digito!�

��