8-Javascript para El Desarrollo Web
8-Javascript para El Desarrollo Web
Desarrollo Web
JavaScript para el desarrollo web
1
IBM SkillsBuild | Introducción a Python
Índice
Introducción 4
Características de JavaScript 5
¿Dónde va JavaScript? 5
En el head 5
En una etiqueta 5
Linkar una página JavaScript a nuestro HTML 5
Prompt() 6
Alert() 6
Alerta normal 6
Alertas de confirmación 6
console.log() 6
Document.write() 7
Estructuras básicas 7
Sentencias 7
Funciones predefinidas 8
Comentarios 8
Tipos de datos 8
Modo estricto 8
Declaración de variables 8
Casting de variables 10
Constantes 10
Strings 12
Funciones de los strings 12
Plantillas en strings 14
Operadores 14
Operadores de Asignación 14
Operadores Lógicos 16
Negación 16
AND 17
OR 17
Operadores Matemáticos 18
2
IBM SkillsBuild | Introducción a Python
Operadores Relacionales 18
Condicionales 21
Comparadores 21
IF…ELSE 21
SWITCH…CASE 23
Bucles 24
El bucle determinado FOR 24
WHILE. DO…WHILE 26
Break 28
Arrays 28
Búsquedas en un array 31
Arrays multidimensionales 32
POO 32
Funciones 33
Funciones anónimas 36
Callback 36
Funciones flecha 39
Eventos 40
DOM 44
BOM 46
3
IBM SkillsBuild | Introducción a Python
Introducción
4
IBM SkillsBuild | Introducción a Python
JavaScript
<p onClick="alert('Hola
mundo');">Página de prueba JavaScript</p>
• Se ejecuta en local.
• Es interpretado, no compilado.
• Es de respuesta inmediata. Con el anterior comando hemos sacado un mensaje
• Agrega interactividad a los sitios web. de alerta que dice “Hola mundo”
• Proporciona efectos visuales dinámicos.
<head>
<meta charset="UTF-8"> De esa forma el contenido del archivo .js quedará
<title>Ejemplo de HEAD con anexado a nuestra página web.
JavaScript</title>
<script>
alert("Hola mundo");
</script> Entrada y salida de datos
</head>
5
IBM SkillsBuild | Introducción a Python
parsefloat, etc.
• El comando alert()
console.log()
• El comando console.log()
• El comando document.write() Con este comando se nos mostrará un mensaje en la
consola del navegador. No será visible a menos que
abramos la consola. En la mayoría de los
navegadores esto se hace con F12.
Alert()
console.log("Esto es un mensaje
El commando alert() nos sacará una ventana escrito por consola");
emergente con un aviso. Hay dos tipos de alert():
6
IBM SkillsBuild | Introducción a Python
Estructuras básicas
<head>
<meta charset="utf-8">
<title>Documento sin título</title> Sentencias
<script>
var nombre = "Angel"; Llamamos sentencia a cada “orden” que
var apellido = "García"; programemos en JavaScript. Terminan con “;”.
document.write("<h1>Tu nombre
es</h1>" + nombre + " " + apellido);
</script> alert("Esto es una sentencia ");
</head> document.write("Esta es otra ");
7
IBM SkillsBuild | Introducción a Python
num=5;
• Valores numéricos: Ya sean números enteros o solo se pueden usar desde dentro de funciones,
• Strings: Caracteres alfanuméricos, es decir, • Var: define una variable global o local (en una
• Booleans: Con dos posibles valores True o False. variables declaradas con var estarán disponibles
para todos los elementos del código.
8
IBM SkillsBuild | Introducción a Python
Las variables tienen dos ámbitos posibles: let lo que realmente hace es crear una nueva variable
local a nivel de bloque, en este caso dentro del if.
• Global: Podemos acceder a ellas desde cualquier
Fuera no tiene validez.
parte de nuestro código.
• Local: Podemos acceder a ellas solo dentro del
ámbito en que fueron definidas. Normalmente var puntuación;
funciones. Serán accesibles desde la propia puntuación=500;
función o desde funciones anidadas en niveles
superiores a la anterior. Es decir, las variables var puntuación=500, record=1000,
jugador= "Angel";
locales se pueden ver desde dentro hacia fuera,
pero nunca desde fuera hacia dentro de la
función. Si declaramos una variable entre comillas, JavaScript
entiende que es un string, aunque sea un número:
var num = 5;
document.write(num); //num vale 5 var num1=5; //Aquí num1 es un
número (int).
if (true) { var num2= "5"; //Aquí num2 es un
var num = 10; string.
document.write(num); //num
vale 10
}
Para modificar una variable ya declarada no ponemos
document.write(num); //num vale 10 var, simplemente el nombre y el valor:
let num = 5;
document.write(num); //num vale 5 El comando typeof() nos indica el tipo de una
variable.
if (true) {
let num = 10; Podemos poner typeof num; o typeof(num);
document.write(num); //num
vale 10
}
9
IBM SkillsBuild | Introducción a Python
// Inicialización de la variable
alert(parseInt(num2)+23); _numero = 63;
Constantes /*
var a=3;
let b=4;
var c=5;
Por definición, una variable es un espacio en la
*/
memoria del ordenador donde se guardará un valor,
que puede cambiar a la largo de la ejecución del
// JavaScript es Case sensitive.
programa. En el caso de una constante, se define Distingue entre mayúsculas/minúsculas
como un espacio en la memoria del ordenador donde var numero = 10;
se guardará un valor, que NO puede cambiar a la var Numero = 20;
largo de la ejecución del programa. Es decir, si
declaramos una constante y dentro guardamos un console.log("La variable 'numero' vale:"
valor, dicho valor ya no podrá ser modificado. + numero);
console.log("La variable 'Numero' vale:"
Sintaxis: + Numero);
10
IBM SkillsBuild | Introducción a Python
//Operador incremento
var numeroInicial = 10;
let numeroIncrementado =
++numeroInicial;
document.write("<br>");
document.write("<br>");
// Ahora al revés
let numero6 = 5;
//Las comillas anidadas siempre alternas, Length: Calcula la longitud de un texto. Si la usamos
let nombre3 = 'Mi nombre es "Angel" ';
con arrays me dice el número de elementos del
let nombre4 = "Mi nombre es 'Angel' ";
array.
/* Cuando declaremos numeros con los que Concat: Para concatenar texto. Como el +
no vamos a operar
matemáticamente lo haremos como strings
*/ var texto=texto1.concat(" "+texto2);
let telefono = "666666666";
12
IBM SkillsBuild | Introducción a Python
En este caso me imprimiría 11. Es decir, si el texto comienza por los caracteres que
le digamos.
El método search() funciona igual:
Substr(): Sácame desde el carácter 14, 5 caracteres includes(); Busca una palabra en un texto. Es case
en adelante: sensitive.
13
IBM SkillsBuild | Introducción a Python
var numero1 = 3;
14
IBM SkillsBuild | Introducción a Python
A la izquierda del operador, siempre debe indicarse el Por tanto, el anterior ejemplo es equivalente a:
nombre de una variable. A la derecha del operador, se
pueden indicar variables, valores, condiciones lógicas,
etc.: var numero = 5;
numero = numero + 1;
alert(numero); // numero = 6
var numero1 = 3;
var numero2 = 4;
decremento
numero = numero - 1;
alert(numero); // numero = 4
var numero = 5;
numero++;
El operador de incremento se indica mediante el
alert(numero); // numero = 6
prefijo ++ en el nombre de la variable.
15
IBM SkillsBuild | Introducción a Python
Operadores Lógicos
El resultado de ejecutar el script anterior es el mismo
que cuando se utiliza el operador ++numero, por lo
que puede parecer que es equivalente indicar el
operador ++ delante o detrás del identificador de la
Los operadores lógicos son imprescindibles para
variable. Sin embargo, el siguiente ejemplo muestra
realizar aplicaciones complejas, ya que se utilizan
sus diferencias:
para tomar decisiones sobre las instrucciones que
debería ejecutar el programa en función de ciertas
Es decir, aunque ambas expresiones se parecen Si la variable original es de tipo booleano, es muy
mucho, no es lo mismo el operador suma e sencillo obtener su negación. Sin embargo, ¿qué
incremento (numero++) que incremento y suma sucede cuando la variable es un número o una
(++numero). cadena de texto?
16
IBM SkillsBuild | Introducción a Python
var cantidad = 0;
vacio = !cantidad; // vacio = true
OR
cantidad = 2; La operación lógica OR también combina dos valores
vacio = !cantidad; // vacio = false booleanos. El operador se indica mediante el
símbolo || y su resultado es true si alguno de los dos
var mensaje = ""; operandos es true:
mensajeVacio = !mensaje; //
mensajeVacio = true variable1 variable2 variable1 || variable2
17
IBM SkillsBuild | Introducción a Python
Operadores Matemáticos
El operador módulo en JavaScript se indica mediante
el símbolo %, que no debe confundirse con el cálculo
del porcentaje:
var numero1 = 5;
numero1 += 3; // numero1 = numero1 +
Además de los cuatro operadores básicos, JavaScript 3 = 8
define otro operador matemático que no es sencillo numero1 -= 1; // numero1 = numero1 -
de entender cuando se estudia por primera vez, pero 1 = 4
que es muy útil en algunas ocasiones. numero1 *= 2; // numero1 = numero1
* 2 = 10
Se trata del operador "módulo" (o resto de la numero1 /= 5; // numero1 = numero1
división), que calcula el resto de la división entera de / 5 = 1
dos números. Si se divide por ejemplo 10 y 5, la numero1 %= 4; // numero1 = numero1
división es exacta y da un resultado de 2. El resto de % 4 = 1
esa división es 0, por lo que módulo de 10 y 5 es igual
a 0.
18
IBM SkillsBuild | Introducción a Python
Los operadores que relacionan variables son Los operadores relacionales también se pueden
imprescindibles para realizar cualquier aplicación utilizar con variables de tipo cadena de texto:
compleja, como se verá en el siguiente capítulo de
programación avanzada. El resultado de todos estos
var texto1 = "hola";
operadores siempre es un valor booleano:
var texto2 = "hola";
var texto3 = "adios";
var numero1 = 3;
var numero2 = 5; resultado = texto1 == texto3; //
resultado = numero1 > numero2; // resultado = false
resultado = false resultado = texto1 != texto2; //
resultado = numero1 < numero2; // resultado = false
resultado = true resultado = texto3 >= texto2; //
resultado = false
numero1 = 5;
numero2 = 5;
resultado = numero1 >= numero2; //
Cuando se utilizan cadenas de texto, los operadores
resultado = true
"mayor que" (>) y "menor que" (<) siguen un
resultado = numero1 <= numero2; //
razonamiento no intuitivo: se compara letra a letra
resultado = true
resultado = numero1 == numero2; // comenzando desde la izquierda hasta que se
resultado = true encuentre una diferencia entre las dos cadenas de
resultado = numero1 != numero2; // texto. Para determinar si una letra es mayor o menor
resultado = false que otra, las mayúsculas se consideran menores que
las minúsculas y las primeras letras del alfabeto son
menores que las últimas (a es menor que b, b es
menor que c, A es menor que a, etc.)
Se debe tener especial cuidado con el operador de
igualdad (==), ya que es el origen de la mayoría de
errores de programación, incluso para los usuarios
que ya tienen cierta experiencia desarrollando
scripts. El operador == se utiliza para comparar el
valor de dos variables, por lo que es muy diferente
del operador =, que se utiliza para asignar un valor a
una variable:
19
IBM SkillsBuild | Introducción a Python
Condiciones y bucles en
Con los condicionales vamos a modificar el flujo de
ejecución según nos convenga en función de si se
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
20
IBM SkillsBuild | Introducción a Python
Según las necesidades de nuestro código, el Dichas comparaciones se llevan a cabo mediante los
condicional se puede complicar lo que sea necesario: operadores de comparación y los operadores lógicos:
Condicionales
OPERADOR DESCRIPCIÓN EJEMPLO
LÓGICO
La toma de decisiones en programación es similar a && Y lógico a>b && b<c
la toma de decisiones en la vida real. En
programación también enfrentamos algunas || O lógico a=b || a=c
situaciones en las que queremos que se ejecute un
! NO lógico x!=y
cierto bloque de código cuando se cumple alguna
condición.
JavaScript trabaja con dos tipos de condicionales,
Los lenguajes de programación utilizan instrucciones
IF…ELSE y SWITCH…CASE. A continuación, veremos
condicionales para controlar el flujo de ejecución del
el uso de ambos.
programa en función de ciertas condiciones. Estos se
utilizan para hacer que el flujo de ejecución avance y
se ramifique en función de los cambios en el estado
de un programa.
IF…ELSE
Esta declaración es la condición más simple para
tomar decisiones. Se utiliza para decidir si una
Comparadores determinada declaración o bloque de instrucciones
se ejecutará o no, es decir, si una determinada
condición es verdadera, entonces un bloque de
Para poder tomar decisiones se han de hacer
instrucción se ejecuta de otro modo se ejecutarán
comparaciones.
otras instrucciones de código.
21
IBM SkillsBuild | Introducción a Python
La sintaxis puede tener varias formas: Se pueden poner tantos else…if como queramos.
Opción 1. Una sola condición a comprobar: El else final no es obligatorio pero es útil para
ejecutar instrucciones en caso de que ninguna de las
If( Condición a cumplir ){
condiciones anteriores se cumpla.
Instrucciones a ejecutar en caso de que la condición
se cumpla
}else{ Vamos a añadir al ejemplo anterior una segunda
Instrucciones a ejecutar en caso de que la condición
condición. Además de tener el dinero, para comprar
no se cumpla
} el coche se ha de ser mayor de edad:
22
IBM SkillsBuild | Introducción a Python
Para averiguar si un valor es numérico usamos la Analizamos un poco más en detalle la sintaxis de
función isNaN(). este código que incluye las palabras
claves: switch, case, break y default:
Otra opción que nos brinda JavaScript para usar escribiríamos un ‘case’ para cada nº: 1, 2…10
instrucciones;}
23
IBM SkillsBuild | Introducción a Python
Partiendo de una variable edad, crear un programa Además, los bucles se ejecutan a través de una
que imprima diferentes mensajes según sea el valor condición.
de edad.
Existen dos tipos de bucles:
Su sintaxis es:
break;
document.write(imprime); for(inicio ; condición ;
}
incremento/decremento){
código a repetir}
24
IBM SkillsBuild | Introducción a Python
En este bucle for hemos creado una variable local document.write("Ejecución terminada.");
llamada i que hemos inicializado a cero. La condición
es que el bucle se repita mientras que i<10. A cada
vuelta de bucle i se incrementará en una unidad (con
lo que en la décima vuelta la condición dejará de
cumplirse). Y en cada vuelta de bucle se imprimirá la
palabra hola.
25
IBM SkillsBuild | Introducción a Python
var contador = 0;
var meses = ["Enero", "Febrero",
"Marzo", "Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre",
"Octubre", "Novienbre", "Diciembre"];
while (contador < meses.length) {
document.write(meses[contador] +
"<br>");
contador++;
}
WHILE. DO…WHILE
Es similar al ciclo for explicado anteriormente. Se
ejecuta hasta que la condición sea falsa (false). La
diferencia se basa en que la evaluación se realiza al
final de cada iteración.
Sintaxis:
While(Condición a cumplir)
26
IBM SkillsBuild | Introducción a Python
Otro ejemplo sería crear un programa que pida al Un ejemplo de do…while es crear un número
usuario el número de ejecuciones e imprima en aleatorio entre 0-100 y pedir al usuario que intente
consola cuánto vale una variable contador que se adivinarlo.
incremente en cada ciclo que va haciendo el bucle:
Cada intento incrementará un contador.
let contador = 0;
let ciclos = Number(prompt("Introduce //Creamos un número aleatorio entre 0
número de ejecuciones")); y 1.
// Despues lo multiplicamos por 100
para que esté entre 0-100
while(contador < ciclos){ //Lo redondeamos para que sea entero
console.log("Contador vale ahora var numero =
" + contador); parseInt(Math.random()*100);
contador++;
} var numero_introducido;
var contador = 0;
27
IBM SkillsBuild | Introducción a Python
Break
En JavaScript los valores del array NO tienen que
ser del mismo tipo.
• var
Nos permite salir de un bucle de ejecución al Articulos=[“zapatilla”,”camiseta”,”pantalon”,”cal
cumplirse una condición. cetines”];
• var Articulos=new array
En el siguiente ejemplo tenemos un bucle que
[“zapatilla”,”camiseta”,”pantalon”,”calcetines”];
imprimiría los años del 2000 al 2010. Pero hemos
introducido un break cuando el año = 2005:
Artículos: zapatilla, camiseta, pantalón y calcetines.
var year = 2000;
while (year < 2010) {
En JavaScript un array se declara de las siguientes
document.write(year + "<br>");
formas:
if (year == 2005) {
break;
}
year++; var
} Articulos=["zapatilla","camiseta","pantal
ón","calcetines"];
O:
Los arrays nos permiten trabajar con conjuntos de La posición de los elementos empieza a contar desde
valores y almacenarlos en una única dirección de cero, es decir, en nuestro array Artículos, el elemento
memoria. en la posición cero es zapatilla, en la posición 1
28
IBM SkillsBuild | Introducción a Python
tenemos camiseta, en la posición 2 tenemos Aquí podemos ver un ejemplo de estas funciones:
pantalón y en la posición 3 tenemos calcetines.
</script>
</body>
</html>
29
IBM SkillsBuild | Introducción a Python
var
posicion=articulos.indexof("pantalones"); document.write("<ul>");
var nombres = ["Angel", "Sara",
"Manolo", "Ana"];
Convertir un array a texto: for (var i = 0; i < nombres.length;
i++) {
document.write("<li>" +
nombres[i] + "</li>");
var miString=artículos.join(); };
document.write("</ul>");
30
IBM SkillsBuild | Introducción a Python
var
Opcionalmente la función foreach puede recibir más
busqueda=nombres.find(function(nombre){
parámetros.
return nombre==nombre1;
});
Un segundo parámetro puede ser el índice.
var busqueda=nombres.findIndex(nombre
=> nombre==nombre1);
31
IBM SkillsBuild | Introducción a Python
Arrays multidimensionales
console.log(cine[0][1]);
Cine
Películas Categoría
POO
Batman Acción Ya vimos en anteriores temas los principios de la
programación orientada a objetos. Pues bien,
JavaScript es un lenguaje de programación orientado
Cars Infantil a objetos, por lo que comparte los conceptos clave
de dicho paradigma de programación. No obstante la
POO en JavaScript no se suele usar, ya que la POO
está pensada para otro tipo de programas diferentes
It Terror
de las páginas web. Realmente en programación web
no tiene mucho sentido el uso de clases, objetos,
atributos, métodos, etc. Pero no está de más que el
alumno se familiarice con dichos conceptos.
Funciones
Las propiedades se modifican con la nomenclatura
del punto y el valor entre comillas:
Para llamar a los métodos: Para usar una función, hay que definirla primero:
nombreDelObjeto.metodo();
function nombre_funcion(){
}
Ejemplo:
33
IBM SkillsBuild | Introducción a Python
Este es un ejemplo para declarar una función de En la declaración de la función hemos puesto que
nombre suma. Dicha función leerá el valor de dos nuestra función, al ser llamada, recibirá dos
variables y sacará el valor de la suma de ambas. parámetros, num1 y num2. Por lo tanto, en la
llamada a la función estamos obligados a pasarle
dichos parámetros o nos dará error.
//Declaración de la función
let num1 =5; Al llamar a la función hemos pasado el valor de 3
let num2 = 10; para num1 y 7 para num2.
<body>
//Declaración de la función <h1>Hola es día:
<script>fecha();</script>
</h1>
function suma2(num1, num2){ </body>
console.log("La suma de "+num1+" </html>
y "+num2+" es "+(num1+num2));
}
//Llamada a la función
suma(3, 7);
34
IBM SkillsBuild | Introducción a Python
Escribir una función que pida el nombre al usuario y Crear una función que sume dos números
confeccione un mensaje de bienvenida con dicho introducidos por el usuario:
nombre:
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Documento sin título</title> <title>Documento sin título</title>
<script> <script>
var nombre; var num1;
function pedir_nombre() { var num2;
nombre = prompt("Introduce function suma(num1, num2) {
nombre"); num1 = prompt("Introduce número
document.write(nombre); 1: ");
} num2 = prompt("Introduce número 1
</script> :");
</head> document.write("La suma de " +
num1 + " y " + num2 + " es= " +
<body> (Number(num1) + Number(num2)));
<p>Hola }
<script>pedir_nombre();</script> , </script>
cómo estás? </head>
</p>
</body> <body>
</html> <script>
suma(num1, num2);
</script>
</body>
</html>
35
IBM SkillsBuild | Introducción a Python
Cuando no sepamos con exactitud el número de Las funciones anónimas son aquellas que no tienen
parámetros que le pueden llegar a nuestra función, nombre y las podemos guardar dentro de una
pondremos tres puntos para hacer referencia al resto variable.
de posibles parámetros. Dichos parámetros serán
almacenados en un array con el nombre de mi
var miFuncion=function(nombre);
parámetro. return "El nombre es " + nombre;
function numeros(num1,
num2,...otros){ Para llamarla:
document.write(num1 +" , "+
num2+"<br>");
document.write(otros); miFuncion("Angel");
}
numeros(2,3,4,54,332);
function numeros(num1,
num2,...otros){ function funcionPrincipal(callback){
document.write(num1 +" , "+ alert('hago algo y llamo al
num2+"<br>"); callback avisando que terminé');
document.write(otros); callback();
} }
var arrayNumeros=[1,10];
numeros(…arrayNumeros,3,4,54,332); funcionPrincipal(function(){
alert('termino de hacer algo');
});
36
IBM SkillsBuild | Introducción a Python
Aquí vemos como la función funcionPrincipal se Con esto ya vemos la fuerza que puede tener esta
ejecuta recibiendo un argumento que es otra función forma de programación, pero ahora imaginemos que
y que se ejecuta después de que termine su labor queremos encadenar diferentes funciones con
llamando a callback. callbacks, lo cual es muy sencillo siguiendo con la
misma lógica:
Pero no te preocupes si no lo has entendido, vamos a
hacer algunos ejemplos más para ir cogiéndolo, en
realidad es muy sencillo. function funcionPrincipal(callback1,
callback2, callback3){
Siguiendo con el caso anterior, podemos hacer //código de la función principal
incluso que la función callback1();
callback reciba argumentos que se envían desde la //más código de la función
función principal… principal
callback2();
//más código de la función
function funcionPrincipal(callback){ principal
alert('hago algo y llamo al callback3();
callback avisando que terminé'); //más código si fuera necesario
callback('Miguel'); }
}
funcionPrincipal(
funcionPrincipal(function(nombre){ function(){
alert('me llamo ' + nombre); alert('primer callback');
}); },
function(){
alert('segundo callback');
},
function(){
alert('tercer callback');
}
);
37
IBM SkillsBuild | Introducción a Python
De modo que podemos declarar las funciones que se Esto que parece un lío, vamos a verlo en un código
enviarán como argumentos aparte, lo cual nos donde mostraremos un alert, un reloj y un texto, y
permite también utilizarlas en otras partes del donde el reloj se va modificando cada segundo y el
código, tal y como vemos en el siguiente ejemplo: texto tardará en aparecer 3 segundos:
funcionPrincipal(callback1,
Funciones flecha
callback2, callback3);
</script>
Las funciones de flecha son una manera de definir
</body>
funciones de callback de una manera mucho más
</html>
clara y limpia. Simplemente sustituyendo la palabra
function por una flecha. Si lleva un parámetro no
hace falta poner los paréntesis, si lleva dos ya sí.
El ejemplo en esencia es el mismo, cambiando las
funcionalidades de las funciones de callback, pero
function sumame(num1, num2,
hemos añadido la función setInterval() para que se
sumaYmuestra, sumaPorDos) {
retrasen e incluso se actualice, aprovechando de var suma = num1 + num2;
paso la forma de hacer un reloj en JavaScript…
sumaYmuestra(suma);
Existe una sintaxis para las funciones de callback
sumaPorDos(suma);
llamada funciones de flecha, en las que se omite la
palabra function y se sustituye por una flecha puesta return suma;
tras el nombre de la función: }
funcionPrincipal(nombre =>{
alert('me llamo ' + nombre);
});
39
IBM SkillsBuild | Introducción a Python
Eventos
Para definir las acciones que queremos realizar al
producirse un evento utilizamos los manejadores de
eventos. Existen muchos tipos de eventos sobre los
que podemos asociar manejadores de eventos, para
Los eventos son la manera que tenemos en
muchos tipos de acciones del usuario.
JavaScript de controlar las acciones de los
visitantes y definir un comportamiento de la página En JavaScript podemos definir eventos de dos
cuando se produzcan. Cuando un usuario visita una maneras distintas. Una manera es en el propio código
página web e interactúa con ella se producen los HTML, usando atributos de los elementos (etiquetas)
eventos y con JavaScript podemos definir qué a los que queremos asociar los manejadores de
queremos que ocurra cuando se produzcan los eventos. Otra manera un poco más avanzada es
eventos. usando los propios objetos del DOM. Vamos a ver
ambas maneras a continuación.
Para entender los eventos necesitamos conocer
algunos conceptos básicos:
40
IBM SkillsBuild | Introducción a Python
<SELECT
<FORM>
onchange="window.alert('Cambiaste la
<input type="button" value="Pulsar"
selección')">
onclick="ejecutaEventoOnclick()">
<OPTION value="opcion1">Opcion 1
</FORM>
<OPTION value="opcion2">Opcion 2
</SELECT>
41
IBM SkillsBuild | Introducción a Python
Manejadores de eventos
Lo más cómodo para acceder a un elemento de la
página y recuperar el objeto del DOM asociado a esa
<img
src="https://picsum.photos/200/300"
id="imagen">
42
IBM SkillsBuild | Introducción a Python
Apéndice de eventos de
Ahora le asociamos el manejador de evento para el
tipo de evento "mouseover" con este código
JavaScript.
JavaScript
var miImagen =
La siguiente tabla resume los eventos más
document.getElementById('imagen');
importantes definidos por JavaScript:
miImagen.addEventListener('mouseover'
, function() {
alert('Has pasado el ratón encima de Evento Descripción Elementos
la imagen') para los que
}) está definido
43
IBM SkillsBuild | Introducción a Python
var
onmou Soltar el Todos los cajas=document.getElementById("caja").inn
seup botón que elementos
erHTML;
estaba
pulsado en el
ratón
De esta forma cargamos en la variable cajas el valor
onrese Inicializar el <form> del elemento con id=caja.
t formulario
(borrar todos
sus datos)
44
IBM SkillsBuild | Introducción a Python
También podemos modificar las propiedades o el y con punto para hacer referencia a su clase.
valor del elemento con id=caja.
var
var cajas=document.querySelector(".caja");
cajas=document.getElementById("caja");
cajas.innerHTML;
cajas.style.background="red";
De esta forma selecciono también el elemento con Para seleccionar todos los elementos de un tipo:
id=caja.
var
De esta forma si selecciono el elemento solo es para
contenido=todos_los_div[2].textContent();
seleccionar el nombre de la etiqueta, console.log(contenido);
var
cajas=document.querySelector("caja"); Me mostraría lo que hay en el elemento [2] del array.
45
IBM SkillsBuild | Introducción a Python
La única diferencia es que con innerHTML(), si Abrir una pestaña nueva en el navegador:
quiero, puedo añadirle un valor nuevo al contenido.
window.open(URL_de_destino);
También podemos seleccionar elementos por su
etiqueta .class con:
document.getElemenByClassname();
BOM
console.log(window.innerHeight);
console.log(window.innerWidth);
console.log(screen.Width); Similar a lo
anterior
console.log(window.location);
Sacar la Href:
console.log(window.location.href);
46