Módulo III - Programación en JavaScript para Aplicaciones Web
Módulo III - Programación en JavaScript para Aplicaciones Web
Aplicaciones Web
JSON (JavaScript Object Notation) como formato común de intercambio de datos, reemplazando a XML por su
simplicidad y eficiencia.
AJAX permite actualizar partes específicas de una página web sin necesidad de recargarla completamente, lo que
da lugar a experiencias de usuario más fluidas y modernas.
undefined: indica que una variable ha sido declarada pero aún no se le ha asignado un valor.
Estos tipos no poseen métodos ni propiedades por sí mismos. Por ejemplo, un número como 42 no puede "invocar"
métodos directamente.
Octal (base 8): 020 (aunque el soporte moderno es limitado y requiere un prefijo especial).
Internamente, todos los números en JavaScript se representan como números de doble precisión en punto flotante
de 64 bits (no de 16 bits como se menciona incorrectamente), siguiendo el estándar IEEE 754.
El tipo String
Las cadenas de texto o strings están delimitadas por comillas simples ' o dobles " . Ambas son válidas y su elección
depende del estilo del programador o de la necesidad de anidar comillas en el contenido.
Dado que los primitivos no tienen métodos, uno podría pensar que no es posible manipular cadenas. Sin embargo,
JavaScript envuelve automáticamente los valores primitivos en objetos temporales (llamados objetos envolventes)
cuando se intenta acceder a métodos o propiedades.
string String
boolean Boolean
Ejemplo:
La palabra clave new se utiliza para crear el objeto envolvente de cadena y usando la función .valueOf() se puede
convertir a un tipo de cadena primitivo
El operador typeof
El operador typeof permite averiguar el tipo de dato de un valor. Este operador devuelve una cadena indicando si el
valor es un número, una cadena, un objeto, etc.
Ejemplo:
Cabe destacar que al usar new String("Hola") , el tipo resultante será "object" debido a que se ha creado una instancia del
objeto String . En cambio, si se usa simplemente "Hola" , el tipo será "string" .
1. Constructor Array:
El objeto Date
JavaScript ofrece el objeto Date para trabajar con fechas y horas. Se puede instanciar de diferentes maneras:
Sin parámetros:
Con parámetros:
Este enfoque es útil para generar mensajes de error significativos en aplicaciones grandes.
En JavaScript, la forma tradicional de declarar una variable es utilizando la palabra clave var . Por ejemplo:
var age;
En este ejemplo, se ha creado una variable llamada age , pero todavía no tiene un valor asignado.
También es posible declarar e inicializar la variable en el mismo paso, lo que significa asignarle un valor de
inmediato:
Es importante entender que una variable puede ser inicializada más adelante, es decir, no es obligatorio darle un
valor en el momento de declararla. Además, una variable puede ser redefinida (o reasignada) con un nuevo valor a lo
largo del programa.
Esto permite gran flexibilidad, pero también puede generar errores difíciles de detectar si no se maneja con cuidado.
Variables no inicializadas
Cuando una variable se declara pero no se le asigna un valor, no tiene un valor predeterminado como cero ( 0 ), una
cadena vacía ( "" ) o null . En lugar de eso, su valor será undefined .
Ejemplo:
var edad;
[Link](edad); // imprime "undefined"
Este comportamiento se debe a que, dado que no se especifica el tipo de dato, JavaScript no tiene forma de deducir
qué valor debería tener por defecto.
Estos identificadores permiten que el código sea claro y comprensible, y al mismo tiempo, que siga normas del
lenguaje para ser interpretado correctamente.
Ámbito local: Las variables declaradas dentro de una función solo existen dentro de esa función. Fuera de ella
no pueden ser accedidas.
function saludar() {
var mensaje = "Hola";
}
Ámbito global: Las variables declaradas fuera de cualquier función existen en todo el programa y pueden ser
accedidas desde cualquier parte del código.
function mostrarSaludo() {
[Link](saludo); // Puede acceder a la variable global
}
También es importante destacar que si se declara una variable sin utilizar var , automáticamente se convierte en una
variable global, lo cual puede ser riesgoso y no es una buena práctica.
La estructura if comienza con la palabra clave if , seguida de una condición entre paréntesis.
Si la condición se evalúa como verdadera, se ejecuta el bloque de código dentro de las llaves {} .
Si la condición es falsa, el control pasa al bloque else (si existe), que también debe ir entre llaves.
Aunque JavaScript no exige sangrías o tabulaciones, utilizarlas ayuda significativamente a mejorar la legibilidad del
código. De hecho, los editores modernos de texto suelen aplicar sangría automática para facilitar esta tarea.
ser accedida fuera de ese bloque, lo cual puede llevar a errores si no se controla cuidadosamente.
if (true) {
var mensaje = "Hola mundo";
}
Sentencia switch
La sentencia switch es una forma alternativa de tomar decisiones, especialmente útil cuando hay múltiples posibles
valores a comparar.
switch (color) {
case "rojo":
[Link]("Es rojo");
break;
case "azul":
[Link]("Es azul");
break;
default:
[Link]("Color no reconocido");
}
El valor que se va a evaluar se coloca entre paréntesis después de la palabra clave switch .
Luego, se escriben los diferentes case , cada uno con un valor esperado (puede ser un número o una cadena).
Si la expresión evaluada coincide con una etiqueta case , se ejecutan las instrucciones correspondientes.
Bucle for
El bucle for se utiliza para repetir un bloque de código un número determinado de veces. Su estructura contiene tres
partes clave:
El bucle continuará ejecutándose mientras la condición sea verdadera. Cuando sea falsa, se interrumpe.
Bucle while
El bucle while ejecuta un bloque de código mientras una condición sea verdadera:
var i = 0;
while (i < 5) {
[Link](i);
i++;
}
Es fundamental asegurarse de que la condición eventualmente se vuelva falsa, de lo contrario se creará un bucle
infinito.
Tipado dinámico Las variables no requieren tipo; toman el tipo del valor asignado var x = 10; x = "texto";
undefined Valor por defecto de una variable no inicializada var nombre; [Link](nombre); // undefined
Alcance local Variable declarada dentro de una función function f() { var x = 5; }
Alcance global Variable fuera de una función o sin usar var var y = 10; o z = 15;
switch / case Alternativa a múltiples if / else if switch (color) { case "rojo": ... }
Bucle for Repite un bloque un número definido de veces for (var i = 0; i < 10; i++) { ... }
Bucle while Repite mientras la condición sea verdadera while (x < 5) { ... }
Este conjunto de herramientas —declaración de variables y estructuras de control— constituye la base lógica sobre
la cual se construyen todos los programas en JavaScript. Comprender su funcionamiento, sus reglas y su
comportamiento permite crear scripts más robustos, claros y predecibles.
Paréntesis que pueden incluir parámetros opcionales, que son variables que reciben valores cuando se llama a la
función.
Un bloque de código encerrado entre llaves {} que contiene la lógica que debe ejecutarse.
Una sentencia return opcional, que permite devolver un valor al lugar desde donde se llamó a la función
Este comportamiento dinámico es posible gracias al sistema de tipos dinámicos de JavaScript. Por ejemplo, al llamar
add("Nat", "Ram") , el resultado sería "NatRam" , mientras que add(5, 7) retornaría 12 .
Este tipo de flexibilidad permite que una misma función maneje múltiples tipos de entrada sin necesidad de
sobrecargas explícitas, como ocurre en otros lenguajes más estrictos.
function add(a, b) {
return a + b;
}
Este fragmento de código genera un nuevo objeto c , con las propiedades make , model y year .
automóvil:
[Link] = function() {
return [Link] + " " + [Link] + " " + [Link];
};
Los métodos definidos dentro del constructor se crean nuevamente para cada objeto
Todos los objetos creados con la palabra clave new heredan propiedades y métodos definidos en el prototipo
correspondiente. Esta es una de las bases del modelo de herencia en JavaScript.
Permiten añadir nuevas propiedades o métodos sin modificar directamente los objetos ya creados.
[Link] = function() {
return [Link] + " " + [Link] + " " + [Link];
De este modo, todos los objetos creados con new Car(...) tienen acceso al método getName , incluso si fueron creados
antes de definir el prototipo.
Esta capacidad de herencia dinámica permite que cualquier cambio al prototipo se refleje automáticamente en todas
las instancias existentes del objeto.
[Link] = "unknown";
Esto agregará la propiedad color a todos los objetos tipo Car , aunque no se haya especificado al momento de su
creación. Las instancias existentes accederán automáticamente a esa propiedad.
Esta flexibilidad permite extender los objetos sin modificar directamente su definición original.
Inicializar valores.
Encapsular variables.
(function() {
// código encapsulado aquí
})();
Dentro de una función autoejecutable, las variables y funciones declaradas no están disponibles fuera de ella, lo que
proporciona un ámbito privado que protege del acceso externo y posibles conflictos con otras partes del script.
Declarar y manipular elementos del DOM sin dejar variables expuestas globalmente.
Su capacidad para ejecutar automáticamente el código contenido y su aislamiento del resto del script hacen de ellas
una herramienta habitual en la programación moderna con JavaScript.
API de JavaScript
Las API (Interfaces de Programación de Aplicaciones) permiten a los desarrolladores interactuar con los distintos
elementos del navegador y del documento HTML. En el contexto de JavaScript, las API del DOM (Document Object
[Link](id) : Devuelve una única referencia al nodo que tenga un atributo id coincidente. Esta función
es ideal cuando se sabe que solo existe un elemento con ese identificador único en el documento.
[Link](tagName) : Devuelve una colección (NodeList) de todos los elementos del documento que
coincidan con el nombre de etiqueta especificado. Por ejemplo, [Link]("p") devuelve una lista
de todos los elementos <p> del documento.
Estos métodos son esenciales para acceder de forma directa a los elementos y realizar operaciones como lectura,
escritura o actualización de contenido.
var imgSet =
[Link]("img");
var output = "";
for (var i = 0; i < [Link]; i++) {
output += "<p>Source for image ";
output += i;
output += ": ";
output += imgSet[i].src;
output += "</p>";
}
[Link](output);
Posteriormente, es posible iterar sobre este conjunto de nodos y manipularlos según sea necesario. Por ejemplo, se
pueden concatenar los resultados en un flujo de salida HTML dinámico, accediendo a atributos como src , que define
la ubicación de la imagen fuente. Para agregar contenido al documento se utiliza [Link]() .
Un ejemplo clásico consiste en crear un nuevo párrafo ( <p> ) con el texto "Hola mundo":
<head>
<script>
function addPara() {
var newPara = [Link]("p");
Este fragmento crea el elemento y lo inserta al final del nodo <body> del documento.
Modificar innerHTML reemplaza por completo los elementos hijos actuales, ya que el navegador analiza la nueva
cadena y genera el nuevo contenido del DOM basado en ella.
Ejemplo:
[Link] = "valor";
Por ejemplo:
Este cambio tiene prioridad sobre cualquier regla definida en hojas de estilo externas, ya que se aplica directamente
en el elemento.
[Link]("atributo", "valor");
[Link]("atributo");
características : cadena con pares clave=valor separados por comas, que definen propiedades como tamaño y
posición.
reemplazar : booleano opcional que determina si la nueva página reemplaza a la actual en el historial.
[Link]
[Link](mensaje)
Imprime una cadena en la consola del navegador como método de depuración. Es menos intrusivo que alert() .
[Link](x, y)
<script>
onload = (function () {
addPara();
})();
function addPara() {
var newPara = [Link]("p");
[Link] = "Hello world!";
[Link](newPara);
}
</script>
[Link](id)
[Link](tagName)
[Link](tag)
[Link]
Aunque se han cubierto varias funciones y métodos fundamentales, esta no es una lista exhaustiva. Existen muchas
otras funciones relacionadas con la manipulación del DOM, y con herramientas avanzadas como CTI, DES y UO, que
complementan las capacidades básicas del lenguaje para crear aplicaciones web ricas e interactivas.
💡 Imagina que estás sentado en un restaurante y has seleccionado tu pedido. El menú describe una lista de
platos, y las comidas correspondientes se preparan en la cocina. Tu camarero es el enlace entre tú y la
cocina, quien comunica tu pedido a la cocina y te regresa la comida. Esta comunicación es similar a cómo
funcionan las APIs. Una API es análoga a un camarero, ya que comunica una solicitud de un dispositivo a
otro, y devuelve la respuesta al primer dispositivo.
El menú en el ejemplo es la documentación de la API. En un restaurante, si pides un plato que no existe en el menú, el
camarero te informará que es una elección inválida y no podrá entregarte el plato. De manera similar, cada API tiene
documentación que describe las solicitudes que puedes hacer y el tipo de respuesta que deberías esperar recibir. Si
intentas hacer una solicitud inválida, te encontrarás con un error.
Las APIs de JavaScript son Interfaces de Programación de Aplicaciones que utilizan scripting en JavaScript para
acceder y modificar contenido de manera dinámica.
Arquitectura REST
La mayoría de las APIs de JavaScript siguen el estilo arquitectónico de Transferencia de Estado Representacional
(REST). Estas se conocen como APIs RESTful y siguen el paradigma CRUD. CRUD significa Crear, Leer, Actualizar y
Eliminar, y modela las cuatro funcionalidades básicas necesarias al comunicarse entre servicios y con una base de
datos. En un entorno REST, estas operaciones CRUD a menudo se aliasan de la siguiente manera:
Crear → POST
Leer → GET
Actualizar → PUT
Eliminar → DELETE
Como ejemplo, imagina una API que se comunica con un servicio bancario para procesar pagos en línea. Es posible
utilizar las cuatro operaciones CRUD para esta API. A continuación se proporciona un ejemplo de cada una.
En la solicitud PUT, puedes actualizar la información de un cliente específico. Esto sobrescribirá los datos actuales
con nuevos datos. Similar a la solicitud GET, puedes especificar un cliente específico usando el id. Puedes
proporcionar nuevos datos para ser actualizados de diferentes maneras que son específicas de la API. Algunas APIs
permiten incluir un “cuerpo” en el que puedes especificar un conjunto de datos que se enviarán con la solicitud. Por
ejemplo, puedes adjuntar el siguiente cuerpo a la solicitud PUT para actualizar el nombre y apellido de un cliente:
{
"first_name": "Thomas",
"last_name": "Watson"
}
En la solicitud DELETE dada en el ejemplo, puedes eliminar a un cliente por completo proporcionando nuevamente el
id.
La API del DOM se cubre con más detalle en los videos, y no se revisará aquí.
XMLHttpRequest
Una API de JavaScript popular es XMLHttpRequest (XHR), que te permite recuperar datos sin refrescar toda la
página. Esto es importante cuando quieres actualizar solo una parte de una página sin interrumpir lo que un usuario
está haciendo actualmente en la página.
APIs Avanzadas
Hay APIs de JavaScript más avanzadas disponibles, cada una con un uso y especificaciones diferentes. Muchas de
estas APIs se pueden encontrar en el sitio web oficial de Mozilla Developer o puedes buscar en internet la API
requerida.
Se carga el documento,
Se activa un enlace,
Este enfoque permite modificar y ampliar documentos HTML de formas interactivas, mejorando significativamente la
experiencia del usuario.
Importante: Aunque JavaScript es el lenguaje de scripting más utilizado en el lado del cliente, otros lenguajes
también pueden ser utilizados en ciertos contextos. Sin embargo, JavaScript es el estándar universalmente
soportado por todos los navegadores modernos.
Validación de formularios: para verificar que los datos introducidos por el usuario sean correctos antes de
enviarlos al servidor.
Procesamiento de entrada en tiempo real: como por ejemplo, mostrar sugerencias mientras el usuario escribe.
Reacción a eventos del usuario: como hacer clic, mover el cursor o enfocar un campo.
Generación de contenido dinámico: como la creación o modificación de elementos HTML mientras se visualiza la
página.
Estas acciones se pueden ejecutar justo después de que el documento HTML se haya cargado por completo, o
cuando se dispare un evento específico.
o <body> del HTML. Es ideal para scripts cortos, específicos de una sola página.
<!DOCTYPE html>
<html>
<head>
<script>
function saludar() {
alert("¡Bienvenido a la página!");
}
</script>
</head>
<body onload="saludar()">
</body>
</html>
<html>
<head>
<script src="[Link]"></script>
</head>
<body>
</body>
</html>
// [Link]
function saludar() {
alert("¡Bienvenido!");
}
Esta técnica mejora la organización del código, facilita la reutilización y permite una carga más eficiente del contenido
mediante el almacenamiento en caché del navegador.
<noscript>
<p>Para disfrutar de todas las funciones de esta página, habilite JavaScript en su navegador.</p>
</noscript>
<script>
function mostrarMensaje() {
alert("¡Botón presionado!");
Eventos adicionales
Además de los más comunes como onclick y onload , existen otros eventos que pueden ser aprovechados para mejorar
la interacción:
Estos eventos son claves para la implementación de interfaces de usuario dinámicas y reactivas.
Objetivos
Después de completar este laboratorio, podrás:
9. Ejercicio Práctico: Agregar interactividad con JavaScript al Laboratorio Práctico: Conversión de Unidades utilizando Elementos
Comencemos creando un formulario simple diseñado para aceptar el nombre y la dirección de correo electrónico del
usuario. El formulario tendrá un botón de Enviar y un botón de Restablecer.
Copia y pega el siguiente código en tu archivo para crear el formulario inicial sin validación:
<!DOCTYPE html>
<html>
<head>
<title>Contact Details</title>
</head>
<body>
<h2>Enter your contact details:</h2> <br>
<form id="form1">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<br><br>
<label for="email">Email Address:</label>
<input type="text" id="email" name="email">
<br><br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
Cuando hayas pegado el código, guarda tu archivo. Para ver cómo se mostrará tu página HTML, puedes usar la
extensión Live Server integrada siguiendo las instrucciones a continuación.
3. Esto debería mostrar una notificación mencionando que el servidor ha comenzado en el puerto 5500.
4. Haz clic en el botón Skills Network a la izquierda, se abrirá el “Skills Network Toolbox”. Luego haz clic en Other y
después en Launch Application. Desde allí, ingresa el número de puerto como 5500 y lanza.
Reemplaza la sección <head> de tu archivo con el siguiente código. Esto le indica al navegador que el código que
estamos a punto de poner dentro de la etiqueta <script> debe ejecutarse como JavaScript.
<head>
<script type="application/javascript">
</script>
<title>Contact Details</title>
</head>
function functon_name()
{
// code goes here
}
Vamos a añadir una función vacía que se llame checkdata . Usaremos esto para validar los datos en el formulario.
Reemplaza las etiquetas <script> en tu archivo con el siguiente código:
function functon_name()
{
// code goes here
}
Vamos a añadir una función vacía que se llame checkdata . Usaremos esto para validar los datos en el formulario.
Reemplaza las etiquetas <script> en tu archivo con el siguiente código:
<script type="application/javascript">
function checkdata()
{
}
</script>
[Link]("name");
Las siguientes líneas de código te permiten acceder a los elementos de entrada name y email del formulario. Ten en
cuenta que los id de ambos elementos ya han sido especificados en el código HTML. Almacenaremos las referencias
a los elementos en dos variables de JavaScript llamadas username y emailid .
Para verificar si este valor está en blanco, podemos usar la siguiente declaración:
[Link] == ""
Para realizar esta acción, usamos una declaración condicional de JavaScript llamada declaración if . La declaración
condicional if nos permite especificar un bloque de código que se ejecutará si una condición es verdadera.
La sintaxis de la declaración es la siguiente:
if(condition){
//block of code to be executed, if the condition is true.
}
Vamos a comprobar si el valor de username está vacío utilizando una declaración if . Copia este código y pégalo al final
de tu función checkdata() :
if([Link]==""){
return false;
}
Si el valor está en blanco, la declaración return false; devuelve un valor booleano false de la función checkdata() que
añadimos en el paso 3.
Comprobaremos todos los elementos de entrada del formulario de esta manera para determinar si están vacíos.
La declaración [Link]() se utiliza para devolver el enfoque de entrada al elemento donde encontramos un
problema, en este caso, username.
Reemplaza la condición actual en tu función con este nuevo código. A continuación, intenta agregar la misma lógica
condicional, pero para el elemento email_address .
A continuación, indicaremos que ninguno de los elementos está en blanco devolviendo true . Por lo tanto,
necesitamos agregar una declaración return true al final de la función.
Es una buena práctica incluir comentarios en tu código. Los comentarios te ayudarán a ti y a otros programadores a
depurar fácilmente cualquier error que podamos encontrar al ejecutar el código. En JavasScript, agregamos
comentarios de una sola línea utilizando dos barras diagonales: //
Nuestra función final checkdata() con los comentarios añadidos se ve así:
function checkdata(){
//Create references to the input elements we wish to validate
var username = [Link]("name");
var email_address = [Link]("email");
Esta función ahora debería funcionar como se esperaba y ya está lista para ser llamada, por lo que podemos usarla
donde la necesitemos.
A continuación se muestra el código completo junto con el formulario HTML y la función de validación en JavaScript.
Copia y pega el código en tu archivo y verifícalo para determinar si está validando correctamente:
<!DOCTYPE html>
<html>
<head>
<title>Contact Details</title>
<script type="application/javascript">
function checkdata(){
//Create references to the input elements we wish to validate
var username = [Link]("name");
var email_address = [Link]("email");
1. Haz clic en el botón de abajo para crear un nuevo archivo llamado [Link].
Open [Link] in IDE
Temp(Fahrenheit) = [Temp(Degrees)*9/5] + 32
function temperature(){
//To convert celsius to farenheit
//(CEL * 9/5) + 32
var c = [Link]("celsius").value;
var f = (c * 9/5) + 32
[Link]("fahrenheit").value = f
}
function weight(){
//To convert KGs to Pounds
// KG * 2.2
var kg = [Link]("kilo").value;
var p = kg * 2.2
[Link]("pounds").value = p
}
function distance(){
//To convert KMs to Miles
// KM * 0.62137
var km = [Link]("km").value;
var m = km * 0.62137
[Link]("miles").value = m
}
function temperature(){
//To convert celsius to farenheit
//(CEL * 9/5) + 32
var c = [Link]("celsius").value;
var f = (c * 9/5) + 32
[Link]("fahrenheit").value = f
}
function weight(){
//To convert KGs to Pounds
// KG * 2.2
var kg = [Link]("kilo").value;
var p = kg * 2.2
[Link]("pounds").value = p
}
function distance(){
//To convert KMs to Miles
// KM * 0.62137
var km = [Link]("km").value;
var m = km * 0.62137
[Link]("miles").value = m
}
1.
2.
3.
4.
5.
6.
7.
8.
9.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<head>
<title>Document</title>
<link rel="stylesheet" href="[Link]">
<script src="[Link]"></script>
</head>
Al botón con ID "temperature" en [Link] , agrégale un evento onclick para invocar el método temperature() .
<fieldset>
<legend>Temperature</legend>
<label for="celsius">Celsius</label> <br/>
<label for="fahrenheit">Fahrenheit</label>
</fieldset>
Al botón con ID "weight" en [Link] , agrégale un evento onclick para invocar el método weight() .
<fieldset>
<legend>Weight</legend>
<label for="Weight">KG</label> <br/>
Al botón con ID "distance" en [Link] , agrégale un evento onclick para invocar el método distance() .
<fieldset>
<legend>Distance</legend>
<label for="km">KM</label> <br/>
<label for="miles">Miles</label>
</fieldset>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<link rel="stylesheet" href="[Link]">
<script src="[Link]"></script>
</head>
<body>
<section id="home">
<header>
Unit Conversions
</header>
<nav>
<div class="topdiv">
<a href="#temperature"><button class="topmenu">Temperature</button></a>
<a href="#weight"><button class="topmenu">Weight</button></a>
<a href="#distance"><button class="topmenu">Distance</button></a>
</div>
</nav>
</section>
<div style="clear:both;"></div>
<div id="all-conversion-sections">
<fieldset>
<legend>Temperature</legend>
<label for="celsius">Celsius</label> <br/>
<label for="fahrenheit">Fahrenheit</label>
</fieldset>
<aside>
To convert celsuis to fahrenheit yourself, use this formula replacing the `C` with your temperatur
e in celsuis: (C × 9/5) + 32
</aside>
</article>
</div>
</section>
<div style="clear:both;"></div>
<div style="clear:both;"></div>
<label for="miles">Miles</label>
</fieldset>
<aside>
To convert kilometers to miles yourself, use this formula replacing the `km` with your distance in
kilometers: km × 0.62137
</aside>
</article>
</div>
</section>
<div style="clear:both;"></div>
</div>
<footer>Learn more about HTML and CSS as a part of IBM Fullstack Cloud Developer Certification</foo
ter>
</body>
</html>
11. Visualiza [Link] con Live Server y verifica si al hacer clic en los botones correspondientes se muestran los
valores convertidos de temperatura, peso y distancia.
Cuando una página HTML es cargada por un navegador, este interpreta el código y construye una representación
interna del documento como un árbol de nodos. Este árbol permite que los scripts, especialmente escritos en
JavaScript, puedan modificar en tiempo real cualquier aspecto de la página: añadir o eliminar elementos, cambiar
textos, estilos o responder a acciones del usuario.
El DOM es una especificación mantenida por el Consorcio World Wide Web (W3C), el cual ha definido distintos
niveles del estándar:
DOM Nivel 0: acceso básico a los elementos HTML como formularios y enlaces, sin estructura de árbol.
DOM Nivel 1: introduce una estructura jerárquica de objetos basada en nodos, lo cual permite una manipulación
más completa del documento. Este nivel es el más ampliamente soportado por los navegadores.
DOM Niveles 2, 3 y 4: agregan más funcionalidades como eventos, estilos CSS y soporte para documentos XML
más complejos.
window : el objeto global que representa la ventana del navegador. Proporciona métodos como alert() , confirm() y
prompt() para interactuar con el usuario. Estos métodos pueden escribirse con o sin el prefijo window :
history : almacena el historial de navegación de la sesión actual. Permite simular la navegación hacia adelante o
location : contiene información sobre la URL actual del documento y permite redireccionamientos mediante
[Link] .
navigator : representa información sobre el navegador del usuario. Dado que no está completamente
estandarizado, los valores que devuelve pueden variar entre navegadores.
screen : ofrece información sobre la resolución y dimensiones de la pantalla del usuario, lo cual puede ser útil para
document : permite el acceso directo a todos los elementos HTML de la página. Cada documento cargado en la
ventana genera automáticamente un objeto document .
Tipos de nodos
Existen dos tipos fundamentales de nodos:
1. Nodos de elementos: representan las etiquetas HTML, como <html> , <head> , <body> , <p> , <input> , etc.
<!DOCTYPE html>
<html>
<head>
<title>Mi página</title>
</head>
<body>
<p>Hola, mundo</p>
<input type="text" />
</body>
</html>
window
└── document
└── html
├── head
│ └── title
│ └── (nodo de texto: "Mi página")
└── body
├── p
│ └── (nodo de texto: "Hola, mundo")
└── input
Además de los elementos visibles, el DOM nivel 2 considera también los nodos de espacio en blanco, como los
saltos de línea, tabulaciones y retornos de carro. Esto significa que un salto de línea entre un párrafo y un input
también se representa como un nodo de texto vacío, el cual puede tener implicaciones en ciertas manipulaciones o
recorridos del DOM.
Representación de etiquetas Sí Sí
Este nivel de detalle del DOM Nivel 2 permite a los desarrolladores un control más preciso del documento, incluyendo
elementos invisibles como los retornos de carro o el espacio entre etiquetas.
Cada tipo de nodo está definido como una constante con nombre y está asociado a un valor entero que lo identifica:
Node Type
Integer Value Node Name Node Value Description
(Text)
Estos valores son útiles al inspeccionar documentos con herramientas como DevTools de los navegadores, donde los
nodos son clasificados por tipo para su análisis y depuración.
En el árbol DOM:
El nombre del nodo tipo elemento es igual al nombre de la etiqueta HTML (por ejemplo, div , p , h1 ).
<div id="div123">Contenido</div>
Los nodos de texto tienen como nombre #text , y su valor es la cadena de texto que contienen.
<p>Hola mundo</p>
Estos nodos de texto también incluyen saltos de línea, tabulaciones y espacios en blanco, que son importantes en
versiones más avanzadas del DOM (como DOM Nivel 2), donde se consideran parte del árbol.
Estas matrices se indexan según el orden de aparición en el documento HTML, empezando desde 0 .
Por ejemplo, si un formulario tiene un campo llamado field1 , se puede acceder de varias formas:
Nota: Solo puede haber un objeto document en una ventana. Por ello, puede omitirse
[Link], pero no document cuando se hace referencia directa a elementos.
Por ejemplo:
Y en JavaScript:
Se recomienda usar el mismo nombre para el atributo id y el atributo name cuando ambos
están presentes, para mantener consistencia y facilitar el acceso desde scripts.
Objetivos
Al final de este laboratorio, podrás:
Entender cómo usar métodos de manipulación del DOM como [Link]() , appendChild() y removeChild()
Crear una aplicación interactiva de lista de tareas donde se puedan gestionar las tareas en tiempo real
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do List</title>
<style>
/* Styles the main container of the to-do list */
.todo-container {
width: 300px;
margin: 50px auto;
padding: 20px;
border: 1px solid #ccc;
<div class="todo-container">
<h1>To-Do List</h1>
<script>
// Placeholder for functionality to be added in future exercises
</script>
>
</body>
</html>
El campo <input> con id="taskInput" permite a los usuarios ingresar nuevas tareas.
2. Estilo CSS:
La clase .todo-container se utiliza para estilizar el contenedor de la lista de tareas, centrándolo y añadiendo
relleno y bordes para un aspecto limpio.
La clase .todo-list estiliza la lista desordenada, y los elementos li reciben margen y estilo flexbox para alinear
los elementos de manera ordenada.
La sección de script contendrá la lógica para interactuar con el DOM, como agregar tareas, eliminar tareas y
editar tareas.
4. Haz clic en el botón debajo de la notificación o utiliza el Skills Network Toolbox, luego navega a Otro > Lanzar
Aplicación, ingresa el puerto 5500 y haz clic en el botón de lanzamiento resaltado en la captura de pantalla a
continuación. Esto abrirá la página web en una nueva pestaña del navegador.
Cuando el usuario escribe una tarea en el campo de entrada y hace clic en el botón Agregar Tarea, la tarea se
añadirá a la lista.
Usa [Link]('taskInput') para seleccionar el campo de entrada donde el usuario escribirá su tarea.
Usa [Link]('todoList') para seleccionar la lista desordenada ( <ul> ) donde se añadirán las nuevas
tareas.
Usa [Link]("li") para crear un nuevo elemento de lista ( <li> ) que contendrá la tarea.
Usa [Link]("span") para crear un elemento span que contendrá el texto de la tarea.
Vincula el botón Editar a un controlador de eventos estableciendo la propiedad onclick a una función (por
ejemplo, editTask(span) ).
De manera similar, vincula el botón Eliminar a un controlador de eventos (por ejemplo, removeTask(li) ).
Añade el texto de la tarea y los botones al elemento de lista ( <li> ) usando el método appendChild() .
Después de añadir la tarea a la lista, limpia el campo de entrada usando [Link] = "" .
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
Salida:
Recarga la página web para probar la funcionalidad. Si el servidor en vivo no está funcionando, inícialo y luego
lanza la aplicación.
Una vez que la página esté cargada, escribe una tarea en el campo de entrada y haz clic en Agregar Tarea. La
tarea se añadirá a la lista de tareas pendientes, apareciendo junto a los botones de Editar y Eliminar para cada
tarea.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>To-Do List</title>
<style>
/* Styles the main container of the to-do list */
.todo-container {
width: 300px;
margin: 50px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
}
<script>
// Función para agregar una tarea
function addTask() {
const input = [Link]("taskInput");
const taskText = [Link]();
//Botón Eliminar:
const removeButton = [Link]("button");
[Link] = "Delete";
[Link] = () => removeTask(li);
Cuando el usuario hace clic en el botón Editar al lado de una tarea, se le pedirá que ingrese un nuevo texto para
la tarea.
Si el usuario ingresa un nuevo texto válido para la tarea (no vacío), la tarea se actualizará dinámicamente en la
lista.
Crea una función editTask(span) donde span se refiere al elemento que contiene el texto actual de la tarea.
Esta función te permitirá pedir al usuario un nuevo texto para reemplazar la tarea actual.
Dentro de la función editTask() , utiliza el método prompt() para preguntar al usuario por un nuevo texto de tarea.
Puedes pasar la tarea actual ( [Link] ) como valor predeterminado en el aviso.
Después de que el usuario ingrese su nueva tarea, verifica si la entrada no es null y no está vacía.
Utiliza [Link]() para asegurarte de que el texto de la tarea no sea solo espacios en blanco.
4. Actualizar la tarea:
Si el usuario proporciona una entrada válida, actualiza la tarea asignando el nuevo valor a [Link] . Esto
actualizará dinámicamente la tarea en la lista.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Salida:
Recarga la página web para probar la funcionalidad. Si el servidor en vivo no está en funcionamiento, inícialo y
luego lanza la aplicación.
Una vez que la página esté cargada, hacer clic en el botón Editar para una tarea específica mostrará un aviso
para actualizar la tarea. Realiza tus ediciones y haz clic en OK para guardar los cambios.
Cuando el usuario hace clic en el botón Eliminar junto a una tarea, la tarea se eliminará de la lista.
Usa [Link]('todoList') para seleccionar la lista desordenada ( <ul> ) que contiene las tareas.
2. Eliminar la tarea:
Cuando el usuario haga clic en el botón Eliminar, usa el método removeChild() para eliminar la tarea específica
(representada como un elemento <li> ) de la lista.
Pasa la tarea (el elemento <li> ) al método removeChild() para eliminarlo del DOM.
Salida:
Recarga la página web para probar la funcionalidad. Si el servidor en vivo no está funcionando, inícialo y luego
lanza la aplicación.
Una vez que la página esté cargada, hacer clic en el botón Eliminar eliminará la tarea correspondiente de la lista.
1. Abre una nueva pestaña en blanco en tu navegador. Puedes hacer esto presionando Ctrl + T (Windows)
o Command + T (Mac).
2. Haz clic derecho en cualquier parte de la nueva pestaña en blanco del navegador y
elige Inspeccionar o Inspeccionar elemento, dependiendo del navegador que estés utilizando. La imagen a
continuación es para el navegador Chrome.
3. Debería abrirse una ventana de desarrollador en tu pantalla. Ve a la pestaña Consola, como se muestra a
continuación. Verás un símbolo del sistema. Puedes ejecutar el resto de las tareas allí.
4. Si tu consola tiene algún registro impreso, límpiala ejecutando el siguiente comando. Esto no es obligatorio, pero
te ayudará a empezar de nuevo.
clear()
Para ejecutar los comandos, utilizaremos el símbolo del sistema en el control del navegador. Escribe o pega cada
comando y presiona enter para ejecutar el comando.
1. Comencemos con un código simple para imprimir ¡Hola Mundo! en la consola. Ejecuta el siguiente comando.
[Link]("Hello World!")
let num = 5
var mystr = "John"
[Link](num)
[Link](mystr)
Tanto let como var se pueden usar para crear variables. var se utiliza cuando deseas
que la variable tenga un alcance global y let se usa cuando deseas que la variable tenga
un alcance dentro del bloque donde se crea.
const se utiliza para declarar variables cuyos valores nunca pueden cambiar.
4. Vamos a crear una función que imprima cualquier valor que se le pase como entrada.
function printMyInput(user_input) {
[Link]("The parameter passed is " + user_input)
}
5. Llama a la función que creaste en el paso anterior, una vez con un número y una vez con una cadena.
printMyInput(9)
printMyInput("John")
6. Veamos otro enfoque para escribir la printMyInput función según el estándar ES6. Esta sintaxis también se
llama arrow functions y proporciona una forma abreviada de escribir funciones.
7. Llama a la función que creaste en el paso anterior una vez con un número y una vez con una cadena.
printMyInputES6(9)
printMyInputES6("John")
Dado que la función recibe un solo valor y el cuerpo de la función es una sola línea, se
pueden omitir los corchetes. El código también se puede escribir de la siguiente manera.
printMyInputES6Short(9)
printMyInputES6Short("John")
1. Los operadores aritméticos son operadores que utilizamos para realizar operaciones aritméticas.
El operador % (porcentaje) se utiliza para la operación de módulo (el residuo que queda después de la
división)
[Link]("5 + 3 = ", 5 + 3) // ➜ 5 + 3 = 8
[Link]("7 - 3 = ", 7 - 3) // ➜ 7 - 3 = 4
[Link]("8 * 2 = ", 8 * 2) // ➜ 8 * 2 = 16
[Link]("27 / 3 = ", 27 / 3) // ➜ 27 / 3 = 9
[Link]("4 to the power of 3 = ", 4 ** 3) // ➜ 4 ** 3 = 64 (4 × 4 × 4)
[Link]("19 mod 4 = ", 19 % 4) // ➜ 19 % 4 = 3 (19 dividido entre 4 da 4 con residuo 3)
con un número y una cadena, ambos se tratan como una cadena y se concatenan en lugar de sumarse.
Las expresiones se leen de izquierda a derecha, por lo que al sumar dos números y luego una cadena, se
interpretará el primer + como suma y el segundo + como concatenación.
2. Los operadores de asignación son operadores que se utilizan para asignar valores a las variables.
El operador += se utiliza para incrementar el valor almacenado en el operando de la izquierda por el valor del
operando de la derecha y almacenarlo de nuevo en el operando de la izquierda (lo mismo que escribir tmp = tmp
El operador -= se utiliza para decrementar el valor almacenado en el operando de la izquierda por el valor del
operando de la derecha y almacenarlo de nuevo en el operando de la izquierda (lo mismo que escribir tmp = tmp
El operador *= se utiliza para multiplicar el valor almacenado en el operando de la izquierda por el valor del
operando de la derecha y almacenarlo de nuevo en el operando de la izquierda (lo mismo que escribir tmp = tmp
El operador /= se utiliza para dividir el valor almacenado en el operando de la izquierda por el valor del
operando de la derecha y almacenarlo de nuevo en el operando de la izquierda (lo mismo que escribir tmp = tmp
El operador **= se utiliza para elevar el valor almacenado en el operando de la izquierda a la potencia del
valor del operando de la derecha y almacenarlo de nuevo en el operando de la izquierda (lo mismo que
escribir tmp = tmp ** val donde tmp es una variable y val es un valor arbitrario).
El operador %= se utiliza para obtener el módulo del valor almacenado en el operando de la izquierda por el
valor del operando de la derecha y almacenarlo de nuevo en el operando de la izquierda (lo mismo que
escribir tmp = tmp % val donde tmp es una variable y val es un valor arbitrario).
x=5
[Link]("Old value of x: ", x)
// ➜ Old value of x: 5
x += 3
[Link]("New value of x: ", x)
y=5
[Link]("Old value of y: ", y)
// ➜ Old value of y: 5
y -= 3
[Link]("New value of y: ", y)
// ➜ New value of y: 2
// Equivale a: y = y - 3
a=6
[Link]("Old value of a: ", a)
// ➜ Old value of a: 6
a *= 3
[Link]("New value of a: ", a)
// ➜ New value of a: 18
// Equivale a: a = a * 3
b=6
[Link]("Old value of b: ", b)
// ➜ Old value of b: 6
b /= 3
[Link]("New value of b: ", b)
// ➜ New value of b: 2
// Equivale a: b = b / 3
c=6
[Link]("Old value of c: ", c)
// ➜ Old value of c: 6
c %= 3
[Link]("New value of c: ", c)
// ➜ New value of c: 0
// Equivale a: c = c % 3 (residuo de 6 ÷ 3)
d=6
[Link]("Old value of d: ", d)
// ➜ Old value of d: 6
d **= 3
[Link]("New value of d: ", d)
// ➜ New value of d: 216
// Equivale a: d = d ** 3 (6 elevado a la 3 = 6×6×6)
3. Los operadores de comparación se utilizan para comparar valores o variables con otros valores o variables
[Link]("5 != 6 ", 5 != 6)
// ➜ true
// 5 es diferente de 6, así que devuelve true.
El operador && verifica si la condición a la izquierda y a la derecha son verdaderas. Devuelve verdadero solo
si ambas condiciones son verdaderas. De lo contrario, devuelve falso.
5. Evaluación de Cortocircuito
exp1 && exp2 no evaluará exp2 si exp1 es falso porque si incluso una expresión es falsa con un &&, la
expresión completa es falsa.
exp1 || exp2 no evaluará exp2 si exp1 es verdadero porque si incluso una expresión es verdadera con un ||, la
expresión completa es verdadera.
Esto puede ser muy útil al evaluar ciertas expresiones, y se debe aprovechar donde sea necesario.
[Link]("Hay dulce Y hay chocolate: ", chocolate && candy, " -- Solo se evalúa el dulce")
// ➜ Hay dulce Y hay chocolate: false -- Solo se evalúa el dulce
// El operador `&&` (AND) solo devuelve true si **ambos** son true.
// Como `chocolate` es true, el programa necesita verificar si `candy` también es true.
// Pero como `candy` es false, el resultado es false.
// ✨
Nota: si el primer valor hubiese sido false, **ni siquiera habría evaluado el segundo** (esto es evaluació
n de cortocircuito).
[Link]("Hay chocolate O hay dulce: ", chocolate || candy, " -- Solo se evalúa el chocolate")
// ➜ Hay chocolate O hay dulce: true -- Solo se evalúa el chocolate
// El operador `||` (OR) devuelve true si **al menos uno** es true.
// Como `chocolate` ya es true, **ni siquiera necesita mirar** si hay candy.
// ✨ Evaluación de cortocircuito: si el primero ya es true, no evalúa el segundo.
6. Las declaraciones switch-case se utilizan para reemplazar múltiples condiciones if - else if que verifican la
misma variable. Después de que se satisface una de las condiciones y se ejecuta el bloque de código, el control
debe salir explícitamente del bloque switch con break. De lo contrario, se ejecutarán todas las demás condiciones
hasta que se encuentre una declaración break o hasta que no haya más código.
switch(user_input) {
case 1:
[Link]("Sunday");
7. Los bucles se pueden utilizar cuando el mismo bloque de código necesita ejecutarse muchas veces.
Los bucles for tienen un valor inicial, una condición en base a la cual se ejecuta el bucle, y un valor incremental.
Los bucles while tienen solo una expresión: una condición en base a la cual se ejecuta un bloque de código. Este
es el mismo tipo de expresión que la segunda en un bucle for.
while(do_more) {
// Se pide al usuario que ingrese una palabra (o cualquier texto)
let user_input = prompt('Enter a word');
Colecciones
1. Un arreglo es una colección indexada. Las posiciones de índice comienzan desde 0. El elemento en la primera
posición está en el índice 0, el segundo elemento está en la posición 1, y así sucesivamente. El índice de la última
posición siempre será uno menos que la longitud del arreglo.
2. Para iterar a través de arreglos, hay un tipo especial de bucle for, forEach, que se ejecuta para cada valor en el
arreglo dado.
3. Para encontrar la posición del índice y el valor, podemos usar el método genérico [Link] , que se puede
utilizar con todos los objetos de colección. Esto mapea cada posición del índice al valor.
4. El objeto Map asigna una clave a un valor. Las claves deben ser únicas. Los valores pueden ser cadenas, enteros,
flotantes o cualquier otro tipo de dato válido de JavaScript. Un objeto Map vacío se puede crear con la palabra
clave new .
// Creamos un nuevo objeto Map vacío, que es una colección de pares clave-valor.
let myMap = new Map();
//Resultado esperado
//name - John
//age - 22
Objetivo:
Desarrollar habilidades para resolver problemas utilizando JavaScript
Entender cómo implementar soluciones del mundo real utilizando bucles, funciones y lógica condicional
Un array de objetos que representan transacciones de ventas. Cada objeto tiene las siguientes propiedades:
Detalles de salida:
3. Usa un bucle para iterar a través del array y calcular el monto total de ventas
El array sales contiene objetos, cada uno representando una transacción de ventas con
propiedades item , quantity y price .
Para cada objeto, multiplica quantity por price para obtener el total de ese artículo.
Acumula los totales en una variable para obtener el monto total de ventas.
const sales = [
{ item: "Laptop", quantity: 2, price: 800 },
{ item: "Monitor", quantity: 1, price: 150 },
{ item: "Mouse", quantity: 4, price: 25 }
];
function calculateTotalSales(sales) {
let total = 0;
for (let i = 0; i < [Link]; i++) {
total += sales[i].quantity * sales[i].price;
}
return total;
}
[Link]("Monto total de ventas:", calculateTotalSales(sales));
Ve a JSFiddle
Ejecuta el programa haciendo clic en el botón Run y verifica los resultados en la sección de consola
La salida del código debería aparecer como se muestra en la captura de pantalla a continuación.
Escribe un programa en JavaScript que genere un recibo para el pedido de un cliente. El recibo debe incluir el
nombre de cada artículo, cantidad, precio y costo total.
Detalles de entrada:
Un array de objetos que representan los artículos pedidos. Cada objeto tiene:
Detalles de salida:
Un recibo detallado que muestre los detalles de cada artículo y el total general
2. Escribe una función generateReceipt que tome este array como entrada
3. Usa un bucle para iterar a través de los artículos y calcular el total para cada artículo y el total general
El array orders contiene objetos, cada uno con propiedades item , quantity y price que representan los artículos
pedidos.
Imprime los detalles de cada artículo y el costo total usando una cadena formateada.
Ve a JSFiddle
Ejecuta el programa haciendo clic en el botón Run y verifica los resultados en la sección de consola
La salida del código debe aparecer como se muestra en la captura de pantalla a continuación.
Escribe un programa en JavaScript para validar una lista de contraseñas. Una contraseña es válida si:
Detalles de entrada:
Detalles de salida:
2. Escribe una función validatePasswords que tome este arreglo como entrada
3. Usa un bucle para iterar a través de las contraseñas y verificar cada una contra los criterios de validación
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
21.
22.
23.
24.
25.
26.
27.
28.
Ve a JSFiddle
Ejecuta el programa haciendo clic en el botón Run y verifica los resultados en la sección de consola
La salida del código debe aparecer como se muestra en la captura de pantalla a continuación.
Detalles de salida:
Un mensaje para cada producto indicando si el producto está “En Stock” o “Agotado”.
2. Escribe una función checkStockLevels que tome este array como entrada
3. Usa un bucle para iterar a través del array y verificar el nivel de stock de cada producto
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Ve a JSFiddle
La salida del código debe aparecer como se muestra en la captura de pantalla a continuación.
Las variables de JavaScript se declaran utilizando las palabras clave 'let' o 'const' y toman su tipo del valor
asignado.
La ejecución del programa se controla mediante sentencias como If...Then...Else, Switch, bucles For y bucles
While.
JavaScript utiliza bloques de código, denominados funciones, que pueden invocarse desde cualquier parte del
script.
Se pueden añadir nuevos métodos y propiedades a un objeto modificando el prototipo de dicho objeto.
Los prototipos permiten definir propiedades y métodos para todas las instancias de un objeto específico.
Los scripts del lado del cliente son programas que acompañan a los documentos HTML y que los desarrolladores
utilizan para incorporar más elementos interactivos.
La etiqueta script puede incorporar un script dentro de un documento HTML o llamar a un script desde un archivo
externo.
El Modelo de objetos de documentos (DOM) es la interfaz de programación entre HTML o XHTML y JavaScript.
Los desarrolladores pueden acceder a elementos HTML DOM desde scripts JavaScript utilizando la notación
DOM correcta.
A menudo se utilizan API para acceder a los elementos DOM de HTML en las páginas web.
Glosario
Término Definición
AJAX “JavaScript y XML asíncronos” que abarca más que llamadas asíncronas al servidor a
través de JavaScript y XML. No es un lenguaje de programación o tecnología, sino un
Un tipo de función que no tiene nombre o está sin nombre. Se declara sin identificador
Funciones Anónimas y a menudo se usa como parámetro de otra función. Se ejecuta inmediatamente
después de su declaración.
Objetos del Representan la página web principal. Permiten acceder a los elementos HTML en la
Documento página a través de document .
Acción o suceso que ocurre en el navegador o por el usuario (clic, envío de formulario,
Evento
etc.).
Vinculación de Proceso de asociar una función a un evento para que el navegador la ejecute cuando
Eventos ocurra dicho evento.
Manejadores de
Función que define qué hacer cuando ocurre un evento (ejemplo: clic de un botón).
Eventos
Extender Palabra clave que se usa para crear una clase hija a partir de otra clase.
Módulos de código que ejecutan tareas específicas. Pueden recibir datos (parámetros)
Funciones
y devolver resultados (valor de retorno).
Permiten agregar métodos o propiedades a objetos. Los prototipos existen para todos
Prototipos los objetos creados con new . Los objetos heredan métodos y propiedades definidos
en el prototipo.
Funciones Se usan para inicializar datos o declarar elementos del DOM. Estas funciones pueden
Autoejecutables ser anónimas.
Nodos que contienen el texto real entre la etiqueta de apertura y cierre de un elemento
Nodos de Texto
HTML.
Palabra clave que se refiere a la instancia actual del objeto. El valor de this depende
this
del contexto de ejecución.
Escribe directamente en el
documento, sobrescribiendo el
[Link]() [Link]("Hello World");
contenido. Úsalo solo para
pruebas rápidas.
Obtiene o establece el
[Link]("div1").innerHTML = "<p>Hello
[Link] contenido HTML de un
World!</p>";
elemento como una cadena.
Elimina un atributo de un
[Link]() [Link]("div1").removeAttribute("style");
elemento.
Representan errores en el
código. Tienen propiedades
try { throw new Error("Valor fuera de rango"); } catch (err) {
Error Objects como name y message . Se
[Link]([Link]); }
pueden crear errores
personalizados usando throw .
Accede al historial de
History Object navegación del usuario. Permite [Link](-2);
navegar hacia atrás o adelante.
Proporciona información de la
Location Object URL actual y permite [Link]([Link]);
redirecciones.
Desplaza la ventana a
[Link]() [Link](20, 200);
coordenadas específicas.