El curso más corto de programación (con JavaScript)
¿Qué es la programación?
Para comunicarnos entre personas, estamos acostumbrados a usar un sistema de palabras en común.
A estos los llamamos lenguajes naturales, como el español, inglés, chino, etc.
Pero las computadoras no entienden estos lenguajes directamente.
La programación es una forma de comunicarnos con las computadoras (y otros dispositivos electrónicos) para decirles qué hacer.
Para comunicarnos con estos dispositivos de una manera más técnica debemos utilizar los lenguajes de programación.
Algunos ejemplos de lenguajes de programación son: Python, JavaScript, Ruby, Java, Go, Rust, etc.
Hay que ser específicos
Cuando le damos instrucciones a otra persona hay muchas cosas que no tenemos que explicar, pero hablar con las computadoras no es tan intuitivo.
Por ejemplo, si le decimos a un amigo:
¿Puedes comprarme un chocolate?
Esa persona seguramente ya tiene conocimientos de qué es un chocolate y dónde lo puede conseguir.
Al contrario cuando hablamos con las computadoras, con ellas debemos ser extremadamente específicos.
Imagina que a tu amigo le tienes que decir exactamente:
- Ve a la calle
- Trata de encontrar una tienda (camina hasta que encuentres alguna)
- Cuando encuentres una, entra en ella
- Busca la sección de chocolates
- Toma alguno de ellos
- Ve al mostrador
- Paga el chocolate
- Sal de la tienda
- Vuelve conmigo
- Dame el chocolate
En realidad podemos extender estas instrucciones tanto como queramos, quizás también hay que explicarle qué es un chocolate, o cómo se ve una tienda, o…
…para no alargarlo más: así es como funcionan las computadoras.
En algún punto, a los procedimientos complejos (como la lista anterior) los convertimos en instrucciones más abstractas como “consígueme un chocolate”, ya lo veremos más adelante.
Por ahora sólo debemos tener en cuenta que como humanos podemos deducir información del contexto en el que nos comunicamos, mientras que las computadoras necesitan instrucciones más específicas.
Usemos JavaScript
En esta ruta de estudios aprenderemos JavaScript, que es uno de los lenguajes más usados y versátiles.
¿Qué es JavaScript?
Es un lenguaje de programación que nos ayuda (principalmente) a modificar archivos de páginas web. Lo podemos usar en el navegador ya que fue inventado para ese propósito.
En realidad se puede usar en distintos entornos (más allá del navegador) aunque en los próximos artículos veremos las maneras más básica de crear programas con este lenguaje.
¿Cómo usarlo?
Para probarlo no debemos instalar nada, ya existe una herramienta dentro de nuestro navegador favorito. Ya sea Chrome, Edge, Safari o cualquier otro.
Para abrir dicha herramienta debemos dirigirnos a las Opciones (Config) > Más Herramientas (More tools) > Herramientas de Desarrollador (Developer tools).
O podemos presionar F12 en nuestro teclado.
Esto abrirá las herramientas de desarrollador que incluyen una pestaña llamada Consola (Console) que nos permite escribir y ejecutar código de JavaScript.
Cuando decimos ejecutar, nos referimos a que comience a seguir las instrucciones que le dimos.
En los siguientes artículos veremos las instrucciones más fundamentales para entender cómo funcionan los lenguajes de programación de manera práctica.
Cuando hablamos de conceptos fundamentales nos referimos a las instrucciones que existen en la mayoría de lenguajes de programación.
Nuestro primer programa
En la programación, cada lenguaje nos proporciona acciones y herramientas que están listas para ser usadas.
Estas acciones tienen un nombre especial: funciones.
En otros artículos profundizaremos más sobre las funciones.
Una de las primeras funciones de JavaScript que aprenderemos es: console.log().
Su propósito es muy simple: hacer que la computadora hable. Es decir: mostrar un mensaje en la consola del navegador.
Para usarla debemos escribir el siguiente código:
console.log();Y dentro de los paréntesis debemos poner un mensaje encerrado entre comillas:
console.log("¡Hola, mundo!");Ahora podemos ejecutar el código y debemos ver el mensaje:
¡Hola, mundo!¡Ahora formamos parte del mundo de la programación!
☝️🤓
🏋️♂️ Ejercicio
Trata de sustituir “mundo” por tu nombre.
Instalando VS Code
El código que escribimos directamente en la consola del navegador se pierde una vez que lo cerramos. Por lo que debemos aprender una manera de conservar nuestros programas.
Para escribir y ejecutar nuestro código de manera más organizada, usaremos VS Code, un editor de código gratuito.
📥 Instalando VS Code
- Debemos dirigirnos al sitio oficial de VS Code y descargar la versión para nuestro sistema operativo.
- Instalar el programa con las opciones predeterminadas.
- Abrir VS Code y explora su interfaz
Este editor de código tiene tres áreas principales:
- La barra de herramientas, donde encontraremos todo tipo de opciones
- La barra lateral, donde encontraremos los paneles más relevantes para trabajar
- El espacio principal donde se abrirán nuestros archivos de código
💡 Si nunca has usado un editor de código, no te preocupes. Aprenderemos a usarlo paso a paso.
En realidad podemos usar cualquier aplicación que nos permita crear archivos de texto y guardarlos con extensiones particulares. Pero los editores de código incluyen herramientas que facilitan distintas tareas relacionadas con programación.
Analogía
Un editor de código es como un taller de carpintería bien equipado en lugar de sólo herramientas básicas.
Quizás a lo largo de este contenido no le saquemos tanto provecho a este “taller” pero sí nos ayudará a facilitar algunas tareas.
Cambiando el idioma de la interfaz
Para nuestra suerte, las palabras que usamos para programar están en inglés. Por lo que no importa si queremos huir de él, siempre estará con nosotros.
Lo que sí podemos cambiar es el idioma de la interfaz de nuestro nuevo editor de código.
A lo largo de este contenido, la interfaz de los programas que utilicemos estará en inglés.
Recomendamos ampliamente utilizar interfaces en inglés para acostumbrarnos a trabajar de esa manera.
¿Cómo cambiar el editor a español?
Cuando instalamos VS Code la interfaz aparecerá en inglés.
Si queremos cambiar este ajuste, podemos dirigirnos a Barra lateral > Extensiones y escribir spanish dentro de la barra de búsqueda.
Aquí aparecerá el paquete de lenguaje para el idioma español.
Lo instalamos y nos aparecerá un botón para reiniciar el editor.
Una vez reiniciado tendremos la interfaz en español.
¿Cómo volver a cambiar el idioma?
Si deseamos cambiar el idioma nuevamente, podemos ir al menú de la barra superior Ver > Paleta de comandos y escribir idioma.
Aquí encontraremos la opción Cambiar idioma de pantalla o Configure Display Language.
Nos ayudará a cambiar entre los idiomas instalados o instalar uno nuevo.
Creando archivos personalizados
Ahora que tenemos un editor de código podemos crear archivos que nos permitan conservar los programas que hagamos.
Creando un nuevo proyecto
El primer paso es dirigirnos a la Barra Lateral > Explorador y abrir una carpeta donde guardaremos nuestros proyectos.
Si aún no tenemos una carpeta, podemos crear una directamente desde este menú
Esto nos ayudará a mantener organizados nuestros archivos mientras aprendemos.
Agregando un archivo HTML
Una vez que tengamos abierta una carpeta dentro de VS Code, el panel cambiará ligeramente con una nueva sección.
Ahora podemos darle Clic derecho > Nuevo archivo.
Debemos crear un archivo con la extensión .html, ya que es el tipo de archivos que reconoce un navegador. Por ejemplo: mi-primer-programa.html.
Generando la estructura HTML
Dentro de él debemos escribir ! (signo de admiración) para activar el atajo de autocompletado que nos dará el código inicial.
El código se verá algo así:
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body></body></html>Agregando código de JavaScript
Este código nos permite crear una página web, que es donde vivirá nuestro código.
Por ahora sólo tenemos código HTML, para ejecutar JavaScript debemos hacer un paso extra.
Hay varias maneras de agregar JavaScript a una página web, por ahora sólo veremos la más sencilla.
Debemos agregar un poco más de código:
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> console.log("¡Hola, mundo!"); </script> </body></html>En medio de <script>...</script> podemos agregar las líneas de JavaScript que necesitemos.
Ejecutando el código en el navegador
Ahora el archivo que acabamos de crear lo podemos abrir con nuestro navegador.
Este programa sólo imprime un ¡Hola, mundo! a la consola, por lo que debemos abrirla para ver el resultado.
De esta manera podemos crear archivos que preserven el código que hagamos a lo largo de las siguientes lecciones. Incluso podemos volver a ellos para repasar los conceptos que vimos.
Recomendamos crear un nuevo archivo para cada lección
☝️🤓
🏋️♂️ Ejercicio
Modifica el código dentro de <script> para imprimir tu nombre en la consola.
Por ejemplo:
console.log("¡Hola, [NOMBRE]!");Una vez que modificamos el archivo, debemos guardar los cambios y actualizar el navegador para ver los resultados.
Antes de continuar
Ahora que sabemos crear archivos personalizados, hablemos un poco del flujo de trabajo que recomendamos usar en este curso.
Sobre la ruta de estudio
A pesar de que existen diferentes alternativas para agregar JavaScript a nuestros proyectos, en esta ruta de estudio nos concentraremos en usarlo mediante el procedimiento que aprendimos en la lección pasada.
Sobre la creación de archivos
Nuestra siguiente recomendación es crear un nuevo archivo .html por cada lección que veamos. Todos van a seguir la misma estructura básica:
- Crear un archivo con el nombre de la lección. Por ejemplo:
variables.html - Agregar el código HTML por defecto
- Agregar las etiquetas
<script> - Escribir el código de las lecciones y ejercicios
Por ejemplo:
Sobre Live Server
Por defecto, cuando modificamos el código dentro de nuestros archivos, debemos recargar la página en el navegador para ver los cambios. Esto puede ser un poco molesto, especialmente cuando estamos aprendiendo.
Para solucionar este problema, podemos usar una extensión de VS Code llamada Live Server.
Una extensión es como un mini programa que le agrega funcionalidad a nuestro editor de código.
Instalación
Para instalar Live Server, debemos:
- Ir a la barra lateral de VS Code y abrir el panel de Extensiones
- En la barra de búsqueda, escribir
Live Server - Instalamos la extensión, usualmente es la primera opción en los resultados
Uso
Una vez instalada la extensión, podemos abrir nuestros archivos HTML de una manera más conveniente:
- Dar clic derecho sobre el archivo HTML
- Seleccionar
Open with Live Server
Esto abrirá nuestro archivo en el navegador.
Ahora cada vez que hagamos cambios en el archivo y guardemos, la página se actualizará automáticamente.
Introducción a los comentarios
En JavaScript los comentarios son líneas de código que el navegador ignora al ejecutar un programa.
Los comentarios tienen dos usos principales:
- Hacer anotaciones: Nos permiten explicar partes del código y documentar su funcionamiento.
- Desactivar código: Podemos comentar temporalmente líneas de código que no queremos eliminar.
📝 Comentarios de una línea
Para escribir un comentario de una sola línea, usamos // antes del texto:
// Esto es un comentario de una líneaconsole.log("Hola, mundo!"); // Esto también es un comentarioJavaScript ignora todo lo que esté después de // en la misma línea.
📄 Comentarios de múltiples líneas
Si necesitamos un comentario más extenso, usamos /* */ para escribir en varias líneas:
/*Este es un comentarioque ocupa varias líneas.Podemos usarlo para explicar partes del código en detalle.*/console.log("Este código sí se ejecutará");🚫 Desactivando código con comentarios
Los comentarios son útiles cuando queremos probar diferentes versiones de nuestro código:
// Versión 1: Saludar en españolconsole.log("¡Hola!");// Versión 2: Saludar en inglés// console.log("Hello!");
// También podemos comentar varias líneas de código:/*let nombre = "Juan";let edad = 25;console.log("Nombre: " + nombre);console.log("Edad: " + edad);*/
// Y mantener activa solo la línea que queremos probar:console.log("Este código sí se ejecuta");A lo largo de este contenido vamos a usar comentarios dentro de los bloques de código para añadir información relevante.
☝️🤓
🚀 Extra
Investiga sobre:
- ¿Por qué es importante comentar nuestro código?
- ¿Cuándo debemos evitar usar comentarios?
- ¿Qué otros tipos de comentarios existen en otros lenguajes de programación?
Variables
🌍 Mundo real vs. mundo digital
Así como en el mundo real todo ocupa un espacio físico…
…en nuestra computadora los datos también necesitan un lugar para existir.
La diferencia es que este no es un espacio físico, sino un espacio en la memoria de nuestra computadora.
Sobre las variables
En programación, las variables son como contenedores que nos permiten:
- Guardar información para usarla después
- Darle un nombre significativo a esa información
- Modificar su contenido cuando lo necesitemos
Para decirle a la computadora: “Quiero que apartes un espacio para guardar algo…”, debemos crear una variable.
Veamos las instrucciones de código que nos ayuda con esta tarea.
☝️ Declaración
En JavaScript podemos hacerlo de dos maneras principales:
Usando la palabra
letseguida del nombre que le queramos dar a nuestra variable.let edad;let numeroFavorito;Usando la palabra
varseguida del nombre que le queramos dar a nuestra variable.var puntuacion;var temperatura;
De manera técnica a este paso le llamamos: declaración (de variables).
Es preferible usar let, ya que nos ayuda a evitar errores comunes.
Analogía
Así estamos creando espacios digitales apartados para guardar algo.
Podemos verlo como cajas están etiquetadas con los nombres que les dimos.
🟰 Asignación
Para guardar algo dentro de esos contenedores usamos el operador =:
let edad = 25;let temperatura = 21.5;let puntuacion = 10;De manera técnica a este paso le llamamos: asignación (de valor).
Analogía
Es como meter diferentes tipos de objetos dentro de nuestras cajas etiquetadas:
También podemos hacer la declaración y asignación en pasos separados:
let velocidad; // Primero declaramosvelocidad = 60.5; // Luego asignamos✍️ Modificación
Una de las características principales de las variables es que podemos cambiar su valor a lo largo de nuestro programa:
let puntuacion = 0; // Iniciamos en ceropuntuacion = 10; // Ganó 10 puntospuntuacion = 25; // Ganó 15 puntos másUna vez declarada la variable no hay que volver a usar let. Solo hacemos referencia a su nombre para asignar un nuevo valor.
Analogía
Es como si pudiéramos cambiar el contenido de nuestras cajas según lo necesitemos.
El contenedor (la variable) sigue siendo el mismo, pero su contenido (el valor) puede cambiar.
🔠 Constantes
Cuando queremos asegurarnos de que un valor nunca cambie durante la ejecución de nuestro programa, usamos constantes.
Las creamos usando la palabra const, seguida de su nombre y su valor inicial:
const PI = 3.14159;const VELOCIDAD_LUZ = 299792458;const GRAVEDAD = 9.81;Es recomendable escribir los nombres de las constantes en MAYÚSCULAS.
Representan valores que nunca deberían cambiar en nuestro programa y de esta forma es fácil identificarlas.
Analogía
Son como contenedores sellados: una vez que guardamos algo, ya no podemos cambiarlo.
📝 Resumen
- Las variables son espacios en memoria donde podemos guardar información
- Usamos
letovarpara crear variables (preferimoslet) - Usamos
constpara crear valores que no cambiarán - La asignación de valores se hace con el operador
=
| Tipo | Asignación inicial obligatoria | Re-asignable |
|---|---|---|
var | ❌ | ✅ |
let | ❌ | ✅ |
const | ✅ | ❌ |
Tipos de dato
En la lección anterior aprendimos que podemos guardar cosas en variables y constantes, ahora toca averiguar: ¿qué cosas podemos guardar?.
🫳 Lo que está nuestro alcance son los datos
Existen diferentes tipos de dato que podemos guardar en nuestras variables y constantes.
Por ahora hablaremos de los principales:
Undefined(indefinido)Null(nulo)Number(número)String(cadena)Boolean(booleano)
Y en otros artículos veremos algunos un poco más complejos:
Object(objeto)Array(arreglo)Function(función)
Hay dos tipos de dato de los que no hablaremos en esta ruta de estudios
(BigInt y Symbol).
Los tipos de dato son esenciales en programación porque nos dicen qué podemos hacer con un valor.
No es lo mismo sumar dos números que sumar dos textos, y JavaScript trata cada tipo de dato de manera diferente.
❓ Undefined
Undefined o indefinido, es el tipo de dato que indica que no existe nada guardado ahí.
Es el valor por defecto que reciben las variables cuando las creamos sin asignar un valor.
let miIndefinido;console.log(miIndefinido);undefinedAnalogía
Imagina que tienes una caja nueva y vacía. Cuando la abres por primera vez, está indefinida porque aún no has decidido qué guardar en ella.
❔ Null
Null o nulo, es el tipo de dato que también indica que no existe nada en ese lugar, aunque este valor suele ser a propósito.
Es decir, un vacío puesto por un programador.
let miNulo = null;console.log(miNulo);nullAnalogía
Es como una caja que vaciamos intencionalmente.
🔢 Number
Number o número, es el tipo de dato que nos ayuda con lo relacionado a los números.
// Números enteroslet edad = 25;// Números negativoslet temperatura = -5;
// Números decimaleslet precio = 99.99;let pi = 3.14159;🔤 String
String o Cadena (de caracteres), es el tipo de dato que nos ayuda a usar texto, como mensajes, palabras, letras o emoji.
// Diferentes tipos de textolet nombre = "Ana";let mensaje = "¡Bienvenido a JavaScript!";let emoji = "😊";Hay tres maneras de crear strings:
Con comillas simples (
'):let saludo = 'Hola mundo';Con comillas dobles (
"):let mensaje = "JavaScript es divertido";Con backticks (
`) que permiten texto en múltiples líneas y usar variables:let nombre = "María";let mensaje = `Hola ${nombre},¡Bienvenida al curso!`;
✔️ Boolean
Boolean o booleano, es el tipo de dato que solo puede tener dos valores: true (verdadero) o false (falso).
Nos ayuda a representar condiciones que son verdaderas o falsas. Por ejemplo:
- Si un usuario está conectado o no
- Si un juego está pausado o en marcha
- Si una tarea está completada o pendiente
// Ejemplos de valores booleanos en situaciones realeslet usuarioConectado = true;let juegoEnPausa = false;let tareaCompletada = true;Los booleanos son muy útiles cuando necesitamos tomar decisiones en nuestro código basadas en condiciones de sí/no.
Más adelante veremos cómo los tipos de dato se complementan con otras instrucciones para generar comportamientos más prácticos e interesantes.
☝️🤓
🏋️♂️ Ejercicio
Crea una variable para cada tipo de dato que hemos visto:
- Un número que represente tu edad
- Un texto con tu nombre
- Un booleano que indique si te gusta programar
- Una variable sin valor (undefined)
- Una variable con valor nulo
Luego, muestra cada variable en la consola usando console.log().
🏋️♂️ Ejercicio
Crea tres variables usando diferentes formas de crear strings:
- Una usando comillas simples
- Otra usando comillas dobles
- Y una última usando backticks o comillas invertidas
Muestra el resultado de cada una en la consola.
🏋️♂️ Ejercicio
Crea dos variables numéricas:
- Una con un número entero
- Otra con un número decimal
🚀 Extra
Investiga y escribe ejemplos de situaciones reales donde se utilicen los diferentes tipos de dato en aplicaciones web que uses frecuentemente.
Por ejemplo:
Boolean:
- Cuando marcas “recordar contraseña” en un formulario de inicio de sesión
- Cuando activas o desactivas notificaciones
Number:
- El contador de “me gusta” en una publicación
- El precio de un producto en una tienda en línea
String:
- Tu nombre de usuario
- Los comentarios en una publicación
Null:
- Cuando borras tu foto de perfil y queda vacía
- Cuando eliminas una publicación y su contenido se marca como nulo
Undefined:
- Cuando una aplicación está cargando y aún no tiene los datos
- Cuando un perfil es nuevo y algunos campos están sin llenar
Escribe al menos un ejemplo más para cada tipo.
Concatenación de cadenas
🔗 ¿Qué es la concatenación?
Concatenar significa unir cadenas de texto. Tomamos palabras sueltas y las juntamos en un solo mensaje.
➕ Uniendo con el operador +
Uno de los usos más comunes es mediante el operador +:
let saludo = "Hola";let nombre = "Juan";console.log(saludo + " " + nombre);En este ejemplo:
- Tenemos la variable
saludocon el texto"Hola" - Tenemos la variable
nombrecon el texto"Juan" - Agregamos un espacio
" "entre las palabras para que no se junten - Los operadores
+unen todo en una sola cadena
Hola Juan🔢 Uniendo números
Cuando concatenamos strings con números, JavaScript convierte automáticamente los números a strings:
let puntos = 1500;let bonus = 300;console.log("¡Has ganado " + puntos + " puntos y un bonus de +" + bonus + "!");¡Has ganado 1500 puntos y un bonus de +300!⚠️ Resultados inesperados
JavaScript maneja los tipos de datos de forma diferente según el operador:
- Con
+, si uno de los valores es un string, convierte todo a texto y realiza una concatenación - Con operadores matemáticos (
-,*,/), intenta convertir los strings a números para realizar la operación
Por ejemplo:
"5" + 2; // "52" (concatenación)"5" - 2; // 3 (resta numérica)"5" * "2"; // 10 (multiplicación numérica)52310🎯 Uniendo con plantillas literales (${})
Existe otra forma de unir cadenas, a este método se le conoce como plantillas literales.
Debemos usar las comillas invertidas (backticks) para crear una nueva cadena.
let jugador = "Mario";let puntuacion = 1250;
// Forma tradicional con +console.log("El jugador " + jugador + " alcanzó " + puntuacion + " puntos.");
// Forma moderna con plantillas literalesconsole.log(`El jugador ${jugador} alcanzó ${puntuacion} puntos.`);El jugador Mario alcanzó 1250 puntos.El jugador Mario alcanzó 1250 puntos.Las ventajas de usar plantillas literales son:
- El código es más fácil de leer
- No necesitamos usar
+para unir las partes - Podemos incluir saltos de línea directamente
- Podemos usar expresiones dentro de
${}
📝 Ejemplo con múltiples líneas
let ciudad = "Barcelona";let temperatura = 28;
console.log(`Ciudad: ${ciudad}Temperatura: ${temperatura}°C`);Ciudad: BarcelonaTemperatura: 28°CEsta vez, con un solo console.log(), pudimos mostrar el producto y el precio en dos líneas diferentes.
☝️🤓
🏋️♂️ Ejercicio
-
Crea dos variables:
nombreypasatiempo. -
Úsalas para formar una oración en
console.log().Puedes usar cualquiera de los dos métodos de concatenación que aprendimos.
🏋️♂️ Ejercicio
- Crea tres variables:
producto,cantidadyprecio. - Crea un mensaje que muestre un resumen de compra usando plantillas literales.
🚀 Extra
Investiga sobre el método concat() de los strings en JavaScript:
- ¿Cuál es su sintaxis?
- ¿Qué ventajas y desventajas tiene comparado con el operador
+y las plantillas literales? - Crea un ejemplo práctico donde
concat()sea la mejor opción.
Pista: Busca en la documentación de MDN sobre String.prototype.concat()
Operadores aritméticos
Los operadores aritméticos son las herramientas básicas que usamos para realizar cálculos en programación, similares a las operaciones matemáticas que hacemos en nuestra vida diaria.
- Suma
- Resta
- Multiplicación
- División
- Exponencial
- Módulo o restante
➕ Suma o adición
Podemos usar el símbolo + para calcular sumas.
let miSuma = 2 + 2;4➖ Resta o sustracción
Podemos usar el símbolo - para calcular restas.
let miResta = 10 - 5;5✖️ Multiplicación
Podemos usar el símbolo * para calcular multiplicaciones.
let miMultiplicacion = 3 * 3;9➗ División
Podemos usar el símbolo / para calcular divisiones.
let miDivision = 10 / 3;3.3333333333333335💫 Módulo o restante
Podemos usar el símbolo % para calcular divisiones y conseguir el residuo.
let miModulo = 10 % 3;1Analogía
Si conocemos la “división de casita”, el módulo proviene de calcular una división con números enteros y conseguir el sobrante.
🚀 Exponencial
Podemos usar los símbolos ** para calcular exponenciales.
let miExponencial = 2 ** 3;8🎯 Agrupaciones
Cuando empezamos a crear operaciones más complejas tendemos a agrupar utilizando los paréntesis: ().
let miAgrupacion = 2 + 3 * (4 - 2 / 3);12🔢 Precedencia de operadores
El orden en el que se calculan las operaciones es el mismo que conocemos en matemáticas.
| Operador | Orden de cálculo |
|---|---|
() | 1 |
** | 2 |
*, /, % | 3 |
+, - | 4 |
☝️🤓
🏋️ Ejercicios
🏋️♂️ Ejercicio
Supongamos que estás comprando varios productos y quieres saber cuánto gastarás en total.
Usa + para sumar los precios.
let producto1 = 30; // Precio del primer productolet producto2 = 25; // Precio del segundo productolet producto3 = 45; // Precio del tercer producto
let totalCompra = ____; // Completa la operación de sumaconsole.log("El total de la compra es $" + totalCompra);🏋️♂️ Ejercicio
Declara una variable dinero con una cantidad inicial de dinero y otra variable gasto con lo que vas a gastar.
Usa - para calcular cuánto te queda.
let dinero = 100; // Cambia esto por tu cantidad iniciallet gasto = 30; // Cambia esto por cuánto gastaste
let restante = ____; // Completa la operación de restaconsole.log("Después del gasto, te quedan $" + restante);🏋️♂️ Ejercicio
Supongamos que compras varias camisetas a un mismo precio.
Usa * para calcular el total a pagar.
let precioCamiseta = 20; // Precio de una camisetalet cantidad = 3; // Número de camisetas compradas
let total = ____; // Completa la operación de multiplicaciónconsole.log("El total a pagar es $" + total);🏋️♂️ Ejercicio
Tienes una cantidad de dinero y quieres dividirla entre días de la semana.
Usa / para calcular cuánto le toca a cada uno.
let premio = 200; // Dinero total a repartirlet dias = 5; // Número de días
let partePorDia = ____; // Completa la operación de divisiónconsole.log("Cada persona recibe $" + partePorDia);🏋️♂️ Ejercicio
Usa % para determinar si un número es par o impar.
let numero = 7; // Cambia esto por cualquier número
let esPar = ____; // Completa la operación con móduloconsole.log("El residuo de " + numero + " entre 2 es " + esPar);🏋️♂️ Ejercicio
El área de un cuadrado se obtiene elevando la medida de uno de sus lados al cuadrado. Usa ** para calcular el área de uno cuyo lado mide 5 unidades.
let lado = 5; // Longitud de un lado del cuadrado
let area = ____; // Completa la operación de exponenciaciónconsole.log(`El área de un cuadrado con lado ${lado} es ${area}.`);🏋️♂️ Ejercicio
Para calcular el promedio de tres números, sumamos los valores y luego dividimos el resultado entre 3. Usa () para asegurarte de que la suma se realice antes de la división.
let num1 = 8;let num2 = 6;let num3 = 10;
let promedio = ____; // Completa la operación con agrupación correctaconsole.log(`El promedio de los tres números es ${promedio}.`);🏋️♂️ Ejercicio
Crea una calculadora de descuentos que:
- Tome un precio original
- Calcule un descuento del 15%
- Muestre el precio final
let precioOriginal = 100;
let descuento = ____; // Calcula el 15% usando multiplicación y divisiónlet precioFinal = ____; // Resta el descuento al precio original
console.log(`Precio original: $${precioOriginal}`);console.log(`Descuento: $${descuento}`);console.log(`Precio final: $${precioFinal}`);🚀 Extra
Investiga y crea ejemplos de cómo los operadores aritméticos se utilizan en:
- Animaciones web (cálculo de posiciones)
- Juegos (puntuaciones, vidas)
- Comercio electrónico (carritos de compra)
Mini Proyecto: Calculadora de Propinas
🎯 Objetivo
Crear un script simple que calcule la propina y el monto total a pagar de una cuenta, basándose en el monto inicial y el porcentaje de propina deseado.
💡 Conceptos a Utilizar
- Variables (
let,const) - Tipos de dato (
number,string) - Operadores aritméticos (
+,*,/) - Concatenación de cadenas (
+) - Mostrar salida (puedes usar
console.logpor ahora)
👣 Pasos
- Declara variables: Crea variables para almacenar el monto de la cuenta (ej:
100) y el porcentaje de propina (ej:15). - Calcula la propina: Calcula el monto de la propina multiplicando el monto de la cuenta por el porcentaje de propina (dividido entre 100). Guarda el resultado en una variable.
- Calcula el total: Suma el monto de la cuenta y el monto de la propina. Guarda el resultado en otra variable.
- Muestra los resultados: Usa
console.logpara mostrar el monto de la propina y el monto total a pagar de forma clara. Por ejemplo: “Propina: $15. Total a pagar: $115”.
🤔 Pista
// 1. Declara variablesconst montoCuenta = 100;const porcentajePropina = 15;
// 2. Calcula la propinaconst montoPropina = montoCuenta * (porcentajePropina / 100);
// 3. Calcula el totalconst totalPagar = montoCuenta + montoPropina;
// 4. Muestra los resultadosconsole.log("Monto de la cuenta: $" + montoCuenta);console.log("Porcentaje de propina: " + porcentajePropina + "%");console.log("Propina: $" + montoPropina);console.log("Total a pagar: $" + totalPagar);¡Intenta modificar los valores iniciales y ve cómo cambian los resultados!
☝️🤓
🏋️♂️ Ejercicio
¿Cómo podrías modificar el script para que pregunte al usuario el
montoCuenta y el porcentajePropina usando prompt() en lugar de tenerlos
fijos en el código?
🚀 Extra
Busca cómo puedes formatear los números de salida para que siempre muestren
dos decimales, como es común con el dinero (ej., $115.00 en lugar de
$115). Investiga sobre el método toFixed() en JavaScript.
Introducción a prompt()
🎯 Introducción
En la mayoría de los programas, es necesario recibir información del usuario.
En JavaScript, podemos hacerlo con prompt().
En programas profesionales no se usa, pero para principiantes es una buena forma de introducirnos al manejo de datos
🖥️ ¿Qué es prompt()?
prompt() es una función, similar a console.log(), sólo que muestra una ventana donde el usuario puede escribir un valor.
Este valor lo podemos almacenar en una variable.
let sabor = prompt("¿Qué sabor de helado prefieres?");console.log("¡Excelente elección! Un helado de " + sabor + " saliendo.");Cuando ejecutamos este código, el usuario verá un cuadro de diálogo preguntando por su sabor preferido.
El texto que escriba se guardará en la variable sabor. Es como tomar una nota del pedido del cliente.
💡 Debemos tener en cuenta que prompt() siempre devuelve un String
(cadena de caracteres)
🔢 ¿Cómo convertir la entrada a número?
Si queremos que el tipo de dato sea un número, necesitamos convertir la entrada de prompt() de String a Number.
Para eso usamos parseInt(), parseFloat() o Number().
let puntaje = prompt("¿Cuál fue tu puntaje en el juego?");puntaje = parseInt(puntaje); // Convertimos el string a númeroconsole.log( `¡Increíble! Si vences al enemigo llegarás a ${puntaje + 500} puntos.`,);De esta manera no estamos sumando un string con un número, que nos daría el error que vimos en el artículo de concatenación.
Estaríamos sumando número con número, lo cual mostraría un resultado correcto al momento de hacer la suma que esperamos.
📌 Errores comunes con prompt()
1️⃣ No convertir la entrada
let numero = prompt("Escribe un número:");console.log(numero + 10); // Esto concatenará el número en lugar de sumarlo.💡 Solución: Usar parseInt() o Number() para hacer operaciones matemáticas correctamente.
2️⃣ Olvidar que el usuario puede cancelar
Si el usuario presiona Cancelar y tratamos de conseguir el texto recibiremos null, por lo que nuestro programa podría dejar de funcionar correctamente.
☝️🤓
🏋️♂️ Ejercicio
Crea un programa que:
- Pide al usuario su nombre usando
prompt() - Pide su edad usando
prompt() - Convierta la edad a número
- Muestre un mensaje que diga “¡Hola [nombre]! En 10 años tendrás [edad + 10] años”
🏋️♂️ Ejercicio
Crea un programa que calcule el precio de una pizza personalizada:
- Pide al usuario el tamaño de la pizza usando
prompt()(“pequeña”, “mediana”, “grande”) - Pide la cantidad de ingredientes extra usando
prompt() - Convierte la cantidad de ingredientes a número
- Calcula el precio total (pequeña: $8, mediana: $10, grande: $12, cada ingrediente extra: $1)
- Muestra un mensaje que diga “Tu pizza [tamaño] con [cantidad] ingredientes extra costará $[precio] dólares”
🚀 Extra
Investiga sobre:
- ¿Qué diferencia hay entre
parseInt()yparseFloat()? - ¿Qué otros métodos existen para convertir strings a números en JavaScript?
- ¿Por qué no se recomienda usar
prompt()en aplicaciones profesionales?
Operadores de asignación
👀 ¿Qué son los operadores de asignación
Los operadores de asignación son atajos para realizar cálculos y guardar el resultado en la misma variable.
Analogía
Es como sacar el valor de la caja, manipularlo y luego guardarlo de nuevo en la misma caja en un movimiento rápido.
Nos ayuda a ahorrar código.
Todas las operaciones tienen un atajo para realizar este tipo de acción:
➕ Asignación de suma o adición
let resultado = 10;console.log(resultado);resultado += 6;console.log(resultado);1016➖ Asignación de resta o sustracción
let resultado = 10;console.log(resultado);resultado -= 5;console.log(resultado);105✖️ Asignación de multiplicación
let resultado = 10;console.log(resultado);resultado *= 3;console.log(resultado);1030➗ Asignación de división
let resultado = 10;console.log(resultado);resultado /= 5;console.log(resultado);102💫 Asignación de restante o módulo
let resultado = 10;console.log(resultado);resultado %= 3;console.log(resultado);101⭐ Asignación de exponente
let resultado = 10;console.log(resultado);resultado **= 2;console.log(resultado);10100☝️🤓
🏋️ Ejercicios
🏋️♂️ Ejercicio
Usando el operador +=, crea una variable que inicialmente tenga un valor de
100 y termine con un valor de 350.
🏋️♂️ Ejercicio
Usando el operador -=, crea una variable que inicialmente tenga un valor de
1 y termine con un valor de -1.
🏋️♂️ Ejercicio
Usando el operador *=, crea una variable que inicialmente tenga un valor de
12 y termine con un valor de 156.
🏋️♂️ Ejercicio
Usando el operador /=, crea una variable que inicialmente tenga un valor de
99 y termine con un valor de 11.
🏋️♂️ Ejercicio
Usando el operador %=, crea una variable que inicialmente tenga un valor de
16 y termine con un valor de 1.
🏋️♂️ Ejercicio
Usando el operador **=, crea una variable que inicialmente tenga un valor de
11 y termine con un valor de 121.
🏋️♂️ Ejercicio
Crea un programa que use al menos tres operadores de asignación diferentes para calcular el precio final de un producto con descuentos y impuestos.
🚀 Extra
Investiga qué otros operadores de asignación existen y qué usos tienen.
Operadores de comparación
🎯 ¿Qué son los operadores de comparación?
Los operadores de comparación son como preguntas que le hacemos a JavaScript para comparar valores.
Cuando hacemos una pregunta (comparación), JavaScript nos responde con:
trueque significa “sí” o “verdadero”falseque significa “no” o “falso”
Analogía
Es como una balanza que nos ayuda a tomar decisiones:
- ¿Son estos valores iguales?
- ¿Es uno mayor que otro?
- ¿Son del mismo tipo?
Cada operador es como hacer una pregunta, y la respuesta será siempre: sí (true) o no (false).
🔍 Tipos de Operadores
🟰 ¿Son Iguales?
== Comparación Simple
Es como preguntar “¿se parecen estos valores?”, sin fijarnos mucho en los detalles.
console.log(5 == "5"); // ¿se parecen?console.log(5 == 5); // ¿son iguales?truetrue=== Comparación Exacta
Es como preguntar “¿son exactamente iguales?”, fijándonos en todos los detalles.
console.log(5 === "5"); // ¿son del mismo tipo?console.log(5 === 5); // ¿son exactamente iguales?falsetrue❗ ¿Son Diferentes?
!= Diferencia Simple
Es como preguntar “¿son diferentes?”, sin fijarnos mucho en los detalles.
console.log(5 != "5"); // ¿son diferentes?console.log(5 != 6); // ¿son diferentes?falsetrue!== Diferencia Exacta
Es como preguntar “¿son completamente diferentes?”, fijándonos en todos los detalles.
console.log(5 !== "5"); // ¿son de diferente tipo?console.log(5 !== 5); // ¿son diferentes?truefalse📊 Comparando Números
> ¿Es Mayor?
Es como preguntar “¿es este número más grande que el otro?”
console.log(10 > 5); // ¿es 10 mayor que 5?console.log(5 > 10); // ¿es 5 mayor que 10?truefalse< ¿Es Menor?
Es como preguntar “¿es este número más pequeño que el otro?”
console.log(10 < 20); // ¿es 10 menor que 20?console.log(20 < 10); // ¿es 20 menor que 10?truefalse>= ¿Es Mayor o Igual?
Es como preguntar “¿es este número más grande o igual que el otro?”
console.log(10 >= 10); // ¿es 10 mayor o igual que 10?console.log(15 >= 10); // ¿es 15 mayor o igual que 10?truetrue<= ¿Es Menor o Igual?
Es como preguntar “¿es este número más pequeño o igual que el otro?”
console.log(5 <= 5); // ¿es 5 menor o igual que 5?console.log(3 <= 7); // ¿es 3 menor o igual que 7?truetrue📝 Resumen
| Operador | Descripción | Ejemplo | Resultado |
|---|---|---|---|
== | Igualdad simple | 5 == '5' | true |
=== | Igualdad estricta | 5 === '5' | false |
!= | Desigualdad simple | 5 != '5' | false |
!== | Desigualdad estricta | 5 !== '5' | true |
> | Mayor que | 7 > 5 | true |
>= | Mayor o igual que | 7 >= 5 | true |
< | Menor que | 3 < 5 | true |
<= | Menor o igual que | 3 <= 5 | true |
☝️🤓
🏋️♂️ Ejercicio
Comparación Simple
Usa == para verificar si dos valores son iguales, sin importar el tipo de dato.
let a = 10;let b = "10";
console.log(a == b); // ¿Son iguales en valor?🏋️♂️ Ejercicio
Comparación Estricta
Usa === para comparar dos valores y asegurarte de que sean iguales en valor y tipo de dato.
let numero = 7;let texto = "7";
console.log(numero === texto); // ¿Son exactamente iguales?🏋️♂️ Ejercicio
Diferencia Simple
Usa != para verificar si dos valores son diferentes.
let x = 5;let y = "5";
console.log(x != y); // ¿Son diferentes?🏋️♂️ Ejercicio
Diferencia Estricta
Usa !== para verificar si dos valores son completamente diferentes.
let precio = 100;let precioTexto = "100";
console.log(precio !== precioTexto); // ¿Son completamente diferentes?🏋️♂️ Ejercicio
Mayor Que
Usa > para verificar si un número es mayor que otro.
let edad = 18;let edadMinima = 16;
console.log(edad > edadMinima); // ¿Es mayor?🏋️♂️ Ejercicio
Menor Que
Usa < para verificar si un número es menor que otro.
let temperatura = 25;let temperaturaMaxima = 30;
console.log(temperatura < temperaturaMaxima); // ¿Es menor?🏋️♂️ Ejercicio
Mayor o Igual
Usa >= para verificar si un estudiante aprobó el curso (nota mínima 70).
let calificacion = 75;let notaMinima = 70;
console.log(calificacion >= notaMinima); // ¿Aprobó?🏋️♂️ Ejercicio
Menor o Igual
Usa <= para verificar si un producto está dentro del presupuesto.
let precioProducto = 50;let presupuesto = 60;
console.log(precioProducto <= presupuesto); // ¿Alcanza el presupuesto?🚀 Extra
Investiga y responde:
- Proporciona 3 ejemplos prácticos de cómo se usan los operadores de comparación en aplicaciones que utilizas todos los días. Por ejemplo:
- Verificar si tienes suficiente saldo para realizar una compra
- Comprobar si cumples la edad mínima para acceder a cierto contenido
- Validar si una contraseña coincide con la almacenada
- ¿Por qué es importante usar
===en lugar de==cuando comparamos valores en JavaScript?
Operadores lógicos
Los operadores lógicos son herramientas que nos permiten combinar diferentes condiciones para tomar decisiones en nuestro código.
En programación, como en la vida, usamos operadores lógicos para evaluar múltiples condiciones.
🤔 ¿Qué es una evaluación?
Una evaluación es cuando le hacemos una pregunta a JavaScript y nos responde con true (verdadero) o false (falso). Por ejemplo:
5 > 3es una evaluación que pregunta “¿es 5 mayor que 3?”edad >= 18es una evaluación que pregunta “¿es la edad mayor o igual a 18?”
Analogía
Imagina que estás decidiendo si salir de casa. La decisión depende de varios factores:
- ¿Tienes paraguas?
- ¿Está lloviendo?
Tu decisión final combina estas condiciones, igual que los operadores lógicos.
⚡ Operadores lógicos básicos
Los principales operadores lógicos en JavaScript son:
&&(AND): Ambas condiciones deben cumplirse||(OR): Basta con que una condición se cumpla!(NOT): Invierte el resultado de una condición
✅ AND (&&): Todas las condiciones
El operador && da true como resultado solo si todas las condiciones son verdaderas.
condición 1 | condición 2 | Resultado (&&) |
|---|---|---|
true | true | ✅ true |
true | false | ❌ false |
false | true | ❌ false |
false | false | ❌ false |
La palabra and significa y, como en: ¿condición 1 y condición 2 se
cumplen?
Analogía
Para que puedas ver una película en el cine, necesitas dos cosas:
- Tener dinero para la entrada.
- Que haya funciones disponibles.
let tieneDinero = true;let hayFunciones = false;
let puedoIrAlCine = tieneDinero && hayFunciones;console.log("¿Puedo ir al cine?", puedoIrAlCine);¿Puedo ir al cine? false🔀 OR (||): Al menos una condición
El operador || devuelve true si al menos una de las condiciones es verdadera.
condición 1 | condición 2 | Resultado (||) |
|---|---|---|
true | true | ✅ true |
true | false | ✅ true |
false | true | ✅ true |
false | false | ❌ false |
La palabra or significa o, como en: ¿condición 1 o condición 2 se cumple?
Analogía
Para pedir comida a domicilio prefieres que suceda al menos una de dos cosas:
- 🍽️ Tener hambre.
- 🍕 Que haya una promoción irresistible.
Si cualquiera de las dos condiciones se cumple, pedirás comida.
let tieneHambre = false;let hayPromocion = true;
let vaPedirComida = tieneHambre || hayPromocion;console.log("¿Voy a pedir comida?", vaPedirComida);¿Voy a pedir comida? true❗ NOT (!): Invertir una condición
El operador ! invierte el valor de una condición:
- Si algo es
true, lo convierte enfalse - Si algo es
false, lo convierte entrue
La palabra not significa no, como en: ¿no se cumple la condición?
Analogía
Piensa en un interruptor de luz:
- Si la luz está encendida (
true), al negarlo (!), estará apagada (false) - Si la luz está apagada (
false), al negarlo (!), estará encendida (true)
let luzEncendida = true;console.log("¿Está la luz encendida?", luzEncendida);console.log("¿Está la luz apagada?", !luzEncendida);📝 Resumen
| Operador | Símbolo | Descripción | Ejemplo | Resultado |
|---|---|---|---|---|
| AND | && | Devuelve true solo si ambas condiciones son true. | true && true | true |
| OR | || | Devuelve true si al menos una condición es true. | true || false | true |
| NOT | ! | Invierte el valor de la condición (true → false, false → true). | !true | false |
☝️🤓
🏋️♂️ Ejercicio
Un videojuego solo permite jugar en modo multijugador si se cumplen estas dos condiciones:
- El jugador tiene una suscripción activa (
tieneSuscripcion === true) - La conexión a internet es estable (
conexionEstable === true)
Usa && para verificar si puede jugar en multijugador.
let tieneSuscripcion = true;let conexionEstable = false;
let puedeJugarMultijugador = ____; // Completa usando &&console.log("¿Puede jugar en multijugador?", puedeJugarMultijugador);🏋️♂️ Ejercicio
Una aplicación de delivery te notifica si ocurre al menos una de estas situaciones:
- Tu pedido está listo (
pedidoListo === true) - El repartidor está cerca (
distanciaRepartidor < 1)
Usa || para determinar si debes recibir una notificación.
let pedidoListo = false;let distanciaRepartidor = 0.5; // kilómetros
let mostrarNotificacion = ____; // Completa usando ||console.log("¿Mostrar notificación?", mostrarNotificacion);🏋️♂️ Ejercicio
Un juego de cartas necesita verificar si una carta no es un comodín (esComodin === false).
Usa ! para determinar si la carta no es un comodín.
let esComodin = true;
let cartaNormal = ____; // Completa usando !console.log("¿Es una carta normal?", cartaNormal);🚀 Extra
Investiga y responde:
- ¿Cómo se comportan los operadores lógicos con valores que no son booleanos?
- ¿Qué es la evaluación de cortocircuito (short-circuit evaluation)?
Condicionales
🧭 Toma de decisiones en programación
Los condicionales son instrucciones que permiten a nuestros programas adaptarse y responder según diferentes situaciones, similar a cómo tomamos decisiones cotidianas.
Analogía
Piensa en los condicionales como un chef preparando un platillo según las preferencias del cliente:
- Si el cliente es vegetariano, preparamos un plato sin carne
- Si el cliente tiene alergias, evitamos ciertos ingredientes
- Si no hay restricciones especiales, preparamos el plato regular
De la misma manera, nuestro código puede realizar diferentes acciones según las condiciones.
Existen distintos modos de crear condicionales:
if,elseyelse if- para decisiones simples y múltiples- Operador ternario - para decisiones rápidas y sencillas
switch- para múltiples opciones específicas
🔄 Estructuras Condicionales Básicas
🚦 if
La palabra if significa si…, como en: Si limpias tu cuarto, puedes seguir estudiando programación
Cuando queremos crear una acción que sólo ocurra bajo ciertas condiciones, podemos usar esta instrucción:
En código se ve algo así:
if (condicion) { // Instrucción que se ejecuta si la condición es verdadera}Analogía
Imagina que tienes un perrito y quieres darle un premio:
- Si el perrito se sienta cuando se lo pides, le das una galleta
De la misma manera, nuestro código puede ejecutar acciones cuando se cumple una condición.
Por ejemplo:
let perritoSentado = true; // El perrito está sentado
if (perritoSentado) { console.log("¡Buen chico! Aquí tienes tu galleta 🦴");}En este ejemplo, si el perrito está sentado (la condición es verdadera), mostraremos un mensaje de felicitación y le daremos su premio.
🔀 else
La palabra else significa en otro caso, como en: Si limpias tu cuarto, puedes jugar. En otro caso, te quito el internet.
Nos ayuda a crear una instrucción que se ejecutará por defecto si es que no se cumple la condición de if:
La anatomía del código es la siguiente:
if (condicion) { // Instrucción que se ejecuta si la condición es verdadera} else { // Instrucción que se ejecuta si la condición es falsa}Analogía
Piensa en un semáforo:
- Si la luz está verde, los autos pueden avanzar
- En otro caso (luz roja), los autos deben detenerse
De la misma manera, nuestro código puede tomar dos caminos diferentes según una condición.
Por ejemplo:
let luzVerde = false; // El semáforo está en rojo
if (luzVerde) { console.log("¡Adelante! Puedes avanzar 🚗");} else { console.log("¡Alto! Debes detenerte 🛑");}En este ejemplo, como el semáforo está en rojo (luzVerde es false), el código mostrará el mensaje de alto.
🔄 else if
La frase else if significa de lo contrario si…, aunque es más sencillo pensarlo como … o si…. Como en el siguiente escenario:
- Si limpias tu cuarto, puedes…
- …o si lavas los trastes, puedes…
- …en otro caso, te quito el internet
Nos ayuda a crear más caminos dentro de estas decisiones.
La anatomía del código es la siguiente:
if (condicion1) { // Instrucción que se ejecuta si la condición1 es verdadera} else if (condicion2) { // Instrucción que se ejecuta si la condición2 es verdadera} else { // Instrucción que se ejecuta si ninguna condición es verdadera}Podemos agregar tantas condiciones else if como necesitemos para crear
diferentes caminos en nuestro programa.
Analogía
Piensa en un videojuego donde tu personaje obtiene diferentes poderes según lo que recoge:
- Si recoge una estrella, se vuelve invencible
- O si recoge una flor, puede lanzar fuego
- O si recoge un hongo, se hace más grande
- En otro caso, mantiene sus habilidades normales
De la misma manera, el código puede tomar diferentes caminos según las condiciones que se cumplan.
Por ejemplo:
let poder = "estrella";
if (poder === "estrella") { console.log("¡Eres invencible! ⭐");} else if (poder === "flor") { console.log("¡Puedes lanzar fuego! 🔥");} else if (poder === "hongo") { console.log("¡Te has hecho más grande! 🍄");} else { console.log("Tienes habilidades normales 🚶");}En casos de múltiples caminos es recomendable usar la estructura switch. La
veremos al final de este artículo.
❓ Operador ternario
Existe una forma mucho más corta de usar un if + else. Le llamamos operador ternario.
Su anatomía se ve así:
condicion ? casoVerdadero : casoFalso;- La condición va antes del signo de interrogación
? - El primer valor (después del
?) es el resultado si la condición es verdadera - El segundo valor (después del
:) es el resultado si la condición es falsa
Analogía
El operador ternario es como hacer una pregunta rápida con dos posibles respuestas:
¿Está lloviendo? Entonces llevo paraguas, si no, llevo gafas de sol
Por ejemplo:
let estaLloviendo = true;
let queLlevar = estaLloviendo ? "Llevo paraguas ☂️" : "Llevo gafas de sol 😎";
console.log(queLlevar);Llevo paraguas ☂️🔄 switch
La palabra switch viene del inglés y significa “interruptor” o “selector”.
Cuando tenemos distintos “caminos” para nuestro código es preferible utilizar la estructura switch, esta nos permite crear múltiples casos de una forma más estructurada.
La anatomía se ve de la siguiente manera:
switch (expresion) { case valor1: // Instrucciones para caso 1 break; case valor2: // Instrucciones para caso 2 break; default: // Instrucciones para los casos restantes}Los elementos principales son:
switch (expresion): Evalúa una expresión para saber qué caso ejecutarcase valorN: Define el valor a comparar con la expresiónbreak: Evita que el código continúe ejecutando los casos siguientesdefault: Se ejecuta cuando ningún caso coincide con la expresión
Analogía
Imaginemos que estamos eligiendo qué ver en streaming según nuestro estado de ánimo:
- Si tienes ganas de reír -> Abres ComedyFlix 🎭
- Si quieres suspenso -> Vas a MysteryPrime 🔍
- Si prefieres acción -> Entras a ActionMax 💥
- Si ninguna aplica -> Reproduces tendencias de TikTok 🎵
El switch sería como el menú para seleccionar el contenido adecuado.
let plataforma = "ComedyFlix";
switch (plataforma) { case "ComedyFlix": console.log("▶️ Reproduciendo 'Cómo conocí a tu meme'"); break; case "MysteryPrime": console.log("🔦 Iniciando 'El misterio del WiFi perdido'"); break; case "ActionMax": console.log("💣 Cargando 'John Wick: La venganza del examen final'"); break; default: console.log("🔄 Seleccionando videos virales del momento...");}También es posible que haya lógica donde varios casos comparten las mismas instrucciones:
let dia = "Martes";
switch (dia) { case "Lunes": case "Miércoles": console.log("📚 Día de estudio en la biblioteca"); break; case "Martes": case "Jueves": console.log("🏀 Práctica de deportes después de clase"); break; case "Viernes": console.log("🎉 ¡Noche de juegos con amigos!"); break; default: console.log("😴 Descanso en casa");}☝️🤓
🏋️♂️ Ejercicio
Crea un programa que determine si una persona puede conducir basándose en su edad:
- Si es menor de 16 años, muestra “Muy joven para conducir”
- Si tiene entre 16 y 17 años, muestra “Puede obtener un permiso de aprendizaje”
- Si tiene 18 años o más, muestra “Puede obtener una licencia completa”
Utiliza la estructura if-else para resolverlo.
🏋️♂️ Ejercicio
Crea un sistema de logros para un juego:
- El jugador tiene una puntuación almacenada en la variable
puntuacion - Usa el operador ternario para asignar ”🏆 Experto” si la puntuación es mayor a 100, o ”🎮 Novato” si es menor o igual
🏋️♂️ Ejercicio
Crea un sistema de menú para una cafetería:
- La variable
opcioncontiene un número del 1 al 4 - Opción 1: ”☕ Café”
- Opción 2: ”🫖 Té”
- Opción 3: ”🧃 Jugo”
- Opción 4: ”🥤 Refresco”
- Cualquier otra opción: ”❌ Opción no válida”
Utiliza la estructura switch para mostrar la bebida seleccionada.
🚀 Extra
- Encuentra 3 ejemplos de formularios web que usen condicionales (como validación de edad o contraseñas)
- Observa cómo las aplicaciones de clima cambian su interfaz según la condición meteorológica
- Identifica cómo los juegos online usan condicionales para determinar si ganaste o perdiste
Mini Proyecto: Juego de Adivinanza de Números
¡Pongamos en práctica lo aprendido! En este mini proyecto, crearás un juego interactivo simple. El objetivo es que el usuario adivine un número secreto que tú definirás. Usaremos variables, pediremos datos al usuario y usaremos condicionales para darle pistas.
🎯 Objetivo
Desarrollar un script que:
- Tenga un número secreto predefinido.
- Pida al usuario que intente adivinar ese número.
- Le diga al usuario si su intento fue muy alto, muy bajo o correcto.
💡 Conceptos a Utilizar
Para este ejercicio, necesitarás recordar y aplicar:
- Variables (
let,const) - Tipos de dato (
number,string) - Entrada del usuario (
prompt) - Conversión de tipos (
Number()) - Operadores de comparación (
===,>,<) - Condicionales (
if,else if,else) - Mostrar salida (
alertoconsole.log)
👣 Pasos
- Define el número secreto: Guarda el número a adivinar en una constante (por ejemplo,
const numeroSecreto = 42;). - Pide la entrada al usuario: Usa
prompt()para preguntarle al usuario por un número. Guarda su respuesta en una variable. - Convierte la entrada: Recuerda que
prompt()devuelve unstring. Conviértelo anumberusandoNumber()para poder hacer comparaciones numéricas. - Compara los números: Utiliza
if,else ifyelsepara comparar el número del usuario con tu número secreto. - Muestra el resultado:
- Si acierta, felicítalo con un
alert(). - Si su número es mayor, indícale que es muy alto.
- Si su número es menor, indícale que es muy bajo.
- (Opcional) Considera qué pasa si el usuario no ingresa un número válido.
- Si acierta, felicítalo con un
🤔 Pista
// 1. Define el número secretoconst numeroSecreto = 42; // ¡Puedes cambiar este número!
// 2. Pide la entrada al usuarioconst intentoUsuarioStr = prompt("Adivina el número secreto (entre 1 y 100):");
// 3. Convierte la entrada a númeroconst intentoUsuario = Number(intentoUsuarioStr);
// 4. y 5. Compara y muestra el resultadoif (intentoUsuario === numeroSecreto) { alert("¡Felicidades! 🎉 Adivinaste el número secreto.");} else if (intentoUsuario > numeroSecreto) { alert("Tu número es muy alto. ¡Sigue intentando! 📈");} else if (intentoUsuario < numeroSecreto) { alert("Tu número es muy bajo. ¡Sigue intentando! 📉");} else { // Opcional: Manejar casos donde la entrada no es un número válido alert( "🤔 Parece que no ingresaste un número. Por favor, intenta de nuevo con un número.", );}
// Es útil mostrar los valores en la consola para depurarconsole.log("Número secreto era:", numeroSecreto);console.log("Tu intento fue:", intentoUsuario);☝️🤓
🏋️♂️ Ejercicio
¿Cómo podrías hacer que el numeroSecreto se genere aleatoriamente cada vez
que se ejecuta el script, en lugar de ser siempre el mismo? Esto haría el
juego más rejugable. (Pista: Investiga sobre Math.random() y Math.floor()
en JavaScript).
🚀 Extra
Busca cómo puedes asegurarte de que el usuario realmente ingresó un número
antes de intentar convertirlo y compararlo. ¿Qué pasa si el usuario escribe
“hola” o cancela el prompt? Investiga sobre isNaN().
Ciclos
Los ciclos nos permiten repetir una acción varias veces sin tener que escribir el mismo código.
Son herramientas fundamentales que nos ayudan a automatizar tareas repetitivas de forma eficiente.
Analogía
Imagina una máquina en una fábrica de botellas. La máquina realiza el mismo proceso una y otra vez:
- Toma el plástico
- Lo moldea
- Lo enfría
La máquina repite estos pasos miles de veces sin detenerse, produciendo botellas idénticas de manera eficiente.
Los ciclos en programación funcionan igual: ejecutan el mismo conjunto de instrucciones múltiples veces.
En JavaScript existen tres formas básicas de usarlos:
while: Se repite mientras una condición seatrue.do...while: Se ejecuta al menos una vez, luego se repite mientras una condición siga siendotrue.for: Se usa cuando sabemos cuántas veces queremos repetir algo.
🔄 Ciclos while: Repetición condicional
🔬 Anatomía
La anatomía de un ciclo while es la siguiente:
while (condicion) { // Instrucciones a repetir mientras // la condición sea verdadera}condición: Es una expresión que se evalúa a verdadero o falso{}: Contiene el código que se repetirá
Podríamos leerlo como: Mientras condición sea verdadera, haz {instrucciones}.
🔍 Control de calidad
Analogía
Piensa en una máquina de control de calidad que inspecciona productos.
Mientras encuentre defectos en las piezas, seguirá rechazándolas y revisando la siguiente.
Solo cuando una pieza pasa el control, la máquina detiene su ciclo de inspección.
let piezaDefectuosa = true;let intentos = 0;
while (piezaDefectuosa && intentos < 3) { console.log(`Revisando pieza #${intentos + 1}`); piezaDefectuosa = Math.random() < 0.5; // 50% de probabilidad de defecto intentos++;}
console.log(piezaDefectuosa ? "Lote rechazado" : "Pieza aprobada");Revisando pieza #1Revisando pieza #2Pieza aprobadaMath.random() es una función que nos ayuda a generar un número aleatorio
entre el 0 y el 1.
Viene por defecto en JavaScript, como console.log() y otras utilidades.
✅ Ciclos do...while: Ejecución garantizada
🔬 Anatomía
La anatomía de un ciclo do...while es la siguiente:
do { // Instrucciones que se ejecutan al menos una vez // y se repiten si la condición es verdadera} while (condicion);do: Hace referencia a que la acción se ejecuta al menos una vez{}: Contiene las instrucciones que se ejecutaránwhile (condicion): Define si el ciclo continúa
Podríamos leerlo como: Haz {instrucciones} y mientras condición se cumpla.
🧪 Pruebas de producto
Analogía
Imagina una máquina de pruebas que siempre realiza al menos una verificación completa del producto.
Solo después de completar la primera prueba, decide si debe continuar con más ciclos de prueba.
let pruebaPasada;let intentos = 0;
do { console.log(`Ejecutando prueba #${++intentos}`); pruebaPasada = Math.random() >= 0.3; // 70% de probabilidad de éxito console.log(pruebaPasada ? "✅ Prueba exitosa" : "❌ Prueba fallida");} while (!pruebaPasada && intentos < 3);Ejecutando prueba #1❌ Prueba fallidaEjecutando prueba #2✅ Prueba exitosa✔ Diferencia clave con while:
El do...while se ejecuta al menos una vez, incluso si la condición ya es false en la primera iteración.
🔢 Ciclos for: Iteración controlada
🔬 Anatomía
La anatomía de un ciclo for es la siguiente:
for (inicializacion; condicion; actualizacion) { // Instrucciones a repetir mientras // la condición sea verdadera}inicializacion: Crea el estado inicial de una variablecondicion: Se evalúa antes de ejecutar las instruccionesactualizacion: Cambia el estado de la variable al completar las instrucciones{}: Contiene el código que se repetirá
Podríamos leerlo como: Para inicializacion, mientras condicion sea verdadera, haz {instrucciones} y luego actualizacion.
📦 Empacado automático
Analogía
Como una máquina empacadora programada para colocar exactamente 5 productos en cada caja.
La máquina tiene un contador interno que sabe exactamente cuántas veces debe repetir la operación antes de pasar a la siguiente caja.
const PRODUCTOS_POR_CAJA = 5;let productosEmpacados = 0;
for (let i = 0; i < PRODUCTOS_POR_CAJA; i++) { console.log(`Empacando producto #${i + 1} en la caja`); productosEmpacados++;}
console.log(`✅ Caja completa con ${productosEmpacados} productos`);Empacando producto #1 en la cajaEmpacando producto #2 en la cajaEmpacando producto #3 en la cajaEmpacando producto #4 en la cajaEmpacando producto #5 en la caja✅ Caja completa con 5 productosCuando utilizamos for, la variable i es una variable auxiliar que se crea
solo para el ciclo.
En este ejemplo:
- El ciclo crea una variable auxiliar llamada
ique comienza en0. - Realiza una evaluación para saber si
ies menor que5 - Ejecuta las instrucciones en caso de que sea
true. - Incrementa en
1(i++) después de cada ejecución
Cuando usamos ciclos, le llamamos iteración a cada repetición o vuelta que da el ciclo. Por ejemplo, si un ciclo se ejecuta 5 veces, decimos que realizó 5 iteraciones.
📝 Resumen
| Tipo de ciclo | ¿Cuándo usarlo? | ¿Se ejecuta al menos una vez? |
|---|---|---|
while | Para repetir algo hasta que se cumpla una condición. | ❌ No necesariamente |
do...while | Para garantizar que algo se ejecute al menos una vez antes de verificar una condición. | ✅ Sí, siempre una vez |
for | Para repetir algo un número específico de veces. | ❌ No necesariamente |
☝️🤓
🏋️♂️ Ejercicio
Usa un ciclo for para imprimir números del 10 al 100 en incrementos de 10.
// Rellena los espacios con la información correctafor (____; ____; ____) { console.log(i);}🏋️♂️ Ejercicio
Crea un ciclo while que pida números al usuario hasta que ingrese un número mayor a 100.
let numero = ____; // Inicializa con prompt() para pedir un valor
// Condición: mientras el número sea menor o igual a 100while (____) { // Por ejemplo: numero <= 100 // Pide un nuevo número al usuario numero = ____; // Sobreescribe con prompt()}
alert("¡Número válido!");🏋️♂️ Ejercicio
Crea un ciclo do...while para un juego de adivinanzas que siempre dé al menos un intento al usuario.
let respuesta;
do { respuesta = prompt(___); // "Tu adivinanza va aquí"} while (respuesta !== ___); // La respuesta a la adivinanza va aquí
alert("¡Correcto! La respuesta es ___."); // La respuesta correcta va aquí también🚀 Extra
Investiga sobre aplicaciones prácticas de los ciclos en el mundo real:
-
Encuentra tres ejemplos de tareas cotidianas que podrías automatizar usando ciclos en JavaScript.
Pista: Piensa en tareas simples como contar números, sumar valores o mostrar mensajes repetitivos.
-
¿Cómo se utilizan los ciclos para crear animaciones en páginas web?
Pista: Busca información sobre cómo las animaciones utilizan ciclos para actualizar la pantalla muchas veces por segundo.
-
¿De qué manera los videojuegos utilizan ciclos para funcionar?
Pista: Investiga sobre el “game loop” (ciclo de juego) y cómo permite que los juegos se actualicen constantemente.
Arreglos
Los arreglos (o Array) son una forma de guardar varios datos juntos en una misma variable.
💡 En algunos lenguajes de programación, a los arreglos se les llama listas (Lists).
Analogía
Podemos imaginarlos como los casilleros que encontramos en una tienda de autoservicio. Guardan nuestras pertenencias y nos dan un número para recogerlas.
En programación, los arreglos funcionan de manera similar: nos permiten guardar múltiples datos en una sola estructura.
🔲 Un arreglo vacío
Para crear un arreglo vacío, simplemente usamos corchetes []:
const miArregloVacio = [];Por ahora, no contiene ningún dato, pero está listo para que guardemos información en él. Es como tener una caja de almacenamiento vacía esperando a ser llenada.
📋 Un arreglo con valores iniciales
También podemos crearlo con datos desde el principio:
const miColeccionDeLetras = ["A", "B", "C"];Aquí hemos creado un arreglo con tres elementos.
Cada elemento del arreglo tiene asignado un número al cual llamamos índice (index).
🔎 Accediendo a los elementos de un arreglo
Para acceder a un dato dentro del arreglo, usamos la notación de corchetes ([]) indicando el número de casillero que queremos.
Para acceder al primer elemento guardado podemos usar la siguiente notación:
console.log(miColeccionDeLetras[0]);AEn este caso 0 es el lugar o la posición del primer elemento.
En la vida real estamos acostumbrados a comenzar a contar desde el número 1.
En programación, para este tipo de estructuras de datos, usualmente se empieza a contar desde el 0.
Si queremos acceder al siguiente elemento podemos usar 1 y así sucesivamente…
console.log(miColeccionDeLetras[1]);BSe vería algo así
| Índice | 0 | 1 | 2 | … |
|---|---|---|---|---|
| Valor | ”A" | "B" | "C” | … |
📏 Contando elementos en un arreglo
Todos los arreglos tienen una característica que nos permite saber cuántos elementos hay dentro de ellos.
Para acceder a ella debemos usar la notación punto (.) seguida del nombre de esta propiedad: length.
La palabra length significa longitud aunque para usos prácticos podemos
llamarlo tamaño
Analogía
Contar los elementos de un arreglo es como contar cuántos libros hay en un estante. No necesitas revisar cada libro, simplemente cuentas cuántos espacios están ocupados.
En programación, length hace exactamente eso: te dice cuántos “espacios” están ocupados en tu arreglo sin tener que revisar cada elemento individualmente.
Veamos un ejemplo con una lista de frutas:
let frutas = ["Manzana", "Banana", "Naranja", "Uva"];
console.log(frutas.length);4Esto significa que el arreglo frutas tiene 4 elementos.
🔄 Recorriendo un arreglo
Cuando trabajamos con arreglos, a menudo necesitamos acceder a cada uno de sus elementos.
Podemos hacerlo usando un ciclo for:
const colores = ["rojo", "verde", "azul", "amarillo"];
for (let i = 0; i < colores.length; i++) { console.log(`Color ${i + 1}: ${colores[i]}`);}Color 1: rojoColor 2: verdeColor 3: azulColor 4: amarilloEste patrón es muy común en programación y nos permite procesar cada elemento del arreglo uno por uno.
☝️🤓
🏋️♂️ Ejercicio
- Crea un arreglo vacío llamado
miLista - Imprime el arreglo en la consola para verificar que está vacío
🏋️♂️ Ejercicio
- Crea un arreglo llamado
diasSemanaque contenga los días “Lunes”, “Martes” y “Miércoles” - Imprime el primer día (recuerda que los índices empiezan en 0)
- Imprime el último día del arreglo
🏋️♂️ Ejercicio
- Crea un arreglo
numeroscon los valores [10, 20, 30, 40, 50] - Usando los índices correctos, imprime: el primer número, el tercer número y el último número
🏋️♂️ Ejercicio
- Crea un arreglo
animalescon al menos 4 nombres de animales - Usa la propiedad
lengthpara: - Imprimir cuántos animales hay en total - Imprimir el último animal del arreglo usando
length
🏋️♂️ Ejercicio
- Crea un arreglo
calificacionescon 5 números entre 0 y 10 - Usa un ciclo
forpara: - Imprimir cada calificación con su número de posición
- Ejemplo: “Calificación 1: 8”
🚀 Extra
Investiga sobre otros métodos útiles para trabajar con arreglos en JavaScript:
- ¿Cómo podemos agregar elementos al final de un arreglo?
- ¿Cómo podemos eliminar el último elemento de un arreglo?
- ¿Existe alguna forma de convertir un arreglo en texto separado por comas?
Mini Proyecto: Lista de Tareas Básica
🎯 Objetivo
Desarrollar un script que permita crear una lista de tareas, agregar nuevas tareas y mostrar todas las tareas existentes utilizando arreglos.
💡 Conceptos a Utilizar
- Variables (
let,const) - Tipos de dato (
string,number) - Arreglos (
[]) - Métodos básicos de arreglos (ej:
pushpara agregar, aunquecmcp-modificando-arreglosviene después, podemos introducirpushaquí o pedir que reasignen el arreglo) - Ciclos (
for) - Concatenación de cadenas
- Mostrar salida (
console.log) - Entrada del usuario (
prompt- opcional, para agregar tareas dinámicamente)
👣 Pasos
- Crea un arreglo vacío: Declara una variable (ej:
listaTareas) y asígnale un arreglo vacío[]para almacenar las tareas. - Agrega tareas iniciales: Añade algunas tareas (como strings) directamente al arreglo al inicializarlo o usando el método
push(si se introduce).- Ejemplo:
let listaTareas = ["Aprender JavaScript", "Hacer ejercicio"]; - O usando
push:listaTareas.push("Leer un libro");
- Ejemplo:
- Muestra las tareas: Usa un ciclo
forpara recorrer el arreglolistaTareas. - Dentro del ciclo: Por cada tarea en el arreglo, usa
console.logpara mostrarla en la consola. Puedes incluir el número de la tarea (índice + 1).
🤔 Pista
// 1. Crea un arreglo (con tareas iniciales)let listaTareas = ["Lavar los platos", "Pasear al perro"];
// 2. Agrega más tareas (opcional)listaTareas.push("Estudiar arreglos");listaTareas.push("Comprar víveres");
// 3. y 4. Muestra las tareas usando un cicloconsole.log("--- Mi Lista de Tareas ---");for (let i = 0; i < listaTareas.length; i++) { // Muestra el número de tarea (índice + 1) y la tarea console.log(i + 1 + ". " + listaTareas[i]);}☝️🤓
🏋️♂️ Ejercicio
¿Cómo podrías usar prompt para permitir al usuario escribir nuevas tareas y
agregarlas a la listaTareas hasta que escriba una palabra clave como “fin” o
“salir”?
🚀 Extra
¿Cómo podrías permitir al usuario eliminar una tarea específica de la lista?
Investiga sobre métodos de arreglo como splice o filter que podrían
ayudarte.
Modificando arreglos
Ahora sabemos que los arreglos nos permiten almacenar múltiples valores en una sola variable.
Nos toca aprender a modificarlos: agregando, eliminando o cambiando sus elementos según necesitemos.
Analogía
Piensa en un arreglo como una estantería con cajones numerados. Cada cajón puede guardar un objeto, y podemos:
- Cambiar lo que hay en un cajón específico
- Agregar un nuevo cajón al inicio o al final
- Quitar el primer o último cajón
Esto es exactamente lo que hacemos cuando modificamos un arreglo en JavaScript.
🔄 Sobreescritura
Si queremos cambiar el valor de alguna posición, podemos usar la notación de corchetes y asignar un nuevo valor:
let miArreglo = ["Hola", "desde", "un", "arreglo"];miArreglo[2] = "otro";console.log(miArreglo);["Hola", "desde", "otro", "arreglo"]Los arreglos tienen distintas características que nos pueden ayudar a modificarlos.
En términos técnicos les llamamos métodos (methods), la forma de usarlos es mediante la notación punto (.).
➕ Para agregar valores
Agregando al final con push()
Podemos acceder al método push() de un arreglo para agregar un elemento al final.
let miArreglo = ["Hola", "desde", "un", "arreglo"];miArreglo.push("editado");console.log(miArreglo);["Hola", "desde", "un", "arreglo", "editado"]Agregando al inicio con unshift()
Si queremos agregar un elemento al inicio del arreglo, usamos unshift():
let miArreglo = ["Hola", "desde", "un", "arreglo"];miArreglo.unshift("¡Nuevo!");console.log(miArreglo);["¡Nuevo!", "Hola", "desde", "un", "arreglo"];➖ Para borrar valores
Borrando el último con pop()
Podemos acceder al método pop() de un arreglo para eliminar el último elemento:
let miArreglo = ["Hola", "desde", "un", "arreglo"];miArreglo.pop();console.log(miArreglo);["Hola", "desde", "un"]Borrando el primero con shift()
Si queremos eliminar el primer elemento, usamos shift():
let miArreglo = ["Hola", "desde", "un", "arreglo"];miArreglo.shift();console.log(miArreglo);["desde", "un", "arreglo"]Existen más maneras de modificar arreglos, pero por ahora sólo veremos esas.
📝 Resumen
| Método | Sintaxis | Descripción |
|---|---|---|
| Sobreescritura | arreglo[índice] = valor | Cambia el valor en una posición específica del arreglo |
push() | arreglo.push(valor) | Agrega un elemento al final del arreglo |
unshift() | arreglo.unshift(valor) | Agrega un elemento al inicio del arreglo |
pop() | arreglo.pop() | Elimina y devuelve el último elemento del arreglo |
shift() | arreglo.shift() | Elimina y devuelve el primer elemento del arreglo |
☝️🤓
🏋️♂️ Ejercicio
Sobreescribiendo valores
- Tienes un arreglo con los días de la semana en inglés.
- Cambia “Wednesday” por “Miércoles”.
- Cambia “Friday” por “Viernes”.
let diasSemana = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
// Completa el código aquídiasSemana[__] = "________";diasSemana[__] = "________";
console.log(diasSemana);🏋️♂️ Ejercicio
Agregando elementos
- Tienes un arreglo con una lista de frutas.
- Agrega “Manzana” al inicio usando unshift().
- Agrega “Uvas” al final usando push().
let frutas = ["Plátano", "Naranja", "Pera"];
// Completa los métodos necesarios aquífrutas.______("______");frutas.______("______");
console.log(frutas);🏋️♂️ Ejercicio
Eliminando elementos
- Tienes un arreglo con una lista de colores.
- Elimina el primer color usando shift().
- Elimina el último color usando pop().
let colores = ["Rojo", "Verde", "Azul", "Amarillo"];
// Completa los métodos necesarios aquícolores._____();colores._____();
console.log(colores);🚀 Extra
Nos toca investigar qué otros métodos existen para los arreglos.
¿Cuál nos sirve para modificar elementos en posiciones específicas dentro de un arreglo? No sólo al inicio y al final.
Objetos
📦 ¿Qué son los objetos?
Los objetos son una forma de agrupar datos relacionados en un solo lugar.
Analogía
Piensa en un perfil de red social:
- Contiene información organizada sobre una persona
- Cada dato tiene su etiqueta (nombre de usuario, biografía, contacto)
- Puedes acceder a cualquier información buscando su etiqueta
Los objetos en JavaScript funcionan de manera similar: organizan información relacionada con etiquetas (propiedades) para acceder fácilmente a ella.
🔬 Anatomía de un objeto
Los objetos están compuestos por elementos a los que llamamos entradas (entries).
A su vez, cada entrada tiene dos partes: una llave (key) y un valor (value).
A la llave o key también se le conoce como propiedad
👤 Creando un perfil de red social
Volviendo a la analogía principal, podemos crear un perfil con el código siguiente:
var perfilSocial = { nombreUsuario: "usuario1", biografia: "Apasionado por la programación", seguidores: 1250, verificado: true,};🔍 ¿Cómo acceder a los valores de un objeto?
🔸 Notación punto (.)
Para acceder a los datos que se encuentran dentro del objeto podemos usar algo que llamamos notación punto.
Si queremos acceder al nombreUsuario, haríamos algo como:
console.log(perfilSocial.nombreUsuario);usuario1🔸 Notación de corchetes ([])
También podemos usar la notación de corchetes:
console.log(perfilSocial["seguidores"]);1250Aunque esta notación la usamos para acceder a propiedades que tienen espacios o caracteres especiales en su nombre, como en este otro ejemplo:
let perfilSocial = { "información de contacto": "usuario@ejemplo.com", "redes-sociales": "@usuario1",};
// Accediendo a las propiedades con corchetesconsole.log(perfilSocial["información de contacto"]); // "usuario@ejemplo.com"console.log(perfilSocial["redes-sociales"]); // "@usuario1"📌 ¿Por qué usar corchetes en estos casos?
-
Si intentamos acceder con
perfilSocial.información de contacto, JavaScript dará error porque los espacios no son válidos en notación de punto. -
Con
perfilSocial["información de contacto"]podemos acceder sin problemas.
💡 También podemos usar variables como llaves en la notación de corchetes:
let datoDeseado = "información de contacto";console.log(perfilSocial[datoDeseado]); // "usuario@ejemplo.com"☝️🤓
🏋️♂️ Ejercicio
Crea un objeto llamado producto que contenga las siguientes propiedades:
nombre: “Laptop”precio: 1200disponible: truecaracterísticas: [“8GB RAM”, “256GB SSD”, “15.6 pulgadas”]
Luego, muestra el objeto completo en la consola.
Ver solución
let producto = { nombre: "Laptop", precio: 1200, disponible: true, características: ["8GB RAM", "256GB SSD", "15.6 pulgadas"]};
console.log(producto);🏋️♂️ Ejercicio
Usando el siguiente objeto:
let persona = { nombre: "Carlos", apellido: "Gómez", edad: 28, profesion: "Desarrollador"};Utiliza la notación punto para:
- Mostrar el nombre completo (nombre y apellido) en la consola
- Cambiar la edad a 29
- Mostrar la profesión en la consola
Ver solución
// 1. Mostrar nombre completoconsole.log(persona.nombre + " " + persona.apellido);
// 2. Cambiar la edadpersona.edad = 29;
// 3. Mostrar profesiónconsole.log(persona.profesion);🏋️♂️ Ejercicio
Dado el siguiente objeto con propiedades que contienen espacios:
let ficha = { "nombre completo": "Ana María López", "fecha de nacimiento": "15-05-1995", "lugar de residencia": "Barcelona"};- Utiliza la notación de corchetes para mostrar el nombre completo
- Crea una variable llamada
propiedadcon el valor “lugar de residencia” y úsala para acceder a esa propiedad - Añade una nueva propiedad llamada “código postal” con el valor “08001”
Ver solución
// 1. Mostrar nombre completoconsole.log(ficha["nombre completo"]);
// 2. Usar variable para acceder a propiedadlet propiedad = "lugar de residencia";console.log(ficha[propiedad]);
// 3. Añadir nueva propiedadficha["código postal"] = "08001";🚀 Extra
- ¿Qué sucede si intentas acceder a una propiedad que no existe en un objeto?
- ¿Cómo se puede verificar si una propiedad existe dentro de un objeto en
JavaScript? - ¿Qué hace el método
Object.keys(objeto)y para qué sirve?
Mini Proyecto: Inventario de Tienda
🎯 Objetivo
Crear una estructura de datos simple para representar productos en un inventario de tienda utilizando objetos y mostrar la información de cada producto.
💡 Conceptos a Utilizar
- Variables (
let,const) - Tipos de dato (
string,number,boolean) - Arreglos (
[]) - Objetos (
{}) - Acceso a propiedades de objetos (notación de punto
.) - Ciclos (
for) - Concatenación de cadenas
- Mostrar salida (
console.log)
👣 Pasos
- Crea un arreglo para el inventario: Declara una variable (ej:
inventario) y asígnale un arreglo vacío[]. - Define objetos de producto: Crea al menos 3 objetos, cada uno representando un producto. Cada objeto debe tener propiedades como
nombre(string),precio(number) yenStock(boolean).- Ejemplo de un objeto producto:
{nombre: "Laptop",precio: 1200,enStock: true}
- Ejemplo de un objeto producto:
- Agrega los productos al inventario: Añade los objetos de producto que creaste al arreglo
inventario(puedes usarpush). - Muestra el inventario: Usa un ciclo
forpara recorrer el arregloinventario. - Dentro del ciclo: Por cada objeto
productoen el inventario, usaconsole.logpara mostrar sus propiedades (nombre, precio, si está en stock) de forma legible.
🤔 Pista
// 1. Crea un arreglo para el inventarioconst inventario = [];
// 2. Define objetos de productoconst producto1 = { nombre: "Teclado Mecánico", precio: 75, enStock: true,};
const producto2 = { nombre: "Mouse Inalámbrico", precio: 25, enStock: false,};
const producto3 = { nombre: "Monitor 24 pulgadas", precio: 180, enStock: true,};
// 3. Agrega los productos al inventarioinventario.push(producto1);inventario.push(producto2);inventario.push(producto3);
// 4. y 5. Muestra el inventarioconsole.log("--- Inventario de la Tienda ---");for (let i = 0; i < inventario.length; i++) { const producto = inventario[i]; // Accede al objeto actual console.log("Producto: " + producto.nombre); console.log("Precio: $" + producto.precio); console.log("En Stock: " + (producto.enStock ? "Sí" : "No")); // Operador ternario para mostrar 'Sí' o 'No' console.log("-----------------------------");}☝️🤓
🏋️♂️ Ejercicio
¿Cómo podrías modificar el script para calcular y mostrar el valor total del
inventario (la suma del precio de todos los productos que están enStock)?
🚀 Extra
Además de push, ¿qué otros métodos de arreglo podrían ser útiles para
manejar un inventario? Investiga sobre find, filter y map.
Modificando objetos
Analogía
Imagina que tienes un perfil en una red social.
Este perfil contiene información sobre ti, como tu nombre de usuario, edad y ubicación. Y habrá ocasiones donde necesites actualizar esta información.
Los objetos en JavaScript funcionan de manera similar.
🔄 Modificando datos existentes
Hay dos formas principales de modificar los datos de un objeto, así como tienes dos formas de referirte a las características de algo:
🔸 Usando la notación punto (.)
let tarjeta = { nombre: "Ana", edad: 25, ciudad: "Madrid",};
// Actualizamos la edad de Anatarjeta.edad = 26;
console.log(tarjeta);{ nombre: "Ana", edad: 26, ciudad: "Madrid" }🔹 Usando la notación de corchetes ([])
A veces necesitamos usar palabras con espacios o caracteres especiales, como “fecha de nacimiento”.
En estos casos usamos corchetes, como si fuera un diccionario donde buscamos una palabra específica.
let estudiante = { "nombre completo": "María López", "número de lista": 7,};
estudiante["número de lista"] = 12;
console.log(estudiante);{ "nombre completo": "María López", "número de lista": 12 }➕ Agregando nuevos datos
También podemos agregar nueva información a nuestro objeto, como cuando agregas un nuevo sticker a tu tarjeta de identificación:
let perfil = { usuario: "gamer123", nivel: 5,};
// Agregamos una nueva propiedadperfil.puntos = 1000;
console.log(perfil);{ usuario: "gamer123", nivel: 5, puntos: 1000}❌ Eliminando propiedades
Para eliminar una propiedad de un objeto usamos el operador delete:
let usuario = { nombre: "Carlos", edad: 30,};delete usuario.edad;
console.log(usuario);{ nombre: "Carlos" }🪆 Modificando objetos anidados
A veces tenemos objetos dentro de otros objetos. Para modificarlos, usamos la notación punto varias veces:
let videojuego = { nombre: "Aventura Mágica", personaje: { nombre: "Mago", poderes: ["Fuego", "Hielo"], },};videojuego.personaje.nombre = "Hechicero";videojuego.personaje.poderes[1] = "Rayo";
console.log(videojuego);{ nombre: "Aventura Mágica", personaje: { nombre: "Hechicero", poderes: ["Fuego", "Rayo"] }}⚠️ Errores comunes
1. Intentar acceder a propiedades que no existen
let coche = { marca: "Toyota" };console.log(coche.modelo); // undefined2. Usar notación punto con nombres que tienen espacios
let persona = { "nombre completo": "Ana García" };// ❌ Esto dará errorpersona.nombre completo = "Luis López";// ✅ Usar corchetes en su lugarpersona["nombre completo"] = "Luis López";📝 Resumen
| Notación | Ejemplo | Cuándo usarla |
|---|---|---|
| Punto (.) | objeto.propiedad | Para nombres simples sin espacios |
| Corchetes ([]) | objeto["propiedad"] | Para nombres con espacios o variables |
☝️🤓
🚀 Extra
Object.assign(). Introducción a las funciones
🔧 ¿Qué son las funciones?
Las funciones son una de las herramientas más importantes en programación.
Nos permiten organizar y reutilizar nuestro código de manera eficiente.
Analogía
Las funciones son como los botones de un control remoto. Cada botón tiene un propósito específico y hace algo diferente cuando lo presionamos.
Por ejemplo, console.log() es como el botón de “mostrar información” que hace aparecer texto en la pantalla del televisor. Le damos un mensaje, presionamos el botón, y ese mensaje aparece en pantalla.
🎯 ¿Para qué usamos las funciones?
Las funciones nos ayudan a:
- Organizar nuestro código en bloques lógicos y reutilizables
- Evitar repetición de código
- Hacer nuestro código más legible y fácil de mantener
- Dividir problemas grandes en tareas más pequeñas y manejables
🔍 Identificando funciones
En JavaScript, podemos reconocer las funciones porque:
- Tienen un nombre que describe lo que hacen
- Van seguidas de paréntesis
() - Pueden recibir información para trabajar dentro de los paréntesis
()
Por ejemplo:
console.log("¡Hola mundo!");
alert("¡Bienvenido!");
Math.random();Estas son funciones que ya vienen incluidas en JavaScript y que podemos usar directamente.
Los nombres de las funciones predefinidas vienen en inglés, por lo que es importante familiarizarnos con sus traducciones o adaptaciones para recordar mejor lo que hacen.
🌎 Traduciendo funciones comunes
Aquí hay algunas traducciones de las funciones que vimos anteriormente:
console.log()
console= consola, terminallog= registro, bitácora, apuntar- En español sería:
registrarEnConsola()omostrarEnConsola()
alert()
alert= alerta, aviso, advertencia- En español sería:
mostrarAlerta()omostrarAviso()
Math.random()
Math= matemáticasrandom= aleatorio, al azar- En español sería:
númeroAleatorio()ovalorAlAzar()
Aunque traducir los nombres nos ayuda a entender mejor su función, en la práctica siempre usaremos los nombres originales en inglés al programar.
☝️🤓
🏋️♂️ Ejercicio
Observa el siguiente código e identifica:
- ¿Cuántas funciones diferentes hay?
- ¿Qué crees que hace cada una?
console.log("Iniciando programa");alert("Bienvenido");console.log(Math.random());alert("Fin del programa");🚀 Extra
¡Investiguemos más funciones!
Busca en internet y haz una lista de 3 funciones de JavaScript que no hayamos visto.
Por cada una encuentra:
- El nombre de la función
- Para qué sirve
- Un ejemplo de cómo se usa
Funciones personalizadas
📝 Creando nuestras propias funciones
Ya hemos visto cómo usar funciones existentes, ahora aprenderemos a crear las nuestras.
El proceso comienza con un código como este:
function nombreDeLaFuncion() { // Aquí va el código que queremos que ejecute // Puede ser una o varias líneas de código}Analogía
Si antes comparamos las funciones con máquinas, ahora nosotros seremos los ingenieros que las diseñan.
Primero hacemos el plano (declaración) y luego la construimos (ejecución).
🛠️ Declaración y ejecución
Veamos un ejemplo práctico:
// Declaración - Creamos el planofunction saludar() { console.log("¡Hola! Bienvenido a nuestro programa");}
// Ejecución - Ponemos la máquina a funcionarsaludar();¡Hola! Bienvenido a nuestro programa💡 Puntos importantes
- La declaración define qué hará nuestra función
- La ejecución (o llamada) hace que la función realice su tarea
- Podemos ejecutar la misma función múltiples veces en distintas partes de nuestro código
✨ Buenas prácticas
Al crear nuestras funciones, debemos:
- Usar nombres descriptivos que indiquen lo que hace la función
- Mantener cada función con una única responsabilidad
- Escribir código claro y comentado cuando sea necesario
- Probar la función para asegurarnos de que funciona correctamente
☝️🤓
🏋️♂️ Ejercicio
Vamos a crear funciones útiles:
Crea una función llamada mostrarMenu que imprima el siguiente menú:
console.log("=== MENÚ PRINCIPAL ===");console.log("1. Iniciar juego");console.log("2. Ver puntajes");console.log("3. Salir");Luego, ejecútala dos veces para ver el resultado.
🏋️♂️ Ejercicio
Crea una función llamada contarHistoria que imprima una historia corta en varios console.log:
function contarHistoria() { // Tu código aquí // Debe imprimir al menos 3 líneas de una historia}Ejecuta la función para ver tu historia.
🚀 Extra
¡Vamos a ser creativos!
Crea una función llamada dibujarFigura que use console.log para dibujar una figura simple usando caracteres ASCII. Por ejemplo, un triángulo:
* ********Ejecuta tu función para ver el resultado.
Parámetros y argumentos
📝 ¿Qué son los parámetros y argumentos?
Para hacer nuestras funciones más flexibles y reutilizables, necesitamos una forma de enviarles información. Aquí es donde entran los parámetros y argumentos.
Analogía
Si una función es como una máquina, los parámetros son como las ranuras o espacios donde podemos introducir diferentes materiales (argumentos) para que la máquina los procese.
Por ejemplo, una máquina expendedora tiene ranuras para monedas (parámetros) donde introducimos dinero real (argumentos) para obtener un producto.
La diferencia entre parámetros y argumentos
Siguiendo con nuestra analogía de la máquina:
- Los parámetros son como las ranuras o espacios que diseñamos en nuestra máquina. Por ejemplo, una ranura para monedas o un compartimento para ingredientes.
- Los argumentos son los objetos reales que introducimos en esas ranuras. Por ejemplo, las monedas específicas o los ingredientes que usamos.
🌟 Usando parámetros en la práctica
Veamos un ejemplo simple:
function saludar(nombre) { console.log("¡Hola, " + nombre + "!");}
// "Ana" y "Carlos" son los argumentos// que metemos en el parámetro nombresaludar("Ana");saludar("Carlos");¡Hola, Ana!¡Hola, Carlos!De esta manera podemos reutilizar la función para saludar a cualquier persona, independientemente de su nombre.
🔢 Múltiples parámetros
Podemos definir funciones que reciban varios parámetros separándolos por comas:
function calcularTotal(precio, cantidad) { console.log("El total es: " + precio * cantidad);}
calcularTotal(25, 3);El total es: 75💡 Consejos para nombrar parámetros
- Usa nombres descriptivos que indiquen qué tipo de valor esperas
- Mantén los nombres simples pero claros
- Usa camelCase (primera palabra en minúscula, siguientes palabras capitalizadas)
Por ejemplo:
- ✅
nombre,edad,precioTotal - ❌
x,abc,param1
⭐ Características avanzadas
Parámetros con valores por defecto
Podemos asignar valores predeterminados a los parámetros. Estos se usarán cuando no proporcionemos un argumento:
function saludar(nombre = "amigo") { console.log("¡Hola, " + nombre + "!");}
saludar();saludar("María");¡Hola, amigo!¡Hola, María!🎮 Orden de los parámetros
El orden en que colocamos los parámetros es importante. Es como una máquina que tiene las ranuras numeradas:
function crearMensaje(saludo, nombre) { console.log(saludo + ", " + nombre);}
crearMensaje("Hola", "Ana");crearMensaje("Ana", "Hola");Hola, AnaAna, Hola☝️🤓
🏋️♂️ Ejercicio
Crea una función presentar que reciba tres parámetros: nombre, edad y profesion, y muestre un mensaje de presentación:
function presentar(nombre, edad, profesion) { // Tu código aquí}
presentar("Ana", 25, "desarrolladora");// Debería imprimir: "Me llamo Ana, tengo 25 años y soy desarrolladora"🏋️♂️ Ejercicio
Crea una función calcularPromedio que use el operador rest para recibir cualquier cantidad de números y devolver su promedio:
function calcularPromedio(...numeros) { // Tu código aquí}
console.log(calcularPromedio(4, 6, 8)); // Debería imprimir 6console.log(calcularPromedio(2, 4, 6, 8, 10)); // Debería imprimir 6🏋️♂️ Ejercicio
Crea una función calcularCambio que reciba dos parámetros:
dineroIngresado: El dinero que el cliente mete en la máquinaprecioProducto: El precio del producto seleccionado
La función debe mostrar en consola cuánto cambio debe devolver.
function calcularCambio(dineroIngresado, precioProducto) { const cambio = dineroIngresado - precioProducto; console.log("Tu cambio es: " + cambio);}
calcularCambio(100, 75);Tu cambio es: 25🏋️♂️ Ejercicio
Ahora, crea una función prepararBebida que reciba tres parámetros:
bebida: El tipo de bebida (“café”, “té”, etc.)tamaño: El tamaño del vaso (“pequeño”, “mediano”, “grande”)extras: Ingredientes adicionales
function prepararBebida(bebida, tamaño, extras) { console.log("Preparando " + tamaño + " " + bebida + " con " + extras);}
prepararBebida("café", "grande", "leche");Preparando grande café con leche🚀 Extra
Crea una función crearSaludo que reciba un idioma como parámetro y devuelva una función personalizada de saludo:
function crearSaludo(idioma = "es") { // Tu código aquí // Para "es" -> "¡Hola, [nombre]!" // Para "en" -> "Hello, [nombre]!" // Para "fr" -> "Bonjour, [nombre]!"}
const saludoEspanol = crearSaludo("es");const saludoIngles = crearSaludo("en");
console.log(saludoEspanol("María")); // ¡Hola, María!console.log(saludoIngles("John")); // Hello, John!Valores de retorno
🎯 ¿Qué son los valores de retorno?
Cuando creamos una función, a veces necesitamos que nos devuelva un resultado para poder usarlo después.
Para esto usamos la palabra clave return.
Analogía
Piensa en una máquina expendedora:
- Le das dinero (parámetros)
- Seleccionas un producto (proceso)
- La máquina te entrega el producto (valor de retorno)
Si la máquina no te diera el producto (no tuviera return) no sería muy útil.
💫 Usando return en nuestras funciones
Veamos un ejemplo simple:
function multiplicarPorDos(numero) { return numero * 2;}
let resultado = multiplicarPorDos(5);console.log(resultado);10Podemos guardar lo que devuelve una función en una variable, como hicimos con
resultado.
🔧 Formas de usar el valor de retorno
Hay varias formas de usar lo que una función devuelve:
💾 Guardarlo en una variable
Podemos guardar el resultado de una función en una variable para usarlo después:
let mensaje = obtenerSaludo("Carlos");⚡ Usarlo en una condición
Podemos usar el valor de retorno directamente en una condición:
if (esPar(7)) { console.log("Es par");}🔄 Como argumento de otra función
Podemos usar el valor que devuelve una función como argumento para otra:
console.log(obtenerSaludo("María"));➗ En operaciones matemáticas
Podemos usar el valor de retorno en operaciones matemáticas:
let numero = sumar(5, 3) * 2;⚠️ Cosas importantes sobre return
1️⃣ Return detiene la función
Cuando JavaScript encuentra un return, la función termina inmediatamente. En otras palabras, ignora el resto de líneas de código.
function saludar() { return "¡Hola!"; console.log("Esto nunca se verá"); // Esta línea no se ejecuta}2️⃣ Una función sin return devuelve undefined
function sinRetorno() { console.log("Hola");}
let resultado = sinRetorno();console.log(resultado);Holaundefined🎨 Funciones que devuelven diferentes tipos de datos
Las funciones pueden devolver cualquier tipo de dato en JavaScript:
// Devuelve un stringfunction obtenerSaludo(nombre) { return "¡Hola " + nombre + "!";}
// Devuelve un booleanofunction esPar(numero) { return numero % 2 === 0;}
// Devuelve un arrayfunction crearListaNumeros(inicio, fin) { return [inicio, inicio + 1, fin];}
console.log(obtenerSaludo("Ana"));console.log(esPar(4));console.log(crearListaNumeros(1, 3));¡Hola Ana!true[1, 2, 3]El valor de retorno puede ser tan simple como un número o tan complejo como un objeto o array con múltiples valores.
🎓 Consejos para usar return
-
Una función debería tener un solo propósito claro
// ✅ Bien: función con un propósito clarofunction calcularArea(base, altura) {return base * altura;}// ❌ Mal: función haciendo demasiadas cosasfunction calcularYMostrarArea(base, altura) {let area = base * altura;console.log("El área es:", area);return area;} -
Evita múltiples returns si es posible
// ✅ Bien: un solo punto de retornofunction obtenerCalificacion(puntos) {let mensaje;if (puntos >= 60) {mensaje = "Aprobado";} else {mensaje = "Reprobado";}return mensaje;}// ❌ Evitar: múltiples returns pueden hacer el código difícil de seguirfunction obtenerCalificacion(puntos) {if (puntos >= 60) {return "Aprobado";}return "Reprobado";} -
Nombra tus funciones según lo que devuelven
// ✅ Bien: el nombre indica qué devuelvefunction esNumeroPositivo(numero) {return numero > 0;}// ❌ Mal: nombre no indica qué devuelvefunction procesarNumero(numero) {return numero > 0;}
Recuerda: una función bien diseñada es como una herramienta especializada: hace una cosa y la hace bien.
☝️🤓
🏋️♂️ Ejercicio
Crea una función llamada calcularPrecioTotal que:
- Reciba el precio de un producto
- Calcule el precio más impuestos (16%)
- Devuelva el precio total
function calcularPrecioTotal(precio) { // Tu código aquí}
console.log(calcularPrecioTotal(100)); // Debería mostrar 116🏋️♂️ Ejercicio
Crea una función esMayorDeEdad que:
- Reciba una edad
- Devuelva
truesi la edad es 18 o mayor - Devuelva
falsesi es menor de 18
function esMayorDeEdad(edad) { // Tu código aquí}
console.log(esMayorDeEdad(20)); // Debería mostrar trueconsole.log(esMayorDeEdad(15)); // Debería mostrar false🚀 Extra
Busca tres funciones de JavaScript que devuelvan un valor booleano.
Explica:
- ¿Qué hace cada método?
- ¿Qué tipo de parámetros recibe?
- ¿En qué situaciones es útil usarla?
Mini Proyecto: Conversor de Moneda
🎯 Objetivo
Desarrollar una función reutilizable que tome una cantidad de dinero y una tasa de cambio como entrada, y devuelva la cantidad convertida a otra moneda.
💡 Conceptos a Utilizar
- Variables (
let,const) - Tipos de dato (
number) - Operadores aritméticos (
*) - Funciones (declaración,
function) - Parámetros
- Argumentos
- Valores de retorno (
return) - Llamada a funciones
- Mostrar salida (
console.log)
👣 Pasos
- Define la función: Crea una función llamada
convertirMonedaque acepte dos parámetros:cantidadytasaCambio. - Calcula la conversión: Dentro de la función, multiplica la
cantidadpor latasaCambio. Guarda este resultado en una variable (ej:cantidadConvertida). - Retorna el valor: Usa la palabra clave
returnpara devolver el valor decantidadConvertidadesde la función. - Llama a la función: Fuera de la definición de la función, llama a
convertirMonedacon valores de ejemplo para la cantidad y la tasa de cambio (ej: convertir 100 dólares a euros, con una tasa de 0.92). - Guarda el resultado: Almacena el valor devuelto por la función en una variable (ej:
montoEnEuros). - Muestra el resultado: Usa
console.logpara mostrar la cantidad original y la cantidad convertida de forma clara.
🤔 Pista
// 1. Define la función con parámetrosfunction convertirMoneda(cantidad, tasaCambio) { // 2. Calcula la conversión const cantidadConvertida = cantidad * tasaCambio; // 3. Retorna el valor return cantidadConvertida;}
// 4. Llama a la función con argumentosconst dolares = 100;const tasaEuro = 0.92; // 1 Dólar = 0.92 Euros
// 5. Guarda el resultado devueltoconst montoEnEuros = convertirMoneda(dolares, tasaEuro);
// 6. Muestra el resultadoconsole.log(dolares + " dólares equivalen a " + montoEnEuros + " euros.");
// Puedes reutilizar la función con otras monedasconst pesosMexicanos = 500;const tasaDolar = 0.059; // 1 Peso Mexicano = 0.059 Dólaresconst montoEnDolares = convertirMoneda(pesosMexicanos, tasaDolar);console.log( pesosMexicanos + " pesos mexicanos equivalen a " + montoEnDolares + " dólares.",);☝️🤓
🏋️♂️ Ejercicio
La conversión a veces produce muchos decimales (ej., 5.9). ¿Cómo podrías
modificar la función o el console.log para redondear el resultado a solo dos
decimales usando toFixed(2)?
🚀 Extra
Las tasas de cambio fluctúan. ¿Cómo podrías (en un proyecto más avanzado) obtener tasas de cambio actualizadas desde una API externa en lugar de tenerlas fijas en el código? (Esto es solo para investigar, no necesitas implementarlo ahora).