Manual UD5. JavaScript y DOM
Manual UD5. JavaScript y DOM
Manual UD5. JavaScript y DOM
Introducción
INTRODUCCIÓN
Se puede decir que una página web es un documento. Dicho documento puede exhibirse en la
ventana de un navegador o como código fuente HTML. Pero, en ambos casos, es el mismo
documento. El modelo de objeto de documento (DOM) aporta otras formas de presentar, almacenar
y alterar este mismo documento. El DOM es una representación totalmente orientada al objeto de la
página web y puede ser alterado con un lenguaje de script como puede ser JavaScript.
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
1 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Objetivos
OBJETIVOS
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
2 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Mapa Conceptual
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
3 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Javascript y dom
¿Qué es el DOM?
El modelo de objeto de documento (DOM) se define como una interfaz de programación para los
documentos HTML y XML. Ayudan a una representación estructurada del documento y determina
de qué manera los programas pueden acceder, al fin de alterar, tanto su estructura, estilo y datos
m
objetos estructurados que disponen de una serie de propiedades y métodos. Principalmente,
co
conecta las páginas web a scripts o lenguajes de programación.
.
El W3C DOM estándar forma la base del funcionamiento del DOM en muchos navegadores
ad
modernos.
lid
Por ejemplo, el DOM de W3C especifica que el método getElementsByTagName en el código de
bi
abajo debe devolver una lista de todos los elementos del documento:
ea
pl
m
se
Todas las propiedades, métodos y eventos que están disponibles para la manipulación y la
pu
generación de páginas web está organizado dentro de los diferentes objetos. Un ejemplo: el
objeto document representa al documento mismo, el objeto table hace funcionar la interfaz
m
especial HTMLTableElement del DOM para acceder a tablas HTML, y así progresivamente. Esta
ca
documentación determina una relación objeto-por-objeto del DOM que funciona con los navegadores
DOM y JavaScript
El ejemplo anterior, como casi todos los ejemplos de esta referencia, es JavaScript. Es decir, es
escrito en JavaScript pero utiliza el DOM para acceder al documento y a sus elementos. El DOM no
modelo o noción de las páginas web, de la página XML ni de los elementos con los que normalmente
campusempleabilidad.com
4 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
están relacionados.
El DOM fue creado para ser independiente de cualquier lenguaje de programación. Hace que la
m
presentación estructural del documento esté disponible desde un simple y consistente API.
co
¿Cómo se accede al DOM?
.
ad
No se debe de hacer nada especial para empezar a usar el DOM. Los distintos navegadores tienen
directrices DOM diferentes, y estas directrices tienen diferentes grados de conformidad al actual
lid
estándar DOM, pero todos los navegadores web utilizaban el modelo de objeto de documento para
bi
que las páginas web sean accesibles al script.
ea
Introducción a Javascript
pl
Internet proporciona un medio para el desarrollo empresarial, basado en lo que se conoce como
m
venta de productos y/o servicios a través de medios electrónicos, pasando de ver la WWW (World
Wide Web) como una especie de escaparate donde empresas y particulares anuncian lo que ofrecen
pu
situación física.
campusempleabilidad.com
5 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
6 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
ea
pl
m
se
Desde que se puso de moda la utilización de Internet en casa de manera frecuente y debido a la
pu
comodidad que esto ofrece el cliente, cada vez es más fácil realizar trámites de esta manera,
Por tanto, y como respuesta a ello, la tecnología informática asociada a las páginas web se ha visto
ca
aumentada, aumentando no solo su contenido sino también sus formas de añadir interactividad y de
crear aplicaciones.
Pero estas aplicaciones van más allá, ya que no solo las encontraremos en Internet sino que cada día
son más utilizadas en las denominadas intranets empresariales que utilizan una red de
ordenadores privados para compartir dentro de una organización parte de sus sistemas de
campusempleabilidad.com
7 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
ea
En este curso utilizaremos tecnologías que nos permitirán desarrollar este tipo de aplicaciones.
pl
Entorno Cliente/Servidor
m
campusempleabilidad.com
8 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
Esquema de modelo Cliente/Servidor
lid
La programación del lado del cliente es aquella ejecutada por la aplicación cliente, es decir,
bi
principalmente por el navegador.
ea
Una aplicación puede tener esta estructura, con objetivo de conseguir páginas interactivas,
pl
Para ellos se utiliza lo que denominamos “Lenguajes de Guiones o de Script” como, por
ejemplo, JavaScript cuyo principal objetivo es realizar diversas tareas como combinar componentes,
campusempleabilidad.com
9 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
fichero HTML, soliendo ser pequeños fragmentos de código junto al resto del código de la página
web.
m
Obtener fecha y hora del ordenador del usuario.
co
Obtener información del navegador.
.
Modificar dinámicamente el tamaño de una imagen en una página web.
ad
Validar entradas compradas por internet.
Etc.
lid
bi
Programación del lado del servidor
ea
Como ya hemos comentado, existe también lo que se llama programación del lado del servidor, en el
pl
cual nos encontraremos distintas tecnologías que nos permiten ejecutar aplicaciones en la parte
m
servidora, es decir, en aquellos computadores donde están publicadas las páginas web.
se
campusempleabilidad.com
10 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Y a las aplicaciones desarrolladas en la parte servidora se les conoce como aplicaciones web.
Este tipo de aplicaciones pueden ser de diversa naturaleza como, por ejemplo:
Aplicaciones que proporcionan diversas páginas web dependiendo del usuario que las solicite.
m
Etc.
. co
ad
lid
bi
ea
pl
m
se
pu
Para programar en estas aplicaciones necesitaremos conocer algunas tecnologías como, por
ejemplo:
ca
ASP .NET.
PHP.
ColdFusion.
JSP.
Por tanto, llegará el momento en el que debamos decidirnos por una de estas tecnologías, pero hay
campusempleabilidad.com
11 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
que tener cuidado ya que de esto dependerá la base de datos utilizada, el servidor web y
Para este tema podremos utilizar varias herramientas, pero, sobre todo, recomendaremos dos.
Una más fácil de usar como Notepad++ en el cual podremos probar código simple y hacer los
primeros ejercicios y algún IDE (Entorno de Desarrollo) como, por ejemplo, NetBeans o Eclipse
m
Ambas son aplicaciones libres y gratuitas.
co
Para descargar Notepad++:
.
ad
http://notepad-plus-plus.org/download
lid
bi
Para descargar NetBeans
ea
Y aquí su manual:
m
http://irdal.ird.fr/IMG/pdf/Manual_iniciacion_NetBeans_5.pdf
se
Hay que destacar que la programación web por parte del cliente puede resultar un poco más
pu
simple, por lo que podemos utilizar el Notepad++, pero por ende, al programar en el lado del
m
servidor (PHP, ASP .NET, etc.) es recomendable usar el IDE o el entorno de programación.
ca
Hay que decir que este curso no es un curso de programación ni de diseño de páginas web, por lo
que vamos a dar algunas recomendaciones para poder seguir el curso con fluidez.
Deberá conocer HTML para entender el código básico de las páginas web.
http://www.manualweb.net/html/
campusempleabilidad.com
12 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
fundamentales.
Deberá tener conocimientos de bases de datos. Conceptos como tabla, relación, consulta,
http://programacion.net/articulo/tutorial_basico_de_mysql_189
En este primer ejemplo, vamos a hacer una simple aplicación, la cual mostrará un mensaje de
m
<HTML>
co
<HEAD>
.
ad
<TITLE>Ejemplo con eventos</TITLE>
</HEAD> lid
bi
<BODY BGCOLOR=#FFFFFF><FORM NAME="Form1">
ea
</FORM>
pu
</BODY>
m
</HTML>
ca
Abra NotePad++.
campusempleabilidad.com
13 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
Como podremos ver, se ejecutará el código directamente en el navegador seleccionado, y veremos
lid
un botón que, al hacer clic, nos mostrará un mensaje de bienvenida.
bi
ea
pl
m
se
pu
m
campusempleabilidad.com
14 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
co
Pues bien, nosotros podremos introducir el código de JavaScript o en la cabecera (HEAD) o en el
.
ad
cuerpo (BODY) dependiendo de la función que le vayamos a dar.
lid
Este código de JavaScript se encierra siempre entre <SCRIPT> y </SCRIPT> y tiene la estructura:
bi
ea
pl
m
se
pu
m
ca
El código se puede escribir en varios lenguajes, por tanto, hay que indicar al SCRIPT en qué
campusempleabilidad.com
15 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
quedado en desuso.
Por otra parte, debemos ocultar el código a los navegadores que no sepan interpretarlo (en la
actualidad, todos los navegadores interpretan JavaScript), y para ello se utilizan los
m
Veamos qué pasaría si el navegador no reconociera el código JavaScript:
. co
Como no reconoce la etiqueta <SCRIPT> simplemente la ignora.
ad
Encuentra el símbolo de inicio de comentario HTML (“<!--“) así que no interpreta el resto,
Reconoce la etiqueta <SCRIPT>, así que empieza a interpretar el código siguiente, excepto los
m
Interpreta el código siguiente hasta que llega a la línea que muestra un comentario de
Una cosa a tener en cuenta es que JavaScript, a diferencia de HTML, distingue entre minúsculas y
ca
Aunque en la actualidad, todos los navegadores están preparados para ejecutar JavaScript,
campusempleabilidad.com
16 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
Cuando un navegador interpreta la etiqueta <SCRIPT> simplemente se salta la etiqueta
ea
<NOSCRIPT>.
pl
Contenido alternativo
m
Ahora vamos a repasar algunos conceptos relacionados con la programación que nos serán útiles a
se
Una variable es una ubicación temporal de memoria donde el programador guarda cierto valor
ca
campusempleabilidad.com
17 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
Seguramente habremos visto ya, algunas curiosidades a la hora de escribir código en JavaScript,
ea
Para poder utilizar las variables, estas deben estar declaradas (es decir, tendremos que
Para declarar la variable se utilizar la palabra reservada “var” seguida del nombre de
pu
la variable.
m
Al inicializar una variable a un campo de texto es necesario poner las comillas dobles (“”)
o las comillas simples (‘’). Da igual cuales utilicemos pero si empezamos con unas, debemos
campusempleabilidad.com
18 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
co
Principales elementos de la gramática de JavaScript:
.
ad
lid
bi
ea
pl
m
se
pu
m
ca
Variables
Ahora veremos el conjunto de valores que puede tener una variable y el conjunto de operaciones en
campusempleabilidad.com
19 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Como podemos observar al principio Variable2 tiene un tipo de dato “entero”, mientras que en la
segunda línea vemos como almacenamos en ella un tipo de dato “cadena de texto”. Esto quiere decir
que en una misma variable podremos almacenar diferentes tipos de datos, pero tenemos que
m
tener cuidado ya que JavaScript suele hacer conversiones automáticas, y en algunas ocasiones, nos
co
puede ocasionar problemas.
.
ad
Pero ¿qué tipo de datos puede almacenar una variable?
Operadores
se
pu
Operadores matemáticos
m
ca
Suma (+)
Diferencia (-)
Multiplicación (*)
División ( / )
Módulo (%)
Incremento (++)
Decremento (--)
Negación (-)
campusempleabilidad.com
20 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Operadores de comparación
Distinto a (!=)
m
co
Operadores de asignación:
.
ad
Asignación ( =)
Concatenación (+)
pu
Etc.
m
Vamos a resaltar un caso especial que suele llevar a errores como es el del operador + ya que en
ca
Si tenemos 2 cadenas y usamos +, lógicamente no los sumará sino que los concatenará.
cadena y los concatenará. EJ. 250 + “Ejemplo”, dará como resultado “250Ejemplo”, siendo esta
una cadena de texto. Hay que tener especial cuidado con este caso.
campusempleabilidad.com
21 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Ahora veremos que también hay que tener cuidado con el orden de preferencia de los operadores.
¿Qué valor obtendremos? ¿16 o 13?, pues bien, viendo la siguiente tabla, veremos que el operador *
m
. co
ad
lid
bi
ea
pl
m
se
Cuadros de diálogo
pu
Utilizando los cuadros de diálogo que incorpora el lenguaje JavaScript, podremos interaccionar
m
con el usuario, de tal forma que este proporcione información para continuar la ejecución del script,
Es el más sencillo de todos y solo incluye un botón “Aceptar” con el que interaccionará el usuario.
campusempleabilidad.com
22 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
Esto producirá en el navegador la salida siguiente: lid
bi
ea
pl
m
se
pu
m
ca
diferencia del cuadro anterior, ahora aparecen dos botones (Aceptar y Cancelar). Tu puedes saber
campusempleabilidad.com
23 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
Y veremos la siguiente salida en el navegador: lid
bi
ea
pl
m
se
pu
m
ca
Observar en la línea 6, dependiendo del valor que la persona usuaria elija (“aceptar” o “cancelar”),
podremos almacenar dicho valor en una variable “resultado” para más tarde, utilizarla o, por
ejemplo, imprimirla.
3. prompt (mensaje [, valor por defecto]): sirve para recabar información de la persona usuaria.
campusempleabilidad.com
24 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
Al ejecutarlo, observará un cuadro de diálogo como este:
lid
bi
ea
pl
m
se
pu
m
ca
La persona usuaria no introduce nada y pulsa aceptar, entonces la variable resultado tendrá el
La persona usuaria pulsa cancelar, entonces la variable resultado almacenará el valor lógico
campusempleabilidad.com
25 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
(“False”).
Práctica
Utilice Notepad++ y asegúrese de que tiene instalado cualquiera de los navegadores mencionados
anteriormente.
m
Abra Notepad++ y escriba el siguiente código:
. co
ad
lid
bi
ea
pl
m
se
Crea un nuevo documento HTML en el que incluirás código JavaScript para realizar las
ca
siguientes tareas:
Una vez hecho esto, debes mostrar un cuadro de diálogo en el que se muestre el
siguiente mensaje:
Donde tanto Apellidos como Nombre serán los datos introducidos previamente por la persona
usuaria. Observa cómo aparece una coma entre los apellidos y el nombre.
campusempleabilidad.com
26 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Debe permitir que la persona usuaria pueda aceptar o cancelar el cuadro de mensaje.
navegador.
A partir de este punto, vamos a ir viendo los conceptos básicos de programación que podemos
aplicar.
m
Un código en JavaScript se ejecuta normalmente de izquierda a derecha y de arriba debajo de
co
forma secuencial.
.
ad
Pero podemos modificar este flujo secuencial mediante estructuras de control.
campusempleabilidad.com
27 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
Hay que destacar que podemos hacer estructuras más complejas de este tipo, sin más que
Las condiciones también suelen llamarse expresiones lógicas porque solo pueden dar como
campusempleabilidad.com
28 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Tú puedes utilizar los operadores de comparación siguientes para crear expresiones de este tipo:
== (igual a)
!= (distinto a)
m
co
Además de estos operadores, también pueden utilizar los operadores lógicos AND, OR y NOT.
.
ad
En JavaScript el operador AND se representa con los símbolos &&, OR con || y NOT con !
lid
Así, una expresión del tipo exp1 AND exp2 se evalúa a verdadero solo en el caso de que tanto exp1
como exp2 se evalúen a verdadero. En cualquier otro caso, la expresión se evaluará a falso.
bi
Sin embargo, exp1 OR exp2 se evalúa a verdadero en el caso de que bien exp1 o bien exp2 se
ea
evalúen a verdadero (observe que es suficiente con que lo haga una de las dos o las dos al mismo
pl
tiempo). En el caso de que ninguna se evalúe a verdadero, la expresión total se evaluará a falso.
m
Finalmente, NOT exp1 se evalúa a verdadero si exp1 se evalúa a falso y se evalúa a falso si exp1 se
se
Otro tipo de estructuras que pueden modificar el flujo de ejecución son las estructuras de repetición
o también conocidas como bucles. Estas estructuras sirven para repetir un conjunto de
instrucciones.
campusempleabilidad.com
29 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
En este sentido, puede querer repetir un número determinado de veces el conjunto de instrucciones
o, sin conocer dicho número, desear repetirlas mientras se cumpla cierta condición.
Esto quiere decir que existen dos tipos de estructuras de repetición: aquellas en que el número de
Utilizando la estructura for, especificas el número de veces que quiere que se repita un conjunto
m
La sintaxis correcta de esta estructura de repetición es:
. co
ad
lid
bi
Debemos entender esta estructura como:
ea
Este valor se va comparando en cada una de las repeticiones según la “condición” establecida.
m
“Operación” permite acercar el valor inicial al valor final, es decir, en el cual ya no se realizarán más
se
repeticiones.
pu
campusempleabilidad.com
30 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
Y el resultado en pantalla será:
lid
bi
ea
pl
m
se
pu
m
Es decir, i vale 1 al principio, como 1 es < que 10, se ejecuta lo que hay dentro de las { }.
ca
Imprime lo que vale i (vale 1), imprime un salto de línea y cuando ha terminado de imprimir todo el
Así hasta que i=10, que al comprobar si 10<10, esta condición es igual a FALSE y se sale del bucle.
campusempleabilidad.com
31 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Por ejemplo, piensa en este escenario: le pides a la persona usuaria que introduzca un número e
m
. co
ad
lid
Que lo que hará será ejecutar las acciones hasta que la condición sea Falsa.
bi
Veamos el siguiente código:
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
32 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Esta se almacena en la variable respuesta, y luego podremos ejecutar el bucle while tantas veces
Notar que al estar programando la función, no sabíamos el valor exacto de respuesta, por lo que
m
. co
ad
En ocasiones, desearás salir de un bucle aunque la condición de prueba no se haya cumplido.
lid
En estos casos se puede utilizar la sentencia break si desea salir completamente del bucle o
continue si lo que quiere es no ejecutar el resto de sentencias del cuerpo del bucle, sino pasar a la
bi
siguiente repetición. Al igual que ocurría con las estructuras de decisión, puede anidar bucles en el
ea
interior de otros bucles. En estos casos, para cada repetición del bucle exterior, se ejecuta
pl
Tenga en cuenta que la incorporación de bucles en el interior de otros bucles puede hacer que la
se
Una función no es más que un conjunto de instrucciones que realiza una tarea bien
definida.
utilizar estas funciones en más de un sitio y, por lo tanto, no tener que volver a escribir el mismo
código.
campusempleabilidad.com
33 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Es decir, debemos comenzar con la palabra function, seguida del nombre que le queramos poner y
m
entre paréntesis una lista de parámetros.
co
Entre las { }, están las acciones (tareas) a realizar.
.
ad
Realicemos una función muy simple la cual valida si un número introducido está entre 1 y 20.
lid
Si es afirmativo devolverá verdadero, en otro caso, devolverá falso.
bi
Abramos Notepad++ y escribamos esto:
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
34 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Una función puede llamar a otra función para realizar su cometido (en este ejemplo no es su
caso).
m
co
Esto es, porque después de definirla, necesitamos llamarla.
.
Como se ha comentado, la definición de una función sirve para especificar qué es lo que hace una
ad
función, pero, la definición por sí sola no sirve de nada si no la llamamos.
lid
Para llamar a una función debemos indicar el nombre de la función e introducirle los que llamamos
bi
argumentos que son la lista de parámetros con los que definíamos la función.
ea
Es decir:
pl
Estos argumentos por tanto deben concordar con la lista de argumentos de la función que vamos a
pu
utilizar.
m
Si la función devuelve algún valor, nosotros podremos asignarlo a una variable o utilizarlo en alguna
expresión lógica.
Veamos este ejemplo, en el que utilizamos el código anterior como condición lógica.
campusempleabilidad.com
35 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
ea
Como vemos, ahora, tenemos 2 script, uno para la definición de la función y otro que nos sirve para
pl
llamar a la función (Nota: también podríamos haberlo hecho todo sobre el mismo script).
m
Veamos el siguiente código en el que una función, llamada cuadrado, llama en su interior a la
se
función validar, y un script que pide un número a la persona usuaria y muestra el resultado del
pu
campusempleabilidad.com
36 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
declaración de variables.
campusempleabilidad.com
37 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
En estos casos, se dice que la variable es local ya que solo puede ser conocida en el interior de
la función.
A diferencia de las variables locales, las variables declaradas fuera de las funciones son
globales. Esto quiere decir que pueden ser conocidas y, por lo tanto, utilizadas, tanto dentro como
Pero ¿qué sucede si declara una variable global y una variable local con el mismo nombre?
m
. co
ad
lid
bi
ea
pl
m
se
pu
Así, se ha declarado una variable de nombre cuenta tanto en el interior de la función como a nivel
ca
Dentro de la función siempre tiene preferencia la variable local respecto a la global. Por lo
tanto, en el código asociado a la función SumaN, cuando se utiliza el identificador cuenta, se está
Además, observa cómo el parámetro x actúa como una variable local más de la función. Por ello,
podemos comparar el valor de i con el de x. En definitiva, el script lo único que hace es obtener el
resultado de 1 + 2 + 3 + 4 + 5 = 15.
campusempleabilidad.com
38 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Observa la figura siguiente: la caja exterior representa el script, mientras que las cajas interiores
Las funciones conocen todo lo que está fuera de ellas y lo que está en su interior, mientras que fuera
de las funciones solo se pueden utilizar las variables declaradas a nivel de script.
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
Actividad práctica
Esta práctica se divide en dos partes: en la primera trabajarás con estructuras de control y en la
ESTRUCTURAS DE REPETICIÓN
campusempleabilidad.com
39 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
secuencia de números 12345. Para ello utiliza primero un bucle for y después un bucle while
equivalente.
Recuerda que puedes utilizar la línea document.write (...) para imprimir en la página web.
ESTRUCTURAS DE DECISIÓN
m
Inserta código JavaScript en un nuevo fichero HTML de forma que se realiza la siguiente tarea:
co
La persona usuaria introduce su nombre y más tarde su password.
.
ad
Si los datos son correctos, entonces aparece un cuadro de diálogo con el mensaje correspondiente.
lid
Si el nombre de usuario es correcto, pero no así el password, entonces aparecerá el mensaje "Su
Crea un nuevo fichero e inserta el código JavaScript necesario para definir una función que, dado
.Martes., etc.
Después deberás escribir código JavaScript de forma que se le pida a la persona usuaria que
introduzca un número del 1 al 7 y se utilice dicho número para llamar a la función y que se muestre
campusempleabilidad.com
40 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Ten en cuenta que la función solo realizará el cálculo necesario, no mostrará el mensaje
correspondiente.
Solución de la práctica
m
co
ESTRUCTURAS DE REPETICIÓN
.
ad
lid
bi
ea
pl
m
se
pu
m
ca
ESTRUCTURAS DE DECISIÓN
campusempleabilidad.com
41 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
m
. co
ad
TRABAJAR CON FUNCIONES
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
42 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Verdadero
Falso
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
43 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Recuerda
[[[Elemento Multimedia]]]
m
. co
ad
lid
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
44 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Autoevaluación
Verdadero
m
Falso
. co
ad
El DOM:
campusempleabilidad.com
45 / 46
[AFO018510] IFCT095PO PYTHON Y DJANGO
[MOD016701] IFCT095PO PYTHON Y DJANGO
[UDI097986] JAVASCRIPT Y DOM.
Verdadero
Falso
El DOM...
m
Es un lenguaje de programación.
co
No es un lenguaje de programación pero sin él, el lenguaje JavaScript no tiene ningún
.
ad
modelo o noción de las páginas web.
lid
Es un lenguaje de programación, al igual que SQL.
bi
ea
pl
m
se
pu
m
ca
campusempleabilidad.com
46 / 46