Tema 06 - Manual Básico de JavaScript
Tema 06 - Manual Básico de JavaScript
BÁSICO
DE
Manual Básico de JavaScript © 2024 by Juan Pueyo is licensed under CC BY-NC-ND 4.0
Manual Básico de JavaScript Juan Pueyo
Contenido
Capítulo 1. Introducción ................................................................................................................ 8
1.1. ¿Qué es JavaScript? ............................................................................................................ 8
Frontend (Lado del Cliente): .................................................................................................. 8
Backend (Lado del Servidor):................................................................................................. 9
1.2. Breve historia ..................................................................................................................... 9
1.3. Especificaciones oficiales ................................................................................................. 10
1.4. Cómo incluir JavaScript en documentos HTML ................................................................ 11
Atributo defer o async: ........................................................................................................ 12
1.5. E�queta noscript .............................................................................................................. 12
1.6. Sintaxis.............................................................................................................................. 12
1. Mayúsculas y minúsculas: ............................................................................................... 12
2. Espacios en Blanco: ......................................................................................................... 13
3. Punto y Coma (;): ............................................................................................................. 13
4. Bloques de Código: .......................................................................................................... 13
5. Comentarios: ................................................................................................................... 13
6. Cadenas de Texto:............................................................................................................ 13
7. Variables: ......................................................................................................................... 14
1.8. Posibilidades y limitaciones.............................................................................................. 14
Posibilidades ........................................................................................................................ 14
Limitaciones......................................................................................................................... 14
1.9. JavaScript y navegadores .................................................................................................. 15
Capítulo 2. Programación Básica. ................................................................................................ 16
2.1. Variables ........................................................................................................................... 16
2.1.1 Iden�ficadores............................................................................................................ 16
2.1.2. Declaración de variables. .......................................................................................... 17
2.1.3. Tipos de variables. ..................................................................................................... 19
1. Operadores Aritmé�cos: ................................................................................................. 20
2. Operadores de Asignación: ............................................................................................. 20
3. Operadores de Comparación: ......................................................................................... 21
4. Operadores Lógicos: ........................................................................................................ 21
5. Operadores de Concatenación: ....................................................................................... 21
6. Operador Ternario: .......................................................................................................... 21
7. Operador de Incremento/Decremento: .......................................................................... 22
2.3. Estructuras de control de flujo. ........................................................................................ 23
3
Manual Básico de JavaScript Juan Pueyo
4
Manual Básico de JavaScript Juan Pueyo
5
Manual Básico de JavaScript Juan Pueyo
6
Manual Básico de JavaScript Juan Pueyo
7
Manual Básico de JavaScript Juan Pueyo
Capítulo 1. Introducción
JavaScript se u�liza tanto en el frontend (lado del cliente) como en el backend (lado del servidor)
del desarrollo web, lo que permite a los desarrolladores u�lizar el mismo lenguaje en ambos
entornos. Uso en el frontend y en el backend:
2. Interactividad en el Navegador:
A través de eventos y manipulación del DOM, JavaScript permite crear experiencias interac�vas
para el usuario en el navegador. Esto incluye formularios dinámicos, validación de datos,
animaciones y actualizaciones en �empo real.
8
Manual Básico de JavaScript Juan Pueyo
2. [Link]:
[Link] es un marco de desarrollo web para [Link] que simplifica la creación de aplicaciones
web y APIs en el lado del servidor.
Es importante destacar que, aunque JavaScript comparte el nombre "Java", no está directamente
relacionado con Java en términos de diseño o funcionalidad. La elección del nombre "JavaScript"
fue en gran medida una decisión de marke�ng para capitalizar el auge de Java en ese momento.
JavaScript fue introducido en Netscape Navigator 2.0 en 1995 y, debido a su capacidad para
proporcionar interac�vidad en el lado del cliente en las páginas web, se convir�ó rápidamente
en un componente esencial del desarrollo web. A medida que la web evolucionaba, JavaScript
se volvía cada vez más importante, y su adopción se amplió con la estandarización a través de
ECMAScript, el estándar que define la especificación del lenguaje.
9
Manual Básico de JavaScript Juan Pueyo
2. ECMAScript 2 (ES2): Lanzado en 1998, esta versión incluyó correcciones de errores y mejoras
en la especificación.
3. ECMAScript 3 (ES3): Lanzado en 1999, ES3 introdujo nuevas caracterís�cas como manejo de
excepciones mejorado y soporte para expresiones regulares.
5. ECMAScript 5 (ES5): Lanzado en 2009, ES5 trajo muchas mejoras, incluyendo métodos de
arreglos adicionales, soporte para geters y seters, y el método bind().
6. ECMAScript 6 (ES6) o ECMAScript 2015 (ES2015): Lanzado en 2015, ES6 fue una de las
actualizaciones más grandes e introdujo muchas caracterís�cas nuevas, como clases, arrow
func�ons, const y let para la declaración de variables, entre otras.
7. ECMAScript 2016 (ES2016): Esta versión fue una actualización más pequeña, introduciendo el
operador de exponenciación ().
8. ECMAScript 2017 (ES2017): Introdujo nuevas caracterís�cas como async/await para simplificar
el trabajo con código asíncrono, así como [Link]/[Link], entre otros.
10
Manual Básico de JavaScript Juan Pueyo
9. ECMAScript 2018 (ES2018): Introdujo mejoras como las expresiones regulares lookbehind,
rest/spread proper�es para objetos, y [Link].finally.
11. ECMAScript 2020 (ES2020): Introdujo caracterís�cas como BigInt para representar enteros
más grandes, [Link] y nullish coalescing operator (??).
Estas son solo algunas de las versiones más notables de ECMAScript. Desde ES6, la comunidad
ha adoptado un enfoque de lanzamientos anuales más pequeños para introducir nuevas
caracterís�cas de manera más constante y manejable. Es importante tener en cuenta que no
todas las caracterís�cas de las especificaciones pueden ser compa�bles con todos los
navegadores de inmediato, ya que la implementación puede llevar �empo.
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Mi Página Web</title>
</head>
<body>
<!-- Tu contenido HTML aquí -->
11
Manual Básico de JavaScript Juan Pueyo
- defer: Indica que el script se ejecutará después de que la página se haya analizado.
- async: Descarga el script de manera asíncrona y lo ejecuta tan pronto como esté disponible,
sin esperar a que se complete la carga de la página.
El método que se elija depende de las necesidades específicas y de la forma en que se prefiera
organizar el código.
<noscript>
<p>Por favor, habilita JavaScript en tu navegador.</p>
</noscript>
1.6. Sintaxis
JavaScript es un lenguaje de programación flexible en términos de su sintaxis. Pautas generales
sobre la sintaxis de JavaScript:
1. Mayúsculas y minúsculas:
JavaScript es sensible a mayúsculas y minúsculas, lo que significa que miVariable y mivariable
son tratadas como dos variables diferentes.
var miVariable = 5;
var mivariable = 10;
[Link](miVariable); // Imprimirá 5
[Link](mivariable); // Imprimirá 10
12
Manual Básico de JavaScript Juan Pueyo
2. Espacios en Blanco:
JavaScript es bastante flexible en el uso de los espacios en blanco. Se pueden usar espacios y
saltos de línea para hacer que el código sea más legible.
var x = 5;
var y = 10;
if (x < y) {
[Link]("x es menor que y");
}
4. Bloques de Código:
Las llaves {} se u�lizan para definir bloques de código, como el cuerpo de una función o una
estructura de control (if, for, while, etc.).
if (x < y) {
[Link]("x es menor que y");
} else {
[Link]("x no es menor que y");
}
5. Comentarios:
Los comentarios en JavaScript pueden ser de una sola línea (//) o de varias líneas (/* ... */).
// Este es un comentario de una sola línea
/*
Este es un comentario
de varias líneas
*/
6. Cadenas de Texto:
Puedes definir cadenas de texto con comillas simples (') o comillas dobles (").
var nombre = 'Juan';
var saludo = "Hola, " + nombre + "!";
13
Manual Básico de JavaScript Juan Pueyo
7. Variables:
Declara variables con var, let, o const. let y const son introducidos en ECMAScript 6 (ES6) y �enen
un ámbito de bloque más estricto que var.
var variable1 = 5;
let variable2 = 10;
const PI = 3.14;
Solo con JavaScript se pueden incluir aplicaciones dentro de páginas web que an�guamente solo
podían desarrollarse en entornos de escritorio.
Limitaciones
JavaScript es un lenguaje de programación muy versá�l y potente, pero también �ene sus
limitaciones y hay ciertas cosas que no puede hacer:
1. Acceso al sistema de archivos: por razones de seguridad, JavaScript en un navegador web �ene
restricciones para acceder al sistema de archivos local del usuario. No puede leer ni escribir
archivos directamente desde el sistema de archivos del cliente.
2. Acceso a recursos fuera del dominio: debido a la polí�ca de mismo origen (Same-Origin Policy),
JavaScript en un navegador web �ene limitaciones en cuanto a realizar solicitudes a dominios
diferentes al de la página que lo con�ene. Esto ayuda a prevenir ataques de seguridad como la
manipulación de recursos de otros dominios.
4. Interacción con el sistema opera�vo: JavaScript no �ene acceso directo al sistema opera�vo
ni puede realizar operaciones de sistema, como la instalación de so�ware o el manejo de
archivos del sistema.
14
Manual Básico de JavaScript Juan Pueyo
5. Acceso a hardware específico: JavaScript no �ene acceso directo a hardware específico del
disposi�vo del usuario, como la cámara o el micrófono, sin el consen�miento explícito del
usuario.
7. Mul�hilos real: JavaScript en el navegador es de un solo hilo (aunque existen tecnologías como
Web Workers para realizar operaciones en segundo plano). [Link] en el servidor puede manejar
concurrencia, pero sigue siendo de un solo hilo mediante el uso de eventos y operaciones no
bloqueantes.
Es importante destacar que algunas de estas limitaciones son específicas del entorno del
navegador web y no se aplican necesariamente a entornos como [Link], donde JavaScript
puede tener más acceso al sistema opera�vo. Sin embargo, incluso en entornos de servidor, hay
ciertas restricciones y precauciones que deben tenerse en cuenta por razones de seguridad y
estabilidad.
15
Manual Básico de JavaScript Juan Pueyo
2.1. Variables
2.1.1 Iden�ficadores
Nombrar variables en JavaScript es una tarea importante para escribir un código limpio,
comprensible y mantenible. Pautas y convenciones comunes para nombrar variables:
1. Camel Case.
Se recomienda la convención de Camel Case para nombrar variables. Comienza con una letra
minúscula y las palabras siguientes comienzan con mayúsculas. Ejemplo: miVariable,
nombreUsuario, saldoCuenta.
2. Descriptivo y Significativo.
Se deben u�lizar nombres de variables que sean descrip�vos y que transmitan su propósito. Se
deben evitar nombres genéricos o abreviaciones que puedan ser di�ciles de entender.
// No recomendado:
var x = 10;
var n = "John";
// Preferible:
var edad = 10;
var nombreCliente = "John";
4. Evitar nombres de una sola letra (a menos que sea un índice de un bucle).
Aunque es común usar i como índice en bucles, evita nombres de una sola letra para variables,
excepto en contextos específicos y bien entendidos.
// Aceptable para índices de bucle:
for (var i = 0; i < 5; i++) {
// ...
}
// No recomendado:
var x = 10;
16
Manual Básico de JavaScript Juan Pueyo
1. var.
var fue la forma original de declarar variables en JavaScript. Sin embargo, �ene algunas
caracterís�cas que pueden causar problemas, especialmente en términos de ámbito. Además, si
se declaran dos variables iguales con var, JavaScript no genera ningún error.
var edad = 25;
var nombre = "Ana";
// Ámbito de función
function ejemplo() {
var variableLocal = "Solo visible dentro de la función";
[Link](edad); // Accesible desde cualquier parte de la
función
}
2. let.
let fue introducido en ECMAScript 6 (ES6) y se u�liza para declarar variables con ámbito de
bloque. A diferencia de var, las variables declaradas con let �enen un ámbito de bloque más
estricto.
// Ámbito de bloque
if (true) {
let variableLocal = "Solo visible dentro del bloque if";
[Link](edad); // Accesible desde cualquier parte
dentro del bloque if
}
17
Manual Básico de JavaScript Juan Pueyo
3. const.
const también fue introducido en ES6 y se u�liza para declarar variables cuyos valores no
cambiarán. Las variables declaradas con const deben inicializarse al momento de la declaración,
y no se les puede asignar un nuevo valor.
const PI = 3.14;
const nombre = "Juan Pueyo";
Es recomendable u�lizar const siempre que sea posible, ya que ayuda a evitar cambios
accidentales en el código. Si una variable puede cambiar de valor, entonces se debe u�lizar let.
Hay que evitar el uso de var a menos que se esté trabajando con código an�guo o situaciones
específicas donde se necesita su comportamiento par�cular.
18
Manual Básico de JavaScript Juan Pueyo
1. Number.
Representa números, ya sean enteros o de punto flotante.
let edad = 25; // Entero
let altura = 1.75; // Punto flotante
2. String.
Representa cadenas de texto.
let nombre = "Elena";
let mensaje = 'Hola, ¿cómo estás?';
3. Boolean.
Representa un valor lógico, true o false.
let esActivo = true;
let tieneCuenta = false;
4. Undefined.
Representa una variable que ha sido declarada pero no inicializada.
let variableNoInicializada;
[Link](variableNoInicializada); // Imprimirá undefined
5. Null.
Representa la ausencia de valor o un valor nulo de forma intencionada.
let valorNulo = null;
6. Objeto Literal.
Representa un objeto, que puede contener propiedades y métodos y que se define sin llamar a
un constructor, por eso se denomina “literal”.
let persona = {
nombre: "Ana",
edad: 30,
ciudad: "Ejemplo"
};
7. Array.
Representa una colección de elementos.
let colores = ["rojo", "verde", "azul"];
19
Manual Básico de JavaScript Juan Pueyo
8. BigInt.
Introducido en ECMAScript 2020, representa números enteros mayores que
Number.MAX_SAFE_INTEGER. Se representan con una n al final del número.
let numeroGrande = 1234567890123456789012345678901234567890n;
2.2. Operadores.
JavaScript incluye varios operadores que permiten realizar diversas operaciones, como
aritmé�ca, comparación, asignación, lógica, y más.
1. Operadores Aritmé�cos:
- +: Suma
- -: Resta
- *: Mul�plicación
- /: División
let a = 10;
let b = 3;
[Link](a + b); // 13
[Link](a - b); // 7
[Link](a * b); // 30
[Link](a / b); // 3.3333333333333335
[Link](a % b); // 1
2. Operadores de Asignación:
- =: Asignación simple
let x = 5;
x += 3; // x ahora es 8 (equivalente a x = x + 3)
20
Manual Básico de JavaScript Juan Pueyo
3. Operadores de Comparación:
- ==: Igualdad (compara valores, no �pos)
- >, <, >=, <=: Mayor, menor, mayor o igual, menor o igual
4. Operadores Lógicos:
- &&: AND lógico
- ||: OR lógico
- !: NOT lógico
5. Operadores de Concatenación:
- +: Concatenación de cadenas
let nombre = "Juan";
let apellido = "Pérez";
6. Operador Ternario:
- condición ? expresiónSiVerdadero : expresiónSiFalso
let edad = 20;
let esMayor = edad >= 18 ? "Es mayor de edad" : "Es menor de edad";
21
Manual Básico de JavaScript Juan Pueyo
7. Operador de Incremento/Decremento:
- ++: Incremento
- --: Decremento
let contador = 5;
contador++; // Incrementa el contador a 6
22
Manual Básico de JavaScript Juan Pueyo
23
Manual Básico de JavaScript Juan Pueyo
let diaDeLaSemana = 3;
let nombreDelDia;
switch (diaDeLaSemana) {
case 1:
nombreDelDia = "Lunes";
break;
case 2:
nombreDelDia = "Martes";
break;
case 3:
nombreDelDia = "Miércoles";
break;
case 4:
nombreDelDia = "Jueves";
break;
case 5:
nombreDelDia = "Viernes";
break;
case 6:
case 7:
nombreDelDia = "Fin de semana";
break;
default:
nombreDelDia = "Día no válido";
}
En este ejemplo, la expresión diaDeLaSemana se evalúa, y el código dentro del bloque switch se
ejecuta según el valor de esa expresión. Cada case representa un posible valor que puede tener
diaDeLaSemana. Cuando se encuentra el valor correcto, se ejecuta el bloque de código
correspondiente. El break se u�liza para salir del switch después de que se ha ejecutado un
bloque.
Si diaDeLaSemana no coincide con ninguno de los case, se ejecuta el bloque default (opcional).
Si no hay un bloque default, no se realiza ninguna acción si ninguno de los casos coincide.
Puede haber múl�ples casos que compartan el mismo bloque de código sin la necesidad de un
break entre ellos. Además, a par�r de ECMAScript 2015 (ES6), puedes u�lizar switch con cadenas
y expresiones más complejas. La estructura switch es ú�l cuando �enes múl�ples casos que
quieres evaluar de manera más clara y organizada que con una serie de instrucciones if-else if.
24
Manual Básico de JavaScript Juan Pueyo
switch (true) {
case (valor >= 0 && valor <= 49):
[Link]("Valor en el rango de 0 a 49");
break;
case (valor >= 50 && valor <= 74):
[Link]("Valor en el rango de 50 a 74");
break;
case (valor >= 75 && valor <= 100):
[Link]("Valor en el rango de 75 a 100");
break;
default:
[Link]("Valor fuera de rango");
}
En este ejemplo, el bloque de código dentro del while se ejecutará mientras la variable contador
sea menor que 5. En cada iteración, se imprime un mensaje y se incrementa el valor de contador.
Cuando contador alcanza el valor de 5, la condición se vuelve falsa y el bucle finaliza.
let contador = 0;
do {
[Link]("Iteración " + contador);
contador++;
} while (contador < 5);
En este ejemplo, el bloque de código dentro del do se ejecutará al menos una vez, ya que la
condición se verifica después de la ejecución del bloque. Luego, la condición se evalúa, y si es
25
Manual Básico de JavaScript Juan Pueyo
En este ejemplo:
- let i = 0: La expresión de inicialización establece el valor inicial de la variable de control del bucle
(i en este caso).
- i < 5: La condición verifica si la variable de control (i) es menor que 5. Si es verdadera, el bucle
con�núa; de lo contrario, se de�ene.
26
Manual Básico de JavaScript Juan Pueyo
1. break.
La instrucción break se u�liza para salir de un bucle antes de que se complete su ejecución
normal. Puede u�lizarse en bucles for, while, do-while, y también en bloques switch. Ejemplo:
En este ejemplo, el bucle se detendrá cuando i sea igual a 2, y no con�nuará a las iteraciones
siguientes.
2. continue.
La instrucción con�nue se u�liza para saltar a la siguiente iteración de un bucle sin ejecutar el
resto del código en el bloque del bucle. Ejemplo:
Ambas instrucciones (break y continue) son herramientas poderosas para controlar el flujo de
ejecución en situaciones específicas. Sin embargo, se recomienda su uso cuidadoso para evitar
resultados inesperados y mantener un código claro y fácil de entender.
27
Manual Básico de JavaScript Juan Pueyo
2.3. Arrays.
En JavaScript, los arrays son objetos que almacenan múl�ples valores en una única variable. Los
arrays pueden contener elementos de cualquier �po de datos, como números, strings, objetos,
funciones, otros arrays, etc.
Como los arrays en JavaScript son objetos, también se pueden crear instancias de la clase Array.
// Crear un array vacío
let miArray = new Array();
28
Manual Básico de JavaScript Juan Pueyo
29
Manual Básico de JavaScript Juan Pueyo
[Link](function(elemento) {
[Link](elemento);
});
En este ejemplo, la función de devolución de llamada se ejecuta una vez por cada elemento en
miArray, y elemento toma el valor de cada elemento en cada iteración.
Con el método forEach sí se pueden realizar diversas operaciones en cada elemento del array,
como se muestra en el siguiente ejemplo:
[Link](miArray);
2.3.7. Recomendaciones.
Aunque forEach() es más moderno, para iteraciones simples puede ser un poco engorroso. for..of
es muy cómodo pero solo sirve para leer, por lo tanto, la recomendación es que para iteraciones
simples en las que sea necesario modificar el array, se u�lice el método tradicional, y si solo es
para leer, for..of.
30
Manual Básico de JavaScript Juan Pueyo
matriz[1][0] = 4;
matriz[1][1] = 5;
matriz[1][2] = 6;
matriz[2][0] = 7;
matriz[2][1] = 8;
matriz[2][2] = 9;
// Imprimir la matriz
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
[Link](matriz[i][j]);
}
}
31
Manual Básico de JavaScript Juan Pueyo
Estos métodos no modifican la cadena original, sino que devuelven una nueva cadena con los
caracteres modificados.
charAt.
Este método devuelve el carácter en el índice especificado de una cadena. Los índices en
JavaScript comienzan desde 0. Ejemplo:
[Link](caracterEnIndice2); // Salida: l
indexOf.
Este método se u�liza para encontrar la primera ocurrencia de un valor en una cadena y devuelve
el índice de la primera aparición. Si el valor no se encuentra, devuelve -1. Ejemplo:
let mensaje = "Hola, mundo!";
let indiceDeComa = [Link](',');
[Link](indiceDeComa);
32
Manual Básico de JavaScript Juan Pueyo
lastIndexOf.
Igual que indexOf pero empezando por el final de la cadena. Ejemplo:
let mensaje = "Hola, mundo! Hola de nuevo!";
let ultimoIndiceDeHola = [Link]('Hola');
[Link](ultimoIndiceDeHola); // Salida: 13
Método substring.
Se u�liza para extraer una parte de una cadena de texto, especificando los índices de inicio y fin.
Ejemplo:
let mensaje = "Hola, mundo!";
let subcadena = [Link](0, 5);
En este ejemplo, substring(0, 5) extrae los caracteres desde el índice 0 hasta el índice 4 (sin incluir
el 5), por lo que la subcadena resultante es "Hola,".
Aquí, substring(6) extrae los caracteres desde el índice 6 hasta el final de la cadena, dando como
resultado la subcadena "mundo!".
Método split.
Se u�liza para dividir una cadena en un array de subcadenas en función de un delimitador
especificado. Ejemplo:
let listaFrutas = "manzana,banana,uva,kiwi";
[Link](arrayFrutas);
// Salida: ["manzana", "banana", "uva", "kiwi"]
33
Manual Básico de JavaScript Juan Pueyo
Atributo length.
Se u�liza para obtener la longitud (número de caracteres) de una cadena de texto. Ejemplo:
[Link](longitudMensaje); // Salida: 12
Atributo length.
Al igual que con las cadenas, se u�liza para obtener la longitud de un array. Ejemplo:
[Link](longitudArray); // Salida: 5
Método concat.
Se u�liza para combinar dos o más arrays creando un nuevo array resultante de la concatenación
de los arrays originales. Ejemplo:
[Link](arrayConcatenado);
// Salida: [1, 2, 3, 4, 5, 6]
Método join.
Se u�liza para unir todos los elementos de un array en una cadena. Se puede especificar un
separador opcional que se u�lizará entre cada elemento del array. Ejemplo:
let miArray = ["Hola", "mundo", "con", "JavaScript"];
let cadenaUnida = [Link](" ");
[Link](cadenaUnida);
// Salida: "Hola mundo con JavaScript"
En este ejemplo, join(" ") une todos los elementos del array miArray en una cadena, u�lizando
un espacio como separador entre cada elemento.
34
Manual Básico de JavaScript Juan Pueyo
[Link](cadenaDefault);
// Salida: "1,2,3,4,5"
Método push.
Añade uno o más elementos al final de un array.
let miArray = [1, 2, 3];
[Link](4, 5);
[Link](miArray);
// Salida: [1, 2, 3, 4, 5]
Método pop.
Elimina el úl�mo elemento de un array y devuelve ese elemento.
let miArray = [1, 2, 3, 4, 5];
let ultimoElemento = [Link]();
[Link](ultimoElemento); // Salida: 5
[Link](miArray);
// Salida: [1, 2, 3, 4]
Método shi�.
El método shi�() elimina el primer elemento de un array y devuelve ese elemento.
let miArray = [1, 2, 3, 4, 5];
let primerElemento = [Link]();
[Link](primerElemento); // Salida: 1
[Link](miArray);
// Salida: [2, 3, 4, 5]
Método unshi�.
El método unshi�() añade uno o más elementos al inicio de un array.
let miArray = [2, 3, 4, 5];
[Link](1);
[Link](miArray);
// Salida: [1, 2, 3, 4, 5]
35
Manual Básico de JavaScript Juan Pueyo
Método reverse.
Se u�liza para inver�r el orden de los elementos en un array. Ejemplo:
let miArray = [1, 2, 3, 4, 5];
[Link]();
[Link](miArray);
// Salida: [5, 4, 3, 2, 1]
Método slice.
Sirve para obtener una porción del array, desde la posición del primer parámetro hasta la
posición del segundo parámetro -1.
[Link](numeroConvertido);
// Salida: 123
String para conversión a cadena.
let numero = 456;
let cadenaConvertida = String(numero);
[Link](cadenaConvertida);
// Salida: "456"
[Link](booleanoConvertido);
// Salida: true (cualquier cadena no vacía se evalúa como true)
36
Manual Básico de JavaScript Juan Pueyo
[Link](entero1, entero2);
// Salida: 2 2
37
Manual Básico de JavaScript Juan Pueyo
Función eval.
Se u�liza para evaluar o ejecutar una cadena de texto como código JavaScript. Sin embargo, su
uso generalmente se desaconseja debido a problemas de seguridad y rendimiento, ya que puede
abrir la puerta a ejecución de código malicioso o ineficiencias en la interpretación del código.
Ejemplo de uso:
let x = 10;
let y = 20;
let resultado = eval("x + y");
[Link](resultado); // Salida: 30
2.9. EJERCICIO.
Escribe el código necesario para crear una matriz de 20x20 con los valores del 1 al 400 pero
par�endo de una estructura vacía y sin u�lizar new Array():
38
Manual Básico de JavaScript Juan Pueyo
3. Funciones
function nombreFuncion(parametros) {
…
}
Ejemplo:
// Definición de una función llamada suma
function suma(a, b) {
let resultado = a + b;
[Link](resultado);
En este ejemplo, se define una función llamada suma que toma dos parámetros (a y b) y muestra
la suma de estos dos valores.
Para llamar a una función se indica el nombre de la función seguido de los parámetros, que
�enen que corresponder con los de la definición de la función.
En este caso, se llama a la función suma con los argumentos 5 y 3, y el resultado se muestra por
la consola.
39
Manual Básico de JavaScript Juan Pueyo
3.3. Parámetros.
Los parámetros de las funciones en JavaScript son u�lizados para pasar información a la función
cuando es llamada. Estos parámetros actúan como variables locales dentro de la función y
permiten que la función realice operaciones específicas con los valores proporcionados. Gracias
a los parámetros, las funciones aumentan su funcionalidad y permiten ahorrar y aprovechar
código.
Para especificar los parámetros, estos se indican entre paréntesis después del nombre de la
función. Si son varios, se separan por comas y su correspondencia es de izquierda a derecha.
Dado que JavaScript no especifica el �po de sus variables, en los parámetros tampoco se realiza.
En el ejemplo anterior se u�lizaron dos parámetros, a y b.
JavaScript permite el uso de valores por defecto en los parámetros indicando su valor junto al
parámetro. En el siguiente ejemplo se mostraría por la consola 0 y undefined.
function ejemploFuncion(a = 0, b) {
[Link](a, b);
}
Hay que indicar que JavaScript permite el envío de un número variable de parámetros a la
función, sin embargo, no se van a explicar en este manual.
// Array y variable
let miArray = [1, 2, 3];
let miVariable = 0;
// Llamada a la función
modificarArray(miArray, miVariable);
40
Manual Básico de JavaScript Juan Pueyo
En cuanto al número de returns, no hay limitación, pero hay que tener presente que en cuanto
se ejecuta un return, la función finaliza y devuelve el valor de dicho return.
// Variable global
let variableGlobal = "Soy global";
function ejemploGlobal() {
cuidadoTambienSoyGlobal = "Soy global";
[Link](variableGlobal);
}
[Link](variableLocal);
}
41
Manual Básico de JavaScript Juan Pueyo
function ejemploBloque() {
if (true) {
// Variable local con 'let' y 'const' (ámbito de bloque)
let variableBloque = "Soy de bloque";
const otraVariableBloque = "Otra de bloque";
[Link](variableBloque);
[Link](otraVariableBloque);
}
ejemploBloque();
En general, se recomienda u�lizar let y const en lugar de var para evitar problemas relacionados
con el ámbito. Además, JavaScript ahora favorece el uso de let y const por sus comportamientos
más predecibles y menos propensos a errores.
Una función flecha es una expresión de función con una sintaxis más breve que no �ene su
propio this, arguments, super ni [Link]. Hereda el this del contexto donde se define y No
puede usarse como constructor. Dado que no �enen nombre, solo se pueden usar como
resultado de una expresión y asignar su valor, o como parámetro de una función (mo�vo por el
que se incluye aquí).
En vez de:
function nombreFuncion(parametros) {
cuerpo…
}
42
Manual Básico de JavaScript Juan Pueyo
Incluso si solo �ene una instrucción, se pueden omi�r las llaves y el return. En el siguiente
ejemplo se muestra una equivalencia:
function suma1(a, b) {
return a + b;
}
[Link](suma1(10, 20));
43
Manual Básico de JavaScript Juan Pueyo
4. DOM
El DOM, o Modelo de Objetos del Documento (Document Object Model, por sus siglas en inglés),
es una interfaz de programación para documentos HTML y XML. En el contexto de JavaScript, el
DOM proporciona una representación estructurada y orientada a objetos de un documento web.
Es una interfaz que permite a los programas (como scripts de JavaScript) modificar la estructura,
es�lo y contenido de un documento.
En esencia, el DOM convierte un documento web en una estructura de árbol de nodos, donde
cada nodo representa parte del documento, como elementos HTML, atributos, texto, etc. Este
árbol de nodos es accesible a través de JavaScript, lo que permite a los desarrolladores manipular
dinámicamente el contenido y la apariencia de una página web.
1. Nodos.
Se consideran nodos del árbol del DOM a los elementos HTML, atributos, texto y otros
componentes del documento HTML.
2. Árbol de Nodos.
La estructura jerárquica de nodos que representa la organización del documento.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejemplo de DOM</title>
</head>
<body>
<a href="[Link]"><p>Esto es un enlace.</p></a>
</body>
</html>
44
Manual Básico de JavaScript Juan Pueyo
Documento
HTML
Elemento Elemento
<head> <body>
Texto
Esto es un enlace
45
Manual Básico de JavaScript Juan Pueyo
46
Manual Básico de JavaScript Juan Pueyo
Animaciones y Transiciones.
Facilita la creación de animaciones y transiciones en elementos HTML. Por ejemplo, cambiar
gradualmente la posición de un elemento a lo largo del �empo.
Manipulación de Eventos.
Permite adjuntar y quitar manejadores de eventos a elementos HTML. Por ejemplo, ejecutar una
función cuando se produce un clic en un botón.
47
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejemplo getElementsByTagName</title>
</head>
<body>
<h1>Ejemplo DOM</h1>
<p>Este es un párrafo.</p>
<p>Este es otro párrafo.</p>
<div>
<p>Un párrafo dentro de un div.</p>
</div>
<script>
// Acceder a todos los elementos <p>
let parrafos = [Link]("p");
</body>
</html>
Explicación:
1. Se u�liza getElementsByTagName("p") para obtener una colección de todos los elementos <p>
en el documento.
2. Se u�liza un bucle for para iterar sobre la colección y modificar el contenido de cada párrafo
con innerHTML.
innerHTML es un atributo que �enen aquellos nodos que admiten Text Node y que permite
modificar su contenido directamente.
48
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejemplo getElementById</title>
</head>
<body>
<script>
// Acceder a elementos por su ID
let titulo = [Link]("titulo");
let parrafo = [Link]("parrafo");
</body>
</html>
4. Se u�liza style para cambiar el es�lo de los elementos, por ejemplo, el color del texto y el peso
de la fuente.
49
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejemplo querySelector y querySelectorAll</title>
<style>
.parrafo {
color: green;
}
</style>
</head>
<body>
<script>
// Ejemplo de querySelector
let primerParrafo = [Link]("[Link]");
[Link] = "Primer párrafo con
querySelector.";
// Ejemplo de querySelectorAll
let todosLosParrafos =
[Link]("[Link]");
</script>
</body>
</html>
Explicación:
4. Se u�liza forEach para iterar sobre la colección y cambiar el es�lo de cada párrafo.
Dado que con querySelector() se puede acceder a los elementos por su id (selector #) y con
querySelectorAll() a todos los elementos con la misma e�queta, getElementById y
50
Manual Básico de JavaScript Juan Pueyo
4.4.4. EJERCICIO
Crea una página HTML donde se seleccionen varios elementos usando getElementById y
querySelector. Al cargar la página, el JavaScript debe modificar el contenido y los es�los de estos
elementos:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Ejercicio con getElementById y querySelector</title>
<style>
.highlight {
color: blue;
font-weight: bold;
}
.container {
background-color: #f0f0f0;
padding: 20px;
margin: 20px;
}
</style>
</head>
<body>
<h1 id="main-title">Título principal</h1>
<p class="intro">Este es el párrafo de introducción.</p>
<div id="content" class="container">
<p id="paragraph-1">Primer párrafo en el contenedor.</p>
<p id="paragraph-2">Segundo párrafo en el contenedor.</p>
</div>
<footer>
<p class="footer-text">Texto de pie de página</p>
</footer>
<script src="[Link]"></script>
</body>
</html>
51
Manual Básico de JavaScript Juan Pueyo
Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Crear y Eliminar Nodos</title>
</head>
<body>
<div id="contenedor">
<!-- Aquí se agregarán nuevos elementos -->
</div>
<script>
// Crear nodo de tipo Element
let parrafo = [Link]("p");
// Crear nodo de tipo Text
let contenido = [Link]("Hola Mundo!");
// Añadir el nodo Text como hijo del nodo Element
[Link](contenido);
// Añadir el nodo Element como hijo de la pagina
[Link](parrafo);
</script>
</body>
</html>
52
Manual Básico de JavaScript Juan Pueyo
Otra forma de hacer lo mismo, pero en este caso añadiendo el nuevo elemento al elemento
<div>:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Crear y Eliminar Nodos</title>
</head>
<body>
<div id="contenedor">
<!-- Aquí se agregarán nuevos elementos -->
</div>
<script>
// Crear un nuevo elemento <p>
let nuevoParrafo = [Link]("p");
[Link] = "Este es un nuevo párrafo.";
</body>
</html>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Crear y Eliminar Nodos</title>
</head>
<body>
<div id="contenedor">
<p id="parrafoAEliminar">Este párrafo será eliminado.</p>
</div>
<script>
// Obtener el elemento a eliminar
let parrafoAEliminar =
[Link]("#parrafoAEliminar");
</body>
</html>
53
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Crear y Eliminar Nodos</title>
</head>
<body>
<ul id="miLista">
<li>Elemento 1</li>
<li>Elemento 2</li>
<li>Elemento 3</li>
</ul>
<script>
// Función para eliminar el último elemento de la lista
function eliminarUltimoElemento() {
let miLista = [Link]("miLista");
let ultimoElemento = [Link];
if (ultimoElemento) {
[Link](ultimoElemento);
}
}
</body>
</html>
54
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Crear Nodo de Atributo (Class)</title>
</head>
<body>
</div>
<script>
// Acceso al elemento div
let miDiv = [Link]("#miDiv");
55
Manual Básico de JavaScript Juan Pueyo
<script>
// Acceder al atributo 'href' del enlace
let enlace = [Link]("miEnlace");
let hrefValor = [Link];
</body>
</html>
En este ejemplo, [Link] accede al valor del atributo href del elemento <a> y lo almacena en
la variable hrefValor.
<script>
// Modificar el atributo 'src' de la imagen
let imagen = [Link]("#miImagen");
[Link] = "nueva_foto.webp";
</script>
</body>
</html>
En este ejemplo, [Link] se u�liza para modificar el valor del atributo src de la imagen,
cambiándolo a "nueva_foto.webp".
56
Manual Básico de JavaScript Juan Pueyo
<script>
// Acceder a todos los atributos del div
let div = [Link]("#miDiv");
let todosAtributos = [Link];
</body>
</html>
En este ejemplo, [Link] devuelve una colección de todos los atributos del <div>, y luego
se itera sobre la colección para mostrar cada atributo y su valor en la consola.
57
Manual Básico de JavaScript Juan Pueyo
4.7.1 Ejemplo
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.azul {background-color: blue;}
.rojo {background-color: red;}
</style>
</head>
<body>
<div class="container text-center">
<div class="row align-items-start">
<div class="col azul">
<p class="parrafo">Texto primera columna</p>
</div>
<div class="col rojo">
<p class="parrafo">Texto segunda columna</p>
</div>
<div class="col verde" style="background-color: green;">
<p class="parrafo">Texto tercera columna</p>
</div>
</div>
</div>
<script>
let columna1 = [Link](".azul");
let columna2 = [Link](".rojo");
let columna3 = [Link](".verde");
let parrafo = [Link](".parrafo");
// Muestra "black"
[Link] = "black";
[Link]([Link]);
// Muestra rgb(255, 0, 0)
[Link](getComputedStyle(columna2).backgroundColor);
// Muestra 16px
[Link](getComputedStyle(parrafo).fontSize);
58
Manual Básico de JavaScript Juan Pueyo
<script>
let miDiv = [Link]("#miDiv");
// Leer clases
let clases = [Link];
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Eliminar Clases de un Elemento</title>
</head>
<body>
<script>
let miDiv = [Link]("miDiv");
</body>
</html>
59
Manual Básico de JavaScript Juan Pueyo
<script>
let miDiv = [Link]("miDiv");
</script>
<script>
let miDiv = [Link]("miDiv");
</body>
</html>
4.7.5. Contains
Con el método contains() se puede saber si un elemento ya �ene asignada o no una clase.
Ejemplo:
60
Manual Básico de JavaScript Juan Pueyo
<script>
let miDiv = [Link]("miDiv");
</script>
4.8. Ejercicio.
61
Manual Básico de JavaScript Juan Pueyo
5. Eventos.
La función puede tener nombre y escribirse en otro lugar o puede ser anónima.
62
Manual Básico de JavaScript Juan Pueyo
1. addEventListener() permite separar el código HTML del de JavaScript de una manera más
clara. La lógica de control de eventos se realiza exclusivamente en el código JavaScript, lo
que facilita la lectura y el mantenimiento del código.
[Link]("dblclick", function() {
// Lógica del segundo controlador
});
function controlDinamico() {
// Lógica dinámica
}
[Link]("click", controlDinamico);
[Link]("click", function() {
// 'this' se refiere a 'miElemento'
[Link]("resaltado");
});
63
Manual Básico de JavaScript Juan Pueyo
if (desplazamiento > 0) {
[Link]("Scroll hacia abajo");
} else {
[Link]("Scroll hacia arriba");
}
});
64
Manual Básico de JavaScript Juan Pueyo
65
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Control del objeto</title>
</head>
<body>
<script>
function mostrarMensaje(event) {
miH3 = [Link]("mensaje");
if ([Link] == "primerH1") {
[Link] = "Estoy en el primero"
}
else {
[Link] = "Estoy en el segundo"
}
}
function colorAleatorio() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[[Link]([Link]() * 16)];
}
return color;
}
function cambiarColor(event) {
[Link] = colorAleatorio();
}
66
Manual Básico de JavaScript Juan Pueyo
5.6. DOMContentLoaded
Algo muy importante en JavaScript es garan�zar que la captura de los objetos se realiza después
de haber sido cargados en la página, ya que sino, JavaScript no lo reconocerá y no se podrá
manipular. Para hacer esto, no es mala costumbre enlazar nuestro archivo JavaScript al final del
<body>, aunque hay otra alterna�va más moderna que es crear una función de captura de
objetos a la cual no se la llamará hasta que se haya cargado la página por completo, y eso se
puede realizar mediante el evento DOMContentLoaded. En el siguiente ejemplo la instrucción
para capturar la caja de texto y cambiar su valor no se ejecuta hasta que la página se haya cargado
por complejo, de ahí que, aunque su código JavaScript se encuentre antes que el formulario en
el documento HTML, no genera error.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Prevenir Envíos Duplicados con addEventListener</title>
</head>
<body>
<script>
function inicio() {
let nombre = [Link]("nombre");
<form id="miFormulario">
<input type="text" id="nombre" name="nombre"></input>
<button type="submit" id="botonEnvio">Enviar</button>
</form>
</body>
</html>
5.7. Ejercicio 1.
Escribe un script que muestre por pantalla la posición del puntero del ratón según se mueve y la
úl�ma tecla que ha pulsado el usuario.
5.8. Ejercicio 2.
Escribe un script para realizar un juego de adivinanza de números entre el 0 y 9. Para ello el
usuario pulsará una tecla y en la página le aparecerán los siguientes mensajes en función de lo
que haya pulsado:
67
Manual Básico de JavaScript Juan Pueyo
6. Formularios
<form name="miFormulario">
<label for="nombre">Nombre:</label>
<input type="text" name="nombre" id="nombre>
68
Manual Básico de JavaScript Juan Pueyo
<script>
function obtenerValores() {
// Acceder a elementos por Nombre
let nombre = [Link]["miFormulario"]["nombre"].value;
let email = [Link]["miFormulario"]["email"].value;
[Link]("button").addEventListener("click",
obtenerValores);
</script>
</body>
</html>
Acceso por posición: el objeto forms devuelve todos los formularios de la página web por lo que
si solo hay uno, ese será forms[0] y forms[0][0] será el primer elemento del primer formulario.
<form name="miFormulario">
<label for="nombre">Nombre:</label>
<input type="text" name="nombre" id="nombre>
<script>
function obtenerValores() {
// Acceder a elementos por Índice
let nombre = [Link][0][0].value; // Primer elemento
let email = [Link][0][1].value; // Segundo elemento
[Link]("button").addEventListener("click",
obtenerValores);
</script>
69
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Acceder a Elementos de un Formulario por Nombre</title>
</head>
<body>
<form name="miFormulario">
<label for="nombre">Nombre:</label>
<input type="text" name="nombre" id="nombre>
<script>
function obtenerValores() {
// Acceder a elementos por Nombre
let nombre = [Link];
let email = [Link];
[Link]("button").addEventListener("click",
obtenerValores);
</script>
</body>
</html>
</script>
70
Manual Básico de JavaScript Juan Pueyo
6.2.2. Radiobuton.
Para saber si un radiobuton está marcado se u�liza el atributo checked. Para recorrer todos los
radiobuton se pueden almacenar en un array y recorrerlos. Ejemplo:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Determinar Radio Button Marcado</title>
</head>
<body>
<form>
<label>
<input type="radio" name="grupo" value="opcion1"> Opción 1
</label>
<br>
<label>
<input type="radio" name="grupo" value="opcion2"> Opción 2
</label>
<br>
<label>
<input type="radio" name="grupo" value="opcion3"> Opción 3
</label>
<br>
<button type="button">Obtener Radio Button Marcado</button>
</form>
<script>
function obtenerRadioButtonMarcado() {
// Obtener todos los radio buttons con el nombre 'grupo'
let radioButtons = [Link]("grupo");
[Link]("button").addEventListener("click",
obtenerRadioButtonMarcado);
</script>
</body>
</html>
71
Manual Básico de JavaScript Juan Pueyo
6.2.3. Checkbox.
El acceso a los checkbox también se realiza comprobando el atributo checked, sin embargo, en
este caso hay que comprobar uno por uno, ya que son independientes entre sí. En el siguiente
ejemplo se muestra cómo acceder a todos los checkbox u�lizando un selector CSS condicional.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Determinar Checkbox Marcado sin addEventListener</title>
</head>
<body>
<form>
<label>
<input type="checkbox" name="opcion1" value="opcion1"> Opción 1
</label>
<label>
<input type="checkbox" name="opcion2" value="opcion2"> Opción 2
</label>
<label>
<input type="checkbox" name="opcion3" value="opcion3"> Opción 3
</label>
<button type="button">Obtener Checkbox Marcado</button>
</form>
<script>
function obtenerCheckboxMarcado() {
// Obtener todos los checkboxes con el nombre 'opciones'
let checkboxes =
[Link]('input[type="checkbox"]:checked');
if ([Link] > 0) {
// Si al menos un checkbox está marcado
let marcados = []
for (let i = 0; i < [Link]; i++){
[Link](checkboxes[i].value);
}
[Link]("Checkboxes marcados: " + [Link](', '));
return marcados;
} else {
// Si ningún checkbox está marcado
[Link]("Ningún checkbox está marcado");
}
}
[Link]("button").addEventListener("click",
obtenerCheckboxMarcado);
</script>
</body>
</html>
72
Manual Básico de JavaScript Juan Pueyo
6.2.4. Select.
Para saber qué elemento ha seleccionado un usuario en un Select, se u�liza el atributo
selectedIndex, el cual devuelve el índice de la lista. Si no hay seleccionado nada devuelve -1.
Ejemplo de cómo acceder a la información del elemento elegido por el usuario:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Acceder a Elementos de un Select</title>
</head>
<body>
<form>
<label for="seleccion">Selecciona una opción:</label>
<select id="seleccion" name="seleccion">
<option value="opcion1">Opción 1</option>
<option value="opcion2">Opción 2</option>
<option value="opcion3">Opción 3</option>
</select>
<br>
<button type="button" id="boton">Obtener Opción
Seleccionada</button>
</form>
<script>
function obtenerSeleccion() {
// Obtener el elemento select por ID
let selectElement = [Link]("seleccion");
</body>
</html>
73
Manual Básico de JavaScript Juan Pueyo
[Link]("miFormulario").addEventListener("submit",
validacion);
</script>
A con�nuación, se muestra un ejemplo en el que se valida por JavaScript si los dos campos están
rellenos. Hoy en día no haría falta hacerlo por JavaScript salvo que se requiera personalizar las
acciones cuando el formulario falla, ya que con el atributo required de HTML también se puede
controlar.
<button type="submit">Enviar</button>
</form>
74
Manual Básico de JavaScript Juan Pueyo
<script>
function validacion(event) {
// Validar los campos
let nombre = [Link]("nombre").value;
let email = [Link]("email").value;
[Link]("miFormulario").addEventListener("submit",
validacion);
</script>
<script>
function validacion(event) {
// Obtener el valor del campo de correo electrónico
let email = [Link]("email").value;
[Link]("miFormulario").addEventListener("submit",
validacion);
</script>
75
Manual Básico de JavaScript Juan Pueyo
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Prevenir Envíos Duplicados con addEventListener</title>
</head>
<body>
<form id="miFormulario">
<input type="text" id="nombre" name="nombre"></input>
<p id="error" style="visibility:hidden;">Rellene el nombre</p>
<button type="submit" id="botonEnvio">Enviar</button>
</form>
<script>
function validacion(event) {
let nombre = [Link]("nombre");
// Mostrar mensaje
let error = [Link]("error");
[Link] = "visible";
</body>
</html>
76
Manual Básico de JavaScript Juan Pueyo
7. Otras u�lidades.
En JavaScript, sin contar lo que aportan algunas librerías, existen mul�tud de funciones que
ayudan o posibilitan la realización de mul�tud de tareas.
7.1.1. setTimeout()
setTimeout() se u�liza para ejecutar una función después de un �empo específico (en
milisegundos). La sintaxis es la siguiente:
setTimeout(funcion, tiempo);
Ejemplo:
function escribir() {
[Link]("¡Hola!");
}
77
Manual Básico de JavaScript Juan Pueyo
Ejemplo de un reloj que se actualiza cada segundo y se para cuando se pulsa un botón. La función
de parada se ha realizado como función anónima.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Reloj con setInterval y Botón para Detener</title>
</head>
<body>
<script>
function mostrarHora() {
var fecha = new Date();
var horas = [Link]();
var minutos = [Link]();
var segundos = [Link]();
</body>
</html>
78