Guía de Estudio - Introducción A JavaScript
Guía de Estudio - Introducción A JavaScript
● Ejecutar código JavaScript en la consola del navegador, por ejemplo revisar el valor
de una variable con console.log()
● Cargar un script.
● Cargar un script.
_ 1
www.desafiolatam.com
Tabla de contenidos
¿Qué es JavaScript? 4
¿Qué se puede hacer con JavaScript? 4
Comenzando con Javascript 4
Introducción a variables 7
¿Por qué se llaman variables? 9
Conceptos importantes en las variables 10
Comentarios en JavaScript 10
Creando un script 10
¿Dónde agregar la etiqueta script? 10
Cargando el script desde otro archivo 11
Actividad 1: Creando un Script 12
Aprendizajes a verificar 13
Guardando texto en variables 13
Variables versus strings 14
Concatenando strings 14
Funciones y Métodos 14
alert() 14
¿Qué es un argumento? 15
console.log() 15
prompt() 15
Conceptos claves sobre métodos y funciones 16
Aprendizajes a verificar 17
El método Number() 17
Sumando string con número 18
Manipulando el DOM 18
Introducción a QuerySelector 18
Actividad 2: Agregar nuevo contenido 19
Buscando por clase y por id 19
Cambiando contenido 20
Actividad 3: Rellenando un contrato de arriendo 21
Modificando estilos con JavaScript 22
Actividad 4: Redondeando una imagen 23
Manipulando el DOM en respuesta a un evento 24
Cambiando en respuesta a un clic 24
Actividad 5: Práctica 27
Cambiando en respuesta al cambio de un input 27
Lógica para resolver problemas 30
Actividad 6: Redondeando una imagen 31
_ 2
www.desafiolatam.com
Actividad 7: Otro ejemplo 32
Otras formas de obtener un elemento del DOM 33
Preguntas de entrevista laboral 34
Resumen 34
¡Comencemos!
_ 3
www.desafiolatam.com
¿Qué es JavaScript?
JavaScript es un lenguaje de programación que nos permite agregar interacción a una
página web. Mientras que HTML y CSS se encargan del esqueleto y la apariencia, JavaScript
se enfoca en la lógica detrás de la interfaz, permitiendo que el usuario interactúe con el sitio
web y ésta reaccione.
Para ver ejemplos de qué se puede hacer con JavaScript, visita los siguientes sitios
web y observa cómo reaccionan con movimientos del mouse y el uso del teclado:
● Kuon Yagi
● Moon Farmer
● Bruno Simon
También contamos con una serie de ejemplos de lo que podemos hacer con JavaScript
disponibles en la W3School.
Importante: Para este curso utilizaremos Firefox como navegador. Los elementos
mostrados en el inspector de elementos cambian de navegador a navegador y la
consola tiene ligeras diferencias, es posible realizar los ejercicios con Chrome o
Safari, pero la ejecución será distinta.
_ 4
www.desafiolatam.com
Imagen 2. Consola web
Fuente: Desafío latam
_ 5
www.desafiolatam.com
Imagen 3. Primer encuentro con JavaScript
Fuente: Desafío latam
_ 6
www.desafiolatam.com
Imagen 4.Console.log
Fuente: Desafío latam
Esto es muy útil para hacer pruebas, lo ocuparemos frecuentemente a lo largo del curso.
Introducción a variables
A la hora de programar necesitaremos ir guardando valores para usarlos más tarde, esto
puede ser un valor que introdujo un usuario o proveniente de algún cálculo.
Para guardar los valores ocuparemos variables. Estas las podemos imaginar como una caja
que tiene un nombre y dentro el valor guardado.
_ 7
www.desafiolatam.com
Imagen 5. Primer encuentro con JavaScript
Fuente: Desafío latam
Para definir y usar nuestra primera variable probemos escribir en la consola del inspector de
elementos:
a = 2
alert(a + 2)
_ 8
www.desafiolatam.com
Si la ventana izquierda de la imagen anterior no está abierta, la podemos abrir utilizando el
ícono que aparece en la consola a la derecha.
¿Y si son cajas que guardan valores por qué se llaman variables? El motivo es que mientras
la caja conserva un nombre, el contenido dentro puede cambiar.
a = 2
a = 5
alert(a + 2)
_ 9
www.desafiolatam.com
Conceptos importantes en las variables
Cuando trabajamos con variables hay conceptos importantes que tenemos que
tener muy en cuenta. Los dos primeros que debemos revisar son:
2. Usar: Usamos una variable cuando mostramos su valor, o la ocupamos para operar
junto a otro valor, por ejemplo al sumar a + 7
Comentarios en JavaScript
Al igual que en otros lenguajes, podemos agregar comentarios en JS. Los comentarios
sirven para dejar anotaciones, una instrucción comentada (envuelta en /* */) será ignorada.
Creando un script
Crear un script es una forma de decir que vamos a agregar código JavaScript en un archivo
en lugar de hacerlo en la consola. Para lograrlo utilizaremos la etiqueta <script> dentro del
documento HTML.
Se puede agregar dentro del head, o en el body como cualquier etiqueta de HTML. Por ahora
lo agregaremos al final justo antes de cerrar el body.
_ 10
www.desafiolatam.com
Imagen 8. Página web con Javascript
Fuente: Desafío latam
Al recargar la página, deberíamos ver la alerta con el texto "hola". Ahora probemos
reemplazando el script anterior con el siguiente script:
<script>
numero1 = 100
numero2 = 50
alert(numero1 + numero2)
</script>
_ 11
www.desafiolatam.com
Realizando el proyecto desde cero.
/* suma.js */
numero1 = 100
numero2 = 50
alert(numero1 + numero2)
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Script Externo</title>
</head>
<body>
<script src="suma.js"></script>
</body>
</html>
2. Esta vez partiendo desde cero, intenta hacerlo de memoria, crea una nueva página
web con la base de HTML y crea el script multiplicacion.js donde se asignen
números a dos variables y se muestre la multiplicación de ellas. Carga el script al
final del index.html antes del cierre del body. Para multiplicar utiliza el operador *
_ 12
www.desafiolatam.com
3. Otra vez partiendo desde cero, crea una nueva página web con la base de HTML y
crea el script division.js donde se asignen números a dos variables y se muestre la
división de ellas. Carga el script al final del index.html antes del cierre del body. Para
dividir utiliza el operador /
Ahora que ya hemos creado un script, la siguiente definición nos hará mucho
sentido. Un programa o script es una secuencia de "instrucciones" para ser
ejecutadas por un computador.
Aprendizajes a verificar
● Ejecutar código JavaScript en la consola del navegador, por ejemplo revisar el valor
de una variable con console.log()
● Diferenciar los conceptos de definir una variable o asignarle un nuevo valor.
○ ¿Qué tienes que escribir si te piden definir una variable a con el valor 8?
○ ¿Qué tienes que escribir si te piden asignar un nuevo valor a la variable a con
el valor 15?
● Crear un script y cargarlo en el HTML
● Ejecutar operaciones matemáticas en JavaScript
contenido = "hola"
alert(contenido)
_ 13
www.desafiolatam.com
Variables versus strings
Las comillas son necesarias para evitar confundir un string con una variable:
contenido = "hola"
alert(contenido)
alert("contenido")
Si ejecutamos este código veremos que el primer alert muestra el texto "hola" mientras que
el segundo muestra el texto "contenido" esto nos indica la diferencia entre la variable
contenido y "contenido".
Concatenando strings
Los strings funcionan distintos a los números, cuando intentamos sumar dos strings
obtendremos como resultado la concatenación de estos.
var1 = "Hola"
var2 = " Camila"
alert(var1 + var2)
Funciones y Métodos
Las funciones y métodos son herramientas que podemos utilizar para realizar diversos tipos
de acciones. Por ahora las trataremos como sinónimos, aunque más adelante
aprenderemos que son cosas distintas.
JavaScript dispone de varios métodos que podemos ejecutar según necesitemos. Entre los
muchos mencionados tenemos:
● console.log()
● alert()
● prompt()
Sabemos que son funciones o métodos porque vienen acompañados de paréntesis. Los
elementos que agreguemos dentro de los paréntesis reciben el nombre de argumentos.
alert()
al ser ejecutado el método alert hace aparecer una ventana emergente, el texto mostrado
será el argumento que le entreguemos.
_ 14
www.desafiolatam.com
alert("Todos pueden")
Imagen 8. alert()
Fuente: Desafío latam
¿Qué es un argumento?
Cuando se llama a una función o método, se pueden pasar uno o varios valores entre
paréntesis separados por comas. Estos valores que pasamos reciben el nombre de
argumentos.
console.log()
Este método muestra en la consola lo que le entreguemos como argumento.
console.log("Desafío Latam")
Imagen 9. console.log()
Fuente: Desafío latam
prompt()
Con el método prompt el usuario puede guardar un valor en una variable.
_ 15
www.desafiolatam.com
Imagen 10. prompt()
Fuente: Desafío latam
Podemos pensar en los métodos y funciones como cajas negras (no sabemos
exactamente lo que pasa adentro). Estas cajas pueden recibir valores de entrada
y algunas de ellas entregan un valor de salida
Cuando un método tiene un valor de salida, hablaremos de que devuelve un valor. Por
ejemplo, prompt devuelve un string con el valor que introdujo el usuario, mientras que la
entrada de prompt permite verificar el texto que aparece en la ventana.
_ 16
www.desafiolatam.com
Aprendizajes a verificar
Revisa particularmente que puedas transformar a código cada una de las siguientes
acciones.
El método Number()
En algunas situaciones vamos a necesitar convertir un texto en un número, el siguiente caso
ilustra perfectamente la situación.
_ 17
www.desafiolatam.com
¡Ahí lo tenemos! Ahora sí obtenemos el resultado esperado gracias a la conversión de las
cadenas de texto a tipo number.
Podemos evitar muchos problemas transformando los datos al tipo correcto antes de
operar con ellos, si vamos a sumar utilicemos Number.
Manipulando el DOM
El DOM, por sus siglas Document Object Model, se refiere a un objeto con el que podemos
seleccionar y manipular los elementos de una página web. Podemos cambiar
dinámicamente el contenido, estilos e incluso el valor de sus atributos.
Introducción a QuerySelector
Hay varios métodos para seleccionar elementos del DOM, en esta guía trabajaremos con
.querySelector. Para probarlo crearemos una página nueva donde utilizaremos querySelector
para tomar un elemento de la página web y cambiar su contenido vía JavaScript.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1></h1>
<script>
_ 18
www.desafiolatam.com
titulo = document.querySelector("h1")
titulo.innerHTML = "Este contenido fue agregado con JavaScript"
</script>
</body>
</html>
Puede sorprenderte que en la página web no se alcanza a ver el h1 vacío, esto es porque la
ejecución del script es prácticamente inmediata.
1. Crea una página web básica con un párrafo con contenido Lorem Ipsum. Es
importante que sea un párrafo y no otro tipo de etiqueta.
2. Al final de la página, antes del cierre del body agrega la etiqueta <script>
3. Dentro del script agrega:
a. parrafo = document.querySelector("p")
b. parrafo.innerHTML = "Este contenido fue agregado con
JavaScript"
<nav class="menu">Menú</nav>
<section id="Hero-Section">
_ 19
www.desafiolatam.com
...
</section>
<footer>Pie de página</footer>
menu = document.querySelector(".nav")
heroSection = document.querySelector("#Hero-Section")
pieDePagina = document.querySelector("footer")
Ahora que disponemos de estas variables en nuestro código, podríamos interactuar con los
elementos modificando su contenido, sus estilos o atributos.
Cambiando contenido
Utilizando querySelector y .innerHtml podemos seleccionar elementos que estén anidados o
dentro de un contenedor, por ejemplo si tenemos el siguiente párrafo:
Podemos ocupar el querySelector para hacer una referencia del span que está dentro del
párrafo y luego cambiarle el contenido:
_ 20
www.desafiolatam.com
Actividad 3: Rellenando un contrato de arriendo
_ 21
www.desafiolatam.com
Modificando estilos con JavaScript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1> Desafío Latam </h1>
<script>
titulo = document.querySelector("h1")
titulo.style.color = "#7ba238"
</script>
</body>
</html>
utilizando .style podemos cambiar todas las propiedades de CSS. Pero es importante
considerar que existe una pequeña diferencia entre cómo llamamos las propiedades de CSS
en JavaScript a cómo lo escribimos directamente en un documento CSS.
border-radius: 50%
_ 22
www.desafiolatam.com
No obstante, en JavaScript cuando queramos ocupar una propiedad de CSS que utilice dos
o más palabras, deberemos recurrir al Camelcase, es decir, que tendremos que a partir de la
segunda palabra, todas las restantes deberán empezar por una letra mayúscula.
imagen.style.borderRadius = "50%"
texto.style.fontFamily = "Fantasy"
texto.style.fontSize= "10px"
1. En un archivo HTML nuevo, crear una base con una etiqueta img que ocupe una
imagen con dimensiones cuadradas, puedes utilizar la siguiente:
https://placedog.net/500/500
2. Agregar la etiqueta script al final de la página, antes del cierre del body, dentro de la
etiqueta script.
_ 23
www.desafiolatam.com
Imagen 17. Modificando estilos con JavaScript
Fuente: Desafío latam
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button onclick="
body = document.querySelector('body')
body.style.backgroundColor='black'
"> A negro </button>
</body>
</html>
_ 24
www.desafiolatam.com
1. El código JavaScript se escribe directamente sin utilizar la etiqueta script.
2. Todo el código se escribe dentro de comillas dobles, por lo mismo no podemos
utilizarlas dentro, utilizaremos comillas simples en su lugar.
Vamos a hacer un ejercicio similar, ahora tendremos 2 botones y una imagen, el primero
agrega bordes redondeados a la imagen, el segundo le quitará los bordes redondeados.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<img id="imagen-a-trabajar" src="https://placedog.net/500
" alt="">
<button onclick="
element = document.querySelector('#imagen-a-trabajar')
element.style.borderRadius='30%'
"> Agregar Bordes </button>
<button onclick="
element = document.querySelector('#imagen-a-trabajar')
element.style.borderRadius='0'
"> Quitar Bordes </button>
</body>
</html>
Veamos otro ejemplo similar: en esta ocasión tendremos una lista de elementos, al hacer
click en el elemento aparecerá tachado. La propiedad en css para esto es text-decoration
con el valor "line-through" pero lo haremos utilizando JS.
_ 25
www.desafiolatam.com
Imagen 18. Elemento tachado.
Fuente: Desafío latam
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<ul>
<li id="ele1" onclick="
ele = document.querySelector('#ele1')
ele.style.textDecoration = 'line-through';
"> Elemento 1</li>
<li id="ele2" onclick="
ele = document.querySelector('#ele2')
ele.style.textDecoration = 'line-through';
"> Elemento 2</li>
<li> Elemento 3</li>
<li> Elemento 4</li>
</ul>
</body>
</html>
_ 26
www.desafiolatam.com
Actividad 5: Práctica
Nuestro primer ejemplo será un selector que muestra 3 colores. Al momento de escoger uno
se mostrará una alerta con el valor seleccionado.
_ 27
www.desafiolatam.com
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
Un selector es solo una etiqueta html que se compone de <select> y por cada opción hay
que agregar un <option> Cada opción <option> tiene un texto que se muestra y un valor
(value), el valor es lo que maneja internamente indicando que realmente seleccionó el
usuario.
_ 28
www.desafiolatam.com
Lo único nuevo en este código es que estamos seleccionando dos elementos distintos, (el
selector y el body) y estamos ocupando el valor de la opción seleccionada para cambiar el
color de fondo del body.
Un ejercicio similar podría ser mostrar en un texto la opción seleccionada. Para mostrar un
texto dependiendo de la opción que mostremos, imaginemos que estamos haciendo un quiz
y hay 4 alternativas.
Para lograrlo necesitamos un select con las alternativas y un elemento donde mostraremos
el resultado:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p> ¿Qué lenguaje de programación estamos aprendiendo? </p>
<select id="selector" onchange="
elemento_seleccionado = document.querySelector('#selector')
elemento_resultado = document.querySelector('#resultado')
elemento_resultado.innerHTML = 'La alternativa es ' +
elemento_seleccionado.value
">
<option value="incorrecta">Java</option>
<option value="correcta">Javascript</option>
<option value="incorrecta">Python</option>
<option value="incorrecta">Ruby</option>
</select>
<span id="resultado"> </span>
</body>
</html>
Esto sirve para dinámicas entretenidas en una página web, pero si el resultado es sensible a
trampas, por ejemplo, es de un concurso o para tomar pruebas, necesitaremos que la
respuesta no está en el lado de front de forma que un usuario avanzado no pueda obtenerla
simplemente con el inspector de elementos.
_ 29
www.desafiolatam.com
Lógica para resolver problemas
Los ejercicios de modificación del DOM en función de un evento tienen una estrategia
general para resolverse.
_ 30
www.desafiolatam.com
Actividad 6: Redondeando una imagen
Pongamos a prueba nuestra lógica para resolver problemas. Nos piden una página web con
un input y un botón, el usuario escribirá un color sobre el input, al presionar el botón se debe
cambiar el color de fondo de la página. El color será introducido en inglés (ejemplo: red,
blue, etc.) o en hexadecimal (#ff0000).
2. ¿Cuál es el disparador?
3. ¿Cuál es el evento?
Sí. Necesitamos el color escrito por el usuario. Lo debemos obtener del input, por lo
que tenemos que seleccionar el elemento con document.querySelector() y luego con
nombreVariable.value
5. Modificamos un elemento
Nos piden cambiar el color de la página web, por lo tanto, tenemos que cambiar el
estilo de body.
_ 31
www.desafiolatam.com
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input id="input-1" type="text">
<button id="btn-1" onclick="
input = document.querySelector('#input-1')
body = document.querySelector('body')
body.style.backgroundColor = input.value
">
Cambiar </button>
</body>
</html>
Probemos con otro ejemplo, crearemos una página con un contador de clicks, para eso
tendremos un párrafo con el número cero, luego crearemos un botón que aumentará la
cuenta en un uno cada vez que es presionado.
2. ¿Cuál es el disparador?
Aquí el disparador es el botón que al hacerle click realiza una acción, en este caso
incrementar en uno el número en el párrafo.
3. ¿Cuál es el evento?
_ 32
www.desafiolatam.com
4. ¿Necesitamos algún valor de la página web?
5. Modificamos un elemento
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p id="p-1"> 0 </p>
<button onclick="
parrafo = document.querySelector('#p-1')
cuenta = Number(parrafo.innerHTML)
cuenta = cuenta + 1
parrafo.innerHTML = cuenta
"> Incrementar </button>
</body>
</html>
Así como existe document.querySelector existen otras formas de obtener un elemento del
DOM, una muy usada es document.getElementById('id-del-elemento') o
_ 33
www.desafiolatam.com
document.getElementsByClassName('clase'). A lo largo del curso utilizaremos
principalmente document.querySelector
1. ¿Qué es el DOM?
2. ¿Cómo se puede agregar una clase a un elemento del DOM?
3. ¿Cómo se puede cambiar un estilo a un elemento del DOM?
4. ¿Qué se obtiene al sumar 2 + '2'?
5. ¿Qué se obtiene al sumar 2 + 3 + '2'?
6. ¿Qué es la coerción?
Resumen
● JavaScript es un lenguaje de programación que le agrega interactividad a un sitio
web.
● Podemos escribir código JavaScript directamente en la consola de cualquier
navegador.
● Se debe respetar la sintaxis para que nuestros programas se ejecuten
correctamente.
● Existen varios tipos de datos que se definen según la forma en la que se escriben.
● Los métodos son funciones que tienen diferentes objetivos y que podemos ejecutar
en diferentes situaciones según sea la necesidad.
● La concatenación consiste en unir varias cadenas de texto para formar una frase
compuesta.
● El método Number() se utiliza para formatear una cadena de texto a un número y
pueda ser usado en una operación aritmética.
● JavaScript puede manipular los elementos del DOM para acceder o modificar sus
atributos.
● A través del atributo style podemos definir propiedades de CSS para cambiar los
estilos de un elemento, considerando siempre escribirlas con Camelcase.
● A través de los atributos onclick y onchange de HTML podemos agregar JavaScript
directamente en respuesta a un clic o el cambio de un input.
_ 34
www.desafiolatam.com