Guia de Js
Guia de Js
Contenido
1 Introducción 10
1.1 Bienvenida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.1 Libro vivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Prerequisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 ¿Cómo evitar bloqueos? . . . . . . . . . . . . . . . . . . . . . . . 12
2 Primeros pasos 13
2.1 Visión general . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 ¿Qué es y porqué debes aprenderl rlo
o? . . . . . . . . . . . . . 13
2.1.2 ¿En dónde se utiliza? . . . . . . . . . . . . . . . . . . . . . 14
2.1.3 ¿Qué trabajos puedes conseguir? . . . . . . . . . . . . . . 15
2.1.4 ¿Cuánto puedes ganar? . . . . . . . . . . . . . . . . . . . 16
2.1.
2.1.5
5 ¿C¿Cuauale
less so
sonn las pr
preg
egun
untatass má
máss co
comu
munnes?
es? . . . . . . . . . . 16
2.2 Historia, evolución, y versiones . . . . . . . . . . . . . . . . . . . . 17
2.3 Características y ventajas . . . . . . . . . . . . . . . . . . . . . . 18
2.4
2.4 Dife
Difere
renc
ncia
iass con
con otro
otross leng
lengua
uaje
jess de pr
prog
ogra
rama
maci
ción
ón . . . . . . . . . . 19
2.5 Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.1 IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.2 Entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Hola Mundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3 Gramática 21
3.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2
3.2 Co
Come
mentntar
ariios (u
(una
na so
solla línea
ínea y multi
ultillínea
ínea)) . . . . . . . . . . . . . . . 21
3.3 Literales y tipos de datos . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Operadores y expresiones . . . . . . . . . . . . . . . . . . . . . . 24
3.5 Palabras clave e idenficadores . . . . . . . . . . . . . . . . . . . . 25
3.6 Sentencias, declaraciones, y tipado . . . . . . . . . . . . . . . . . 25
2
Contenido
3
3..9
10 C
3.10 onsi
njuibil
Sens
Se ntloidad
bi idde cde
ad ara
mcayús
terúscu
ay escula
. s.y .[Link]ús
las in.úscu
.cul
. las
. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. 29
29
4 Tipos y variables 30
4.1 Tipos de datos primitivos . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Tipos de datos no-primitivos . . . . . . . . . . . . . . . . . . . . . 31
4.3 Primitivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.1 Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Número . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.3 Entero grande . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.4 Buleano . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3.5 Indefinido . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.6 Símbolo . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.7 Nulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Acceder a propiedades de objetos . . . . . . . . . . . . . . . . . . 38
4.6 Colecciones con llave . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6.1 Mapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6.2 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6.3 WeakMaps . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.6.4 WeakSets . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.7 Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.8 Acceder a elementos de listas . . . . . . . . . . . . . . . . . . . . 45
4.9 Fechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.10 Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . 46
4.11 De
Decl
cla
aracion e inicialización (var y let) . . . . . . . . . . . . . . . . 47
4.12 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.13 Plantillas de texto . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.14 Chequear tipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3
Contenido
5 Operadores 53
5.1 Operad
Operadores
ores de a aritmé
ritméticos
ticos (+, -, *, /, %, **, //, ++, ) . . . . . . . . . 53
5.2 Operador de agrupación (()) . . . . . . . . . . . . . . . . . . . . . 54
5.3 Operadores de texto (+, +=) . . . . . . . . . . . . . . . . . . . . . 55
5.4
5.4 Op
Opera
erado
dore
ress de as
asigigna
naci
ción
ón (= (=,, +=,
+=, -=
-=,, *=
*=,, /=
/=,, %=,
%=, **=
**=,, //
//=)
=) . . . . . . . 56
5.5
5.5 Op
Oper
erad
ador
ores
es comp
compar arat
ativ
ivos
os (=(==,
=, !=,
!=, >, <, >=>=,, <=)
<=) . . . . . . . . . . . . 60
5.6 Comparar por valor y por referencia . . . . . . . . . . . . . . . . . 61
5.7 Operadores lógicos (&&, ||, !) . . . . . . . . . . . . . . . . . . . . . 62
5.8 Operad
radores de bits (&, |, ~, ^, », «, »>) . . . . . . . . . . . . . . . . 63
5.9
5.9 Ope
pera
rado
dore
ress un
unarariios (d
(del
elet
ete,
e, type
typeofof,, void
void)) . . . . . . . . . . . . . . . 64
5.10
5.10 Opera
perado
dore
ress re
rellacio
aciona
nale
less (i
(in,
n, inst
instan
anceceofof)) . . . . . . . . . . . . . . . 66
5.11 Operador spread () . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.12 Operador de coma (,) . . . . . . . . . . . . . . . . . . . . . . . . 68
4
Contenido
6.2.6 Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2.
6.2.7
7 for
forin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2.
6.x2.8
6.3 E 8pcfor
ce fo
iornesof . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 8
83
4
6.3.1 Tipos de excepciones . . . . . . . . . . . . . . . . . . . . . 84
6.3.
6.3.22 trycatch . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.3.3 Utilizando objectos de errores . . . . . . . . . . . . . . . . 86
6.3.
6.3.44 trycatchfinally . . . . . . . . . . . . . . . . . . . . . . . 87
6.3.5 throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7 Funciones 89
7.1 Declarar y llamar funciones . . . . . . . . . . . . . . . . . . . . . 89
7.2 Parámetros y argumentos . . . . . . . . . . . . . . . . . . . . . . 89
7.3 Parámetros predeterminados . . . . . . . . . . . . . . . . . . . . 91
7.4 Parámetros de descanso (rest) . . . . . . . . . . . . . . . . . . . . 91
7.5 El objeto arguments . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.6 Retorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.7 Declcla
aración y expresion de funciones . . . . . . . . . . . . . . . . 94
7.8 Funciones anidadas . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.9 Ámbito global y local . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.10 Devo
vollución de llamada (Callbacks) . . . . . . . . . . . . . . . . . . 99
7.1
7.11 Eleva
Elevacición
ón de vari
variab
able
less y func
funcio
ione
ness (H
(Hoi
oist
stin
ing)
g) . . . . . . . . . . . . . 100
100
7.12 Recursividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.13 Cierres (Clojures) . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.14 Funciones de flecha . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.15 Funciones predefinidas . . . . . . . . . . . . . . . . . . . . . . . 105
5
Contenido
8
8..1
1..5
6 INnafiN
niy .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 1
10
09
9
8.1.
8.1.7 7 Pr
Propopieieda
dadedess y méméto todo
doss dedell ob
objejeto
to Nu
Numb mber er . . . . . . . . . . 110
8.1.
8.1.8 8 Pr
Propopieieda
dadedess comu
comune ness de
dell ob
objejeto
to Nu
Numb mberer . . . . . . . . . . . 112
8.1.
8.1.9 9 Pr
Propopieieda
dadedess y méméto todo
doss dedell ob
objejeto
to Ma
Math th . . . . . . . . . . . . 115
8.1.
8.1.1010 P
Pro
ropipied
edad
ades es y méto
método doss dedell ob
objejeto
to Bi
BigI
gInt
nt . . . . . . . . . . . 116
8.2 Uso de fechas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.2.
8.2.1 1 Pr
Propopieieda
dadedess y méméto todo
doss dedell ob
objejeto
to Da
Date te . . . . . . . . . . . . 118
8.3 Uso de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.3.1 Secuencias de escape . . . . . . . . . . . . . . . . . . . . 119
8.3.2 Convertir texto a números . . . . . . . . . . . . . . . . . . 120
8.3.
8.3.3 3 Pr
Propopieieda
dadedess y méméto todo
doss dedell ob
objejeto
to St
Striring
ng . . . . . . . . . . . 12
121
1
8.4 Uso de expresiones regulares . . . . . . . . . . . . . . . . . . . . 123
8.4.1 Crear una expresión regular . . . . . . . . . . . . . . . . . 123
8.4.
8. 4.22 Bú
Búsq squeueda
da cocon n ba
bandndera
erass en ex exprpres
esioione
ness reg
regul
ular
ares
es . . . . . . 12
123
3
8.4.
8.4.3 3 Pr
Propopieieda
dadedess y méméto todo
doss dedell ob
objejeto
to Re
RegE gExpxp . . . . . . . . . . 124
124
8.5 Uso de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.5.1 Insert rta
ar elementos en una lista . . . . . . . . . . . . . . . . 126
8.5.2 Modificar elementos de listas . . . . . . . . . . . . . . . . . 127
8.5.3 Borrar elementos de listas . . . . . . . . . . . . . . . . . . 128
8.5.
8.5.4 4 Pr
Propopiiedad
edades es y mét
métod odos
os del
del ob
objjeto
eto Ar
Arrarayy . . . . . . . . . . . 129
129
8.5.5 Propiedades comunes de listas . . . . . . . . . . . . . . . . 131
8.5.6 Métodos comunes de listas . . . . . . . . . . . . . . . . . . 132
8.5.7 Arreglos multidimensionales . . . . . . . . . . . . . . . . . 140
8.5.
8.5.8 8 Ar
Arreregl
glos
os tipa
tipado
doss (I(Int
nt8A
8Arr rray
ay,, Ui
Uint
nt8A
8Arrrray
ay)) . . . . . . . . . . . . 141
141
8.5.9 Array buffer . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.6 Uso de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8.6.1 Insert rta
ar elementos en un objeto . . . . . . . . . . . . . . . . 144
6
Contenido
8
8..6
6..5
4 Borerraarrm
C pé
[Link]. d.e .ob. je. to.s . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 1
14
47
8
8.6.
8.6.6 6 Pr
Prop
opie ieda
dade
dess y mé métotodo
doss de
dell ob objejeto
to Ob
Objeject
ct . . . . . . . . . . . 149
149
8.6.7 Métodos comunes de objetos . . . . . . . . . . . . . . . . . 151
7
Contenido
10.2.2 En
Encadenamiento de promesas . . . . . . . . . . . . . . . . 178
10.2.3 Propagación de errores de promesas . . . . . . . . . . . . . 179
1
10
0..2
2..5
4FMeutlctihplA
Mu [Link]. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 1
18
80
0
10.2
10 .2.6
.6 Pr
Prop
opie ieda
dade
dess y méto
método doss de
dell ob
obje
jeto
to Pr
Promomisise
e . . . . . . . . . . 181
181
10.3 async/await . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
11 Módulos 184
11.1 Mó
Módulos y herramientas . . . . . . . . . . . . . . . . . . . . . . . 184
11.1.1 Historia de los módulos . . . . . . . . . . . . . . . . . . . . 184
11.1.2 CCo
ommonJS . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.1.3 WWeebpack . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
11.1.4 BBa
abel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
11.1.5 Ex
Exttensiones .mjs vs .js . . . . . . . . . . . . . . . . . . . . 189
11.2 Exportar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.3 Importar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
11.4 Exportación predeterminada . . . . . . . . . . . . . . . . . . . . . 193
11.5 Al
Alias de importación . . . . . . . . . . . . . . . . . . . . . . . . . 194
11.6 Importar paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . 195
11.7 Ca
Carga
rgar módulos dinámicamente . . . . . . . . . . . . . . . . . . . 196
11.8 Ámbito de un módulo . . . . . . . . . . . . . . . . . . . . . . . . 197
13 Internacionalización 203
13.1 El objeto Intl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
8
Contenido
9
1 INT
INTROD
RODUCC
UCCIÓN
IÓN
1 Introducción
1.1 Bienvenida
Bien
Bienven
venid
id@
@ a es
este
te lilibr
bro
o de Acad
Academ
emia
ia X en dond
donde
e ap
apren
rende
derá
ráss Java
JavaSc
Scri
ript
pt prá
práct
ctic
ico.
o.
Hola,, mi no
Hola nomb
mbrere es Xa
Xavi
vier
er Re
Reye
yess Oc
Ocho
hoa
a y soy
soy el au
auto
torr de este
este libr
libro.
o. He tr
trab
abaj
ajad
ado o co-
co-
mo consultor en proyectos para Nintendo, Google, entre otros proyectos top-tier, tra-
bajé como líder de un equipo de desarrollo por 3 años, y soy Ingeniero Ex-Amazon.
En mis redes me conocen como Programador X y comparto videos semanalmente
en You
ouT Tub
ubee desd
desdee dive
diversa
rsass lo
loca
caci
cion
ones
es del
del mu
mund
ndoo co
con
n el ob
obje
jetitivo
vo de guia
guiarr y mo
motitiva
varr a
mis estudiantes mientras trabajo haciendo lo que más me gusta: la programación.
10
1 INT
INTROD
RODUCC
UCCIÓN
IÓN
propio negocio en línea. Confío en que este libro te dará los recursos que necesitas
para que tengas éxito en este campo.
Empecemos!
Esta publicación fue planeada, editada, y revisada manualmente por Xavier Reyes
Ochoa. La fundación del contenido fue generada parcialmente por inteligencia ar-
tificial usando ChatGPT (Feb 13 Version) de OpenAI. Puedes ver más detalles en
[Link]
Esto es a lo que llamo un trabajo VIVO, esto quiere decir que será actualizado en
el tiempoela18
editada medida que
de abril deexistan cambios
2023. Si tienes en la tecnología.
correcciones La versiónpuedes
importantes, actual es 1.0.0
escribir-
nos a nuestra sección de contacto en [Link]
1.1.2 Alcance
El obje
objetitivo
vo de este
este lilibr
bro
o es llllen
enar
ar el va
vací
cío
o qu
que
e ex
exis
iste
te so
sobre
bre esta
esta te
tecn
cnol
olog
ogía
ía en Espa
Españo
ñoll
siguiendo el siguiente enfoque:
• Se revizan los temas con un enfoque prácti
práctico
co incluyendo
incluyendo ejempl
ejemplos
os y retos.
• Se evita incl
incluir
uir materi
material
al de relleno ya que no es eficient
eficiente.
e.
• Se evita entrar en detalle en temas simp
simples
les o avanzados no-prácticos
no-prácticos..
Si de
dese
seas
as prof
profun
undi
diza
zarr en algú
algún
n te
tema
ma,, te de
dejo
jo va
vari
rios
os re
recu
curso
rsoss popu
popula
lares
res y avan
avanza
zado
doss
en la lección de recursos como el estándar de esta tecnología (que puede ser difícil
de leer si recién estás empezando).
11
1 INT
INTROD
RODUCC
UCCIÓN
IÓN
1.2 Prerequisitos
12
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
2. No tienes que memorizarlo todo, solo tienes que saber donde están los temas
para buscarlos rápidamente cuando tengas dudas.
3. Cuando tengas
tengas pregu
preguntas
ntas usa Google
Google,, StackOverFlow
StackOverFlow,, y ChatGPT
4. Acepta
Acepta que en esta carrer
carrera,
a, mucho de tu tiempo lo vas utilizar
utilizar investig
investigando
ando e
innovando, no solo escribiendo código.
5. No tienes que aprender inglés ahora pero considera aprenderlo en un futuro
porque los recursos más actualizados están en inglés y también te dará mejo-
res oportunidades laborales.
6. Si pierdas la motivación, recuerda tus objetivos. Ninguna carrera es fácil pero
ya tienes los recursos para llegar muy lejos. Te deseo lo mejor en este campo!
2 Primeros pasos
13
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
2. Es versátil: JavaScript se utiliza tanto en el lado del cliente como en el lado del
servidor, lo que significa que puedes desarrollar una amplia gama de aplica-
14
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
5. Desarrollo
Desarrollo de servidor: JavaS
JavaScript
cript se utili
utiliza
za en el lado del servidor para crear
aplicaciones y servicios web. Con [Link], puedes crear aplicaciones y servi-
1. Desarro
Desarrollallador
dor web fro
front-
nt-end
end:: Los des
desarr
arroll
ollado
adores
res web fro
front-
nt-end
end utiliz
utilizan
an JavaS-
JavaS-
cript para crear y mejorar la experiencia de usuario en las páginas web.
2. Desarrollador web full-stack: Los desarrolladores web full-stack utilizan JavaS-
cript en conjunto con otros lenguajes de programación para crear aplicaciones
web complejas y avanzadas.
3. Desarrollador de aplicaciones móviles: Los desarrolladores de aplicaciones
móviles utilizan JavaScript para crear aplicaciones móviles y hacerlas compa-
tibles con diferentes plataformas.
4. Desarrollador de juegos: Los desarrolladores de juegos utilizan JavaScript pa-
ra cr
crea
earr ju
jueg
egos
os in
inte
terac
ractitivo
voss y em
emoc
ocio
iona
nant
ntes
es pa
para
ra la we
web
b y disp
dispos
osititiv
ivos
os móvi
móvile
les.
s.
5. Desarrollador de aplicaciones IoT: Los desarrolladores de aplicaciones IoT
utilizan JavaScript para crear aplicaciones que permiten a los dispositivos co-
nectados a internet interactuar entre sí.
6. Desarrollador de inteligencia artificial y machine learning: JavaScript se utiliza
para crear aplicaciones y algoritmos de inteligencia artificial y machine lear-
ning.
En resumen, aprender JavaScript puede prepararte para una amplia gama de ca-
rreras en el campo de la tecnología, desde el desarrollo web hasta las aplicaciones
15
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
2.1.4 ¿Cuán
¿Cuánto
to puede
puedess ganar?
Es impo
import
puedes rtan
ante
te puede
ganar tene
tenerr en cuen
cumayor
ser enta
ta qu
que
oemenor,
esto
estoss son
son solo
solo pr
prom
omed
dependiendo edio
deios
s yfactores
los qu
que
e el sala
samencionados
lari
rio
o re
real
al qu
que
e
anteriormente. Además, siempre es una buena idea investigar y hacer preguntas
sobre los salarios y las condiciones laborales antes de aceptar un trabajo.
16
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
cript?
Estas son solo algunas de las preguntas más comunes sobre JavaScript. Hay mu-
chas más que pueden surgir a medida que avanzas en tu aprendizaje y desarrollo
de aplicaciones con este lenguaje de programación.
Al finalizar este recurso, tendrás las habilidades necesarias para responder o encon-
trar las respuestas a estas preguntas.
2.2 Historia,
Historia, evolución,
evolución, y versiones
versiones
La
Lass ve
criptversi
rsion
1.1. ones
es má
Estasmáss anti
antigu
guas
versiones as de Ja
fueronJava
vaSc
Scri
ript
pt se co
reemplazadas cono
noce
porcen n co
como
mo Ja
JavaScriptJava
vaSc
Scri
1.2, ript
quept 1.
1.0
0 ylanzada
fue Java
JavaS-
S-
en 1997
1997.. Esta
Esta ve
vers
rsió
ión
n in
intr
trod
oduj
ujo
o nu
nuev
evas
as ca
cara
ract
cter
erís
ístitica
cass co
como
mo el so
sopo
port
rte
e para
para obje
objeto
tos,
s,
la capacidad de crear objetos personalizados y la capacidad de crear funciones.
En 19
1999
99,, se la
lanz
nzó
ó Ja
Java
vaSc
Scri
ript
pt 1.3,
1.3, que
que in
intr
trod
oduj
ujo
o me
mejo
jora
rass en la ve
velo
loci
cida
dad
d de ejec
ejecuc
ució
ión
n
y la capacidad de crear objetos más complejos. Esta versión también introdujo el
soporte para la programación orientada a objetos.
17
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
18
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
2.4 Diferencias
Diferencias con otros
otros lenguajes
lenguajes de programación
programación
dores pueden
diferente crear
de otros objetos de
lenguajes y usarlos para almacenar
programación, como C, yque
manipular [Link]-
son lenguajes Esto es
rados y no orientados a objetos.
2.5 Configuración
2.5.1 IDE
Los archivos de JavaScript son archivos de texto. Puedes editarlos con editores de
texto como Notepad en Windows o Notes en MacOS pero es recomendado utilizar
un IDE (Integrated Development Environment) que es una aplicación de edición
de código más avanzado que le da colores a tu código para que sea más fácil de
leer y tengas funciones de autocompletado, entre otras. Algunos IDEs populares
son Brackets,
Brackets, Atom,
Atom, Sublime Text
Text,, Vim,
Vim, y Visual Studio Code
Code..
El editor recomendado para practicar el código que vamos a ver es Visual Studio
Code (o VSCode) que puedes bajar desde [Link]
[Link]
19
2 PRI
PRIMER
MEROS
OS PASOS
ASOS
2.5.2 Entorno
Para
pecial,usar
pecial JavaScript
, ya que enttu
JavaScrip
JavaScript escomputador, no necesitas
un lenguaje interpretado yinstalar
interpretado ningún
se ejecuta en elsoftware es-
navegador
web. Sin embargo, hay algunas cosas que debes tener en cuenta:
1. Navegador web: es recomendable tener un navegador web actualizado, como
Google Chrome, Mozilla Firefox, Safari, etc.
2. Editor
Editor de texto
texto:: puedes usar un editor de texto sencillo como el Bloc de notas
en Windows o TextEdit en Mac, pero también puedes usar un editor de código
más avanzado como Visual Studio Code, Sublime Text, etc.
3. Conocimient
Conocimiento o básico de HTML y CSS: ya que JavaScript se utili
utiliza
za para agre-
gar dinamismo y interactividad a las páginas web, es importante tener una
comprensión básica de HTML y CSS.
Una vez que tengas estos eleme
elementos,
ntos, estarás
estarás list@ para escribir y ejecutar
ejecutar código
JavaScript en tu navegador. Puedes crear un archivo HTML y agregar tu código
JavaScript dentro de una etiqueta <script> o puedes escribi
escribirr códig
código
o JavaScript
JavaScript di-
rectamente en la consola del navegador.
20
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Tam
ambi
bién
én podr
podría
íass mo
modi
dififica
carr este
este có
códi
digo
go co
con
n tu no
nomb
mbre
re.. Si esJuan, deb
deberí
ería
a imprim
imprimir
ir
en la consola Hola, Juan.
Reto:
Modifica el ejemplo anterior para imprimir Hola Universoen la consola.
3 Gramática
3.1 Sintaxis
La sintaxis de un lenguaje
lenguaje de progra
programació
maciónn es la estructura
estructura de un lenguaje de pro-
gramación, que incluye reglas para la construcción de programas. Estas reglas se
refieren a la forma en que los elementos de un programa se relacionan entre sí,
como los operado
operadores,
res, variable
variables,
s, palab
palabras
ras clave, etc. La sinta
sintaxis
xis también se refie
refiere
re
a la forma en que los programas se escriben, como la indentación y la estructura de
los bloques de código.
3.2 Comentarios
Comentarios (una
(una sola línea y multilínea)
multilínea)
Los comentarios
comentarios en JavaS
JavaScript
cript son línea
líneass de texto que no son inter
interpretad
pretadas
as como
parte del código. Son utilizados para agregar información adicional o notas sobre el
código que puede ser útil para otros desarrolladores o para uno mismo.
21
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Ejemplo:
22
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Reto:
Comenta este código para que ya no corra y se lea como comentario:
23
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Los operadores y las expresiones en JavaScript son una parte importante de la pro-
gramación.
gramac ión. Una expresi
expresión
ón es una combi
combinación
nación de valore
valores,
s, variables y operad
operadores
ores
que se evalúan para producir un resultado. Los operadores son los símbolos que se
usan para realizar operaciones matemáticas, lógicas y de comparación.
Ejemplo:
Por ejemplo, consideremos la siguiente expresión:
En es
estexpresión
Esta ta expr
expres
expresi esi
ónión
ón,
se, evalúa
5 y 3 so
evalú son
n los va
a como val
8 lyor
ores
es,guarda
se , = y + so
son
n los
en los op
unaoper
erad
ador
ores
variablees
. y x es un
variable. una
a va
vari
riab
able
le..
Reto:
Usa los operadores aritméticos para realizar las siguientes operaciones: suma, res-
ta, multiplicación y división entre 10 y 2. Imprime los resultados de las operaciones
en la consola.
24
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
3.5 Palabras
Palabras clave e idenficad
idenficadores
ores
Las palabras
específico enclave en JavaScript
el lenguaje son términos
y no pueden reservados
ser utilizados como que tienen un significado
identificadores. Algunas
de las palabras clave más comunes en JavaScript son var , function, if , else, for ,
while, do, switch, etc.
Un identificador, por otro lado, es un nombre que le das a una variable, función o
objeto en JavaScript. Por ejemplo, podrías crear una variable llamada nombre y
asignarle un valor:
Ejemplo:
Aquí, let es una palabra clave al igual que var para crear una variable y nombre
es un identificador que está asociado con el valor Juan. var y let tienen algunas
diferencias que vas a aprender después.
Reto:
3.6 Sentencias
Sentencias,, declaraciones
declaraciones,, y tipado
Una sentencia es una unidad de código que realiza una acción. Por ejemplo, la
sentencia
sentencia [Link]
[Link]("Hol
("Hola
a mundo
mundo")
") impri
imprime
me el textoHol
Hola
a mun
mundo
doen la pa
pant
ntal
alla
la..
25
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Los bloques en JavaScript son una forma de agrupar código para que sea más fácil
de leer y mantener. Esto se logra mediante la indentación, que es el proceso de
alinear el código para que sea más fácil de leer.
26
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Los bloques se definen usando llaves {} y se usan para agrupar código relacionado.
Por ejemplo:
En este ejemplo, todo el código dentro de las llaves {} se considera parte del bloque
de la función saludar(). Vamos a ver funciones más adelante.
La indentación
indentación se usa para hacer que el código sea más fácil de leer.
leer. Por ejemp
ejemplo,
lo,
en el ejemplo anterior, todas las líneas de código dentro del bloque de la función
saludar() están indentadas para indicar que forman parte del mismo bloque.
Reto:
Intenta escribir una función que imprima un saludo y una pregunta en la consola.
Asegúrate de usar bloques y indentación correctamente.
3.8 Estructuras
Estructuras de control
control de flujo y excepciones
excepciones
Las estructuras de control de flujo son una parte importante de cualquier lenguaje
de programación, y JavaScript no es una excepción. Estas estructuras nos permiten
controlar el flujo de ejecución de nuestro código, permitiéndonos ejecutar ciertas
partes del código solo si se cumplen ciertas condiciones.
Las estructuras de control de flujo más comunes en JavaScript son:
• if: Esta estructura nos permite ejecutar un bloque de código si una condición
es verdadera.
27
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Las excepciones o errores son otra parte importante de JavaScript. Estas nos per-
miten controlar errores en nuestro código, permitiéndonos ejecutar un bloque de
código si se produce un error. Esto nos permite evitar que nuestro código se deten-
ga si se produce un error.
Las excepciones en JavaScript se manejan con la palabra clave try/catch.
Reto:
Crea un programa que muestre un mensaje diferente dependiendo de si es mayor
o menor de edad.
28
3 GR
GRAM
AMÁT
ÁTIC
ICA
A
Reto:
Añade un emoji deros
rostro
tro feliz
feliz(q
(que
ue es un cara
caract
cter
er de Unic
Unicod
ode)
e) a la vari
variab
able
lehappy
.
3.10 Sensibilida
Sensibilidad
d de mayúsculas
mayúsculas y minúsculas
minúsculas
29
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
4 Tipos y variables
30
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
• Booleanos: Estos son valores lógicos que pueden ser true o false, como por
ejemplo: true, false.
• Valores nulos: Estos son valores especiales que representan la ausencia de
un valor, como por ejemplo: null.
• Valores indefinidos: Estos son valores especiales que representan un valor
desconocido, como por ejemplo: undefined.
Ejemplo:
Reto:
Crea
Crea una
una varivariab
able
le llam
llamad
adaa ed
edad
ad y asíg
asígna
nale
le un valo
valorr nu
numé
méri
rico
co de 25.
25. Lueg
Luego,
o, cr
crea
ea una
una
vari
variab
able
le llllam
amad
ada
a no
nombmbre
re y as
asíg
ígna
nale
le un va
valo
lorr de ca
cade
denana de te
text
xto
oJuan. Final
Finalmente
mente,,
crea una variable llamada estaRegistrado y asígnale un valor booleano true.
4.2 Tipos
Tipos de datos no-primiti
no-primitivos
vos
Los tipos de datos no primitivos en JavaScript son aquellos que no son números,
cadenas de texto, booleanos, ni valores especiales como null o undefined. Estos
tipos de datos son objetos, arreglos, funciones y expresiones regulares.
Ejemplo:
31
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea una lista que contenga: mazanas, naranjas, y piñas.
4.3 Primitivos
4.3.1 Texto
32
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea una variable acon 33 como texto.
4.3.2 Número
JavaSc
JavaScri
ript
pt es un le
leng
ngua
uaje
je de pr
prog
ogram
ramac
ació
iónn qu
quee pe
perm
rmitite
e tr
trab
abajajar
ar co
conn nú
núme
mero
ros.
s. Esto
Estoss
núme
nú mero
ross pued
pueden
en ser
ser en
ente
tero
ross (c
(com
omoo 1, 2, 3, etc.
etc.),
), deci
decima
male less (c
(com
omo o 0.1,
0.1, 0.2,
0.2, 0.3,
0.3, etc.
etc.))
o números en notación científica (como 1e2, 1e3, 1e4, etc.).
Ejemplo:
Supongamos que queremo
Supongamos queremoss calcular el área de un círculo con un radio de 5. Pode-
mos usar la siguiente fórmula para calcular el área:
Area = PI * radio^2
En JavaScript,
JavaScript, podemos escribir el código para calcular
calcular el área de la siguient
siguiente
e ma-
nera:
33
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Escribe un programa en JavaScript que calcule el área de un rectángulo con una
base de 10 y una altura de 5.
hacer con el tipo de datos nativo Number, ya que el límite es 2^53 - 1. Para repre-
sentar este número, podemos usar un objeto BigInt:
34
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea un programa que devuelva el resultado de la suma de los dos números
987654321000 y 987654321001 usando BigInt.
4.3.4 Buleano
En JavaScript, un booleano es un tipo de dato que solo puede tener dos valores:
true o false. Estos valores se utilizan para representar una condición verdadera o
falsa.
Ejemplo:
El siguiente código determina si el número 5 es igual a 5 y almacena el resultado en
una variable booleana:
Reto:
35
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
4.3.5 Indefinido
En JavaScript, el valor indefinido se usa para indicar que una variable no tiene un
valor asignado. Esto significa que la variable no se ha inicializado o que se ha elimi-
nado una propiedad de un objeto.
Ejemplo:
En el ejem
ejempl
plo
o an
ante
teri
rior
or,, la vari
variab
able
le x no tien
tiene
e un valo
valorr asig
asigna
nado
do,, por
por lo qu
que
e se im
impr
prim
ime
e
undefined.
Reto:
Crea una variable indefinida llamada sumar e imprime la variable que debe devolver
undefined.
4.3.6 Símbolo
36
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Ejemplo:
Reto:
4.3.7 Nulo
Nulo en JavaScript es un valor especial que se utiliza para indicar que una variable
no tiene un valor asignado. Esto es distinto de undefined ya que si es definido pero
tiene valo nulo. Se representa con la palabra clave null.
Ejemplo:
Reto:
37
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Crea
Crea un
una
a va
vari
riab
able
le llllam
amad
ada
a mi
miNo
Nomb
mbre
re y asíg
asígna
nale
le el va
valo
lorr nu
nullll.. Lu
Lueg
ego,
o, im
impri
prime
me el valo
valorr
de la variable en la consola.
4.4 Objetos
Los objetos en JavaScript son una forma de almacenar y organizar datos. Estos
datos se almacenan en forma de pares clave-valor, donde la clave es una cadena
de texto y el valor puede ser cualqu
cualquier
ier tipo de dato.
Un ejemplo práctico de un objeto en JavaScript es el siguiente:
Reto:
Crea un objeto en JavaScript que represente una computadora, con sus respectivas
4.5 Acceder
Acceder a propiedades
propiedades de objetos
objetos
38
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Supong
Supongamo
amoss que tenemo
tenemoss un objeto
objeto llamad
llamado
o per
person
sona
a con los sig
siguie
uiente
ntess atr
atribu
ibutos
tos::
También podemos acceder a los atributos del objeto usando la notación de corche-
tes:
39
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea un objeto llamado libro con los siguientes atributos: título, autor, año de publi-
cación y editorial. Usa la notación de punto y la notación de corchetes para acceder
a los atributos del objeto y mostrar los valores en la consola.
4.6.1 Mapas
Los mapas en JavaScript son una forma de representar datos en una estructura de
clav
clave-
e-va
valo
lorr. Es
Esto
to si
sign
gnifific
ica
a qu
que
e ca
cada
da elem
elemen
ento
to de da
dato
toss se as
asig
igna
na a un
una
a cl
clav
ave
e ún
únic
ica,
a, y
luego se puede acceder a los datos a través de la clave. Esto es útil para almacenar
y recuperar datos de manera eficiente.
Ejemplo:
Supong
Supo ngam
amosos qu
que
e qu
quer
erem
emos
os al
alma
mace
cena
narr lo
loss no
nomb
mbre
ress de lo
loss es
estu
tudi
dian
ante
tess de un
una
a cl
clas
ase
e
y sus calificaciones. Podemos usar un mapa para hacer esto de la siguiente mane-
ra:
40
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea un mapa que almacene los nombres de los estudiantes y sus edades. Luego,
imprime la edad de un estudiante específico.
4.6.2 Sets
Los Sets en JavaScript son una estructura de datos que almacena valores únicos.
Esto significa que no puede haber dos elementos iguales dentro de un Set. Esto los
hace útiles para almacenar conjuntos de datos sin duplicados.
Ejemplo:
Supongamos que queremos almacenar los nombres de los estudiantes de una cla-
se. Podemos usar un Set para almacenar los nombres de los estudian
estudiantes
tes sin dupli
dupli--
cados.
41
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea
Crea un Set
Set qu
que
e alma
almace
cene
ne los
los no
nomb
mbre
ress de los
los estu
estudi
dian
ante
tess de una
una clas
clase
e y lueg
luego
o ag
agre
re--
ga los nombres de los estudiantes que faltan. Luego, imprime el Set para verificar
que los nombres se hayan agregado correctamente.
4.6.3 WeakMaps
WeakMaps en JavaScript son una estructura de datos que se utiliza para almacenar
pare
pa ress cl
clav
ave-e-va
valo
lorr. Es
Esta
ta estr
estruct
uctur
ura
a de da
dato
toss es simi
simila
larr a un Ma
Map,
p, pe
pero
ro co
conn la dife
diferen
renci
cia
a
de que
que los
los obje
objeto
toss usad
usados
os como
como clav
claves
es de
debebenn ser
ser ob
objejeto
toss dé
débi
bile
les.
s. Es
Esto
to sign
signifific
ica
a qu
quee
los objetos usados como claves no se contarán para el recuento recuento de refere
referencias,
ncias, lo
que
qu e sign
signifific
ica
a qu
que e no se ma
mant
nten
endr
drán
án en memo
memori ria.
a. Esto
Esto hace
hace qu
que
e los
los WeakM
eakMap apss sean
sean
útiles para evitar fugas de memoria.
Ejemplo:
Supongamos que queremos almacenar algunos datos relacionados con un usuario
en un WeakMap. Podemos hacer esto de la siguiente manera:
42
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
4.6.4 WeakSets
43
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea un WeakSet que almacene objetos de usuario y luego usa el método has()
para verificar si un usuario específico está en el WeakSet.
4.7 Listas
Las list
Las listas
as en Java
JavaSc
Scri
ript
pt son
son un
una
a estr
estruc
uctu
tura
ra de dato
datoss qu
quee no
noss perm
permitite
e alma
almace
cena
narr un
una
a
colección de elementos. Estos elementos pueden ser de cualquier tipo, desde nú-
mero
me ross ha
hast
sta
a ob
obje
jeto
tos.
s. Tam
ambi
bién
én lo
loss va
vass a en
enco
cont
ntrar
rar co
conn otro
otross no
nomb
mbres
res cocomo
mo ar
arre
regl
glos
os,,
matrices, arrays, etc.
Ejemplo:
A continuación se muestra un ejemplo de una lista en JavaScript:
44
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea una lista con 5 elementos y accede al tercer elemento de la lista.
45
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
4.9 Fechas
Reto:
Crea una fecha y cambia el formato removiendo year: numericdel ejemplo.
46
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Esta expresión
expresión regular buscará todas las palabras
palabras que comie
comienzan
nzan con la letra a
en una cadena de texto.
Las expresiones regulares requieren su propio curso ya que usan patrones bastan-
tes complejos pero miraremos algunos ejemplos más adelante.
Reto:
Crea una expresión regular para buscar todas las palabras que comienzan con la
letra ben una cadena de texto.
4.111 Declaracion
4.1 Declaracion e inicializació
inicialización
n (var y let)
var es una palabra clave en JavaScript que se utiliza para declarar variables. Una
variable es un contenedor para almacenar datos. Esto significa que una variable
puede cambiar su valor a lo largo del tiempo.
let es una palabra clave en JavaScript que se usa para declarar variables. Esta
palabra clave es similar a la palabra clave var, pero con una diferencia importante:
let limita el alcance de la variable a la declaración de bloque en la que se encuentra.
Esto significa que la variable solo estará disponible dentro del bloque de código en
el que se declaró.
Ejemplo:
47
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea un programa que use la palabra clave let para declarar dos variables, una
dentro de un bloque de código y otra fuera del bloque de código. Luego, imprime el
valor de cada variable en la consola.
4.12 Constantes
Las constantes en JavaScript son variables que no pueden ser reasignadas. Esto
significa que una vez que se asigna un valor a una constante, este no puede ser
cambiado.
Ejemplo:
48
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea una constante llamada SALUDO y asígnale el valor "Hola Planeta". Luego,
imprime el valor de la constante en la consola.
Las plantillas de texto en JavaScript son una forma de crear cadenas de texto con
una sintaxis especial. Estas plantillas permiten la interpolación de variables y expre-
siones dentro de la cadena de texto. Esto significa que podemos insertar variables
y expresiones dentro de una cadena de texto sin tener que concatenar cadenas de
texto.
Ejemplo:
Supongamos que queremos imprimir un saludo personalizado para un usuario. Po-
demos usar una plantilla de texto para hacer esto:
49
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
Reto:
Crea una plantilla de texto que imprima una frase con un nombre, un adjetivo y una
comida. Por ejemplo: John es un chico hambriento que ama la pizza.
Chequear el tipo de una variable en JavaScript es una tarea común que se realiza
para asegurar que los datos sean del tipo correc
correcto.
to. Esto se puede hacer usando la
palabra
palabr a typeo
typeoff de JavaScript
JavaScript.. Esta palabr
palabra
a devuelve una cadena que indica el tipo
de la variable.
Ejemplo:
Reto:
Remplaza el ejemplo usando todos los tipos de datos que has visto hasta ahora.
50
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
4.15 Conversión
Conversión de
de tipos de datos
datos
Crea un programa
con decimales (por que tome"3.14")
ejemplo, una cadena de caracteres
y conviértalo que contiene
a un número un número
con decimales (por
ejemplo, 3.14).
4.16 Coerción
51
4 TIP
TIPOS
OS Y VARI
ARIABL
ABLES
ES
que los datos sean del tipo correcto para una operación específica. Por ejemplo, si
se intenta realizar una operac
operación
ión matemát
matemática
ica con una cadena de texto
texto,, JavaSc
JavaScript
ript
intentará convertir la cadena de texto a un número antes de realizar la operación.
Ejemplo:
Reto:
Intenta sumar revertir el orden deel ejemplo como y + x. ¿Qué sucede?
52
5 OP
OPER
ERAD
ADOR
ORES
ES
5 Operadores
5.1 Operadores
Operadores de aritmétic
aritméticos
os (+, -, *, /, %, **, //, ++, )
• **: Calcu
Calcula
la la potenc
potencia
ia de un número
número..
• //: Reali
Realiza
za una división enter
entera
a entre dos números.
• ++: Incr
Increment
ementa a un número en uno.
• --: Decrem
Decrementa
enta un núme
número
ro en uno.
Ejemplo:
53
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Usa los operadores de aritméticos para calcular el área de un círculo con radio 5.
54
5 OP
OPER
ERAD
ADOR
ORES
ES
Por ejemplo, si queremos calcular la suma de dos números, pero queremos que
se realice la mult
multiplic
iplicación
ación primero,
primero, podem
podemos
os usar el operador de agrupa
agrupación
ción para
asegurarnos de que la multiplicación se realice primero.
Reto:
55
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Une los texto Fatboyy Slimcon el operador + añadiendo un espacio entre las
palabras.
5.4 Operadores
Operadores de asignació
asignación
n (=, +=, -=, *=, /=, %=, **=, //=)
56
5 OP
OPER
ERAD
ADOR
ORES
ES
• -=: Esto significa restar de. Esto significa que el valor de la variable se
reducirá en la cantidad especificada.
Ejemplo:
• *=: Esto significa multiplicar por. Esto significa que el valor de la variable
se multiplicará por la cantidad especificada.
Ejemplo:
57
5 OP
OPER
ERAD
ADOR
ORES
ES
• /=: Esto significa dividir entre. Esto significa que el valor de la variable se
dividirá entre la cantidad especificada.
Ejemplo:
• %=: Esto significa módulo de. Esto significa que el valor de la variable
variable se
calculará como el resto de la división entre la cantidad especificada.
Ejemplo:
58
5 OP
OPER
ERAD
ADOR
ORES
ES
59
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Usa los operadores de asignación para calcular el área de un cuadrado donde el
lado es igual a 5.
5.5 Operadores
Operadores comparati
comparativos
vos (==, !=, >, <, >=, <=)
Los operadores comparativos en JavaScript son usados para comparar dos valores
y determinar si son iguales o diferentes. Estos operadores son:
• == (i
(igua
guall a)
• != (n
(noo igu
igual
al a)
• > (ma
(mayor
yor qque)
ue)
• < (me
(menor
nor qque)
ue)
• >= (mayor o igual que)
• <= (menor o igual que)
Ejemplo:
60
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Escribe un programa que compare dos números y determina si el primero es mayor,
menor o igual al segundo.
5.6 Comparar
Comparar por valor
valor y por referencia
referencia
Comparar por valor significa comparar los valores de dos variables para determinar
si son iguales.
Ejemplo:
61
5 OP
OPER
ERAD
ADOR
ORES
ES
Las vari
variabl
ables
es pri
primit
mitiva
ivass se pas
pasan
anpor val
valor
ory lo
loss ob
obje
jeto
tos,
s, lilist
stas
as,, y dato
datoss no pr
prim
imititiv
ivos
os
se pasan por referencia
referencia. Esto quiere decir que al compararlos se compara la
dirección en la memoria y no su valor.
Ejemplo:
Esta es una de las fuentes más comunes de errores al trabajar con JavaScript en la
industria de software. Un solución común es usar librerías o [Link]() para
convertir los objetos a texto y comparar su valor.
Reto:
Crea dos variables de tipo lista con el mismo valor y comprueba si son iguales usan-
do el operador de igualdad (==).
5.7 Operadores
Operadores lógicos
lógicos (&&,
(&&, ||, !)
Los operadores lógicos en JavaScript son && (AND), || (OR) y ! (NOT). Estos ope-
radores se usan para realizar comparaciones entre expresiones y devolver un valor
booleano (verdadero o falso).
El op
oper
erad
ador
or && (A
(AND
ND)) de
devu
vuel
elve
ve ve
verd
rdad
ader
ero
o si am
amba
bass ex
expr
pres
esio
ione
ness so
son
n ve
verd
rdad
adera
eras.
s.
Ejemplo:
62
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Escribe una línea de código que devuelva true si x es mayor que 0 y y es menor que
0.
63
5 OP
OPER
ERAD
ADOR
ORES
ES
En este ejemplo se usa el operador & para realizar una operación AND bit a bit entre
los números a y b. El resultad
resultado
o de esta operación
operación es 0.
Reto:
Para re
Para refo
forz
rzar
ar lo apre
aprend
ndid
ido,
o, el re
reto
to cons
consis
iste
te en re
real
aliz
izar
ar un
una
a op
oper
erac
ació
ión
n bit
bit a bit
bit usan
usando
do
el operador | entre los números a y b del ejemplo anterior. El resultado de esta
operación debe ser 15 (1111 en binario).
5.9 Operadores
Operadores unarios
unarios (delete,
(delete, typeof, void)
Los operadores unarios son un tipo de operador que toma un solo operando (un
argum
arg umen
ento
to)) para
para re
real
aliz
izar
ar un
una
a op
oper
erac
ació
ión.
n. En Ja
Java
vaSc
Scri
ript
pt,, ha
hayy tr
tres
es op
oper
erad
adore
oress un
unari
arios
os
principales: delete, typeof y void.
El operador delete se utiliza para eliminar una propiedad de un objeto. Por ejemplo,
si tenemos un objet
objeto
o llam
llamado
ado persona con una propiedad llamad
llamada
a edad, podemos
eliminar la propiedad edad con el siguiente código:
64
5 OP
OPER
ERAD
ADOR
ORES
ES
El operador typeof se utiliza para determinar el tipo de una variable. Por ejemplo, si
tenemos una variable llamada nombre que contiene una cadena, podemos determi-
nar su tipo con el siguiente código:
El operador void se utiliza para evaluar una expresión y devolver undefined. Por
ejemplo, si queremos evaluar una expresión y devolver undefined, podemos usar el
siguiente código:
Reto:
Intenta crear un objeto llamado auto con una propiedad llamada marca y luego eli-
minar la propiedad marca usando el operador delete.
65
5 OP
OPER
ERAD
ADOR
ORES
ES
5.10 Operadores
Operadores relacionale
relacionaless (in, instanceof)
instanceof)
Ejemplo:
66
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Usa instanceof para ver la instancia de un número.
El op
oper
erad
ador
or sp
sprea
read
d (.
(...
..)) es un
una
a ca
cara
ract
cter
erís
ístitica
ca de Ja
Java
vaSc
Scri
ript
pt que
que pe
perm
rmitite
e expa
expand
ndir
ir un
una
a
expresión en varios argumentos o elementos. Esto significa que se puede usar para
expandir una lista, un objeto o una cadena de texto en lugares donde se esperan
varios argumentos o elementos.
Ejemplo:
Supo
Supong
ngam
amos
os que
que te
tene
nemo
moss una
una lilist
sta
a de núme
números
ros y qu
quere
eremo
moss im
impr
prim
imir
ir ca
cada
da elem
elemen
ento
to
de la lista.
67
5 OP
OPER
ERAD
ADOR
ORES
ES
Reto:
Usa el operador spread para crear una nueva lista que contenga los elementos de
dos listas diferentes.
El oper
operad
ador
or de co
coma
ma en Ja
Java
vaSc
Scri
ript
pt es un oper
operad
ador
or bina
binari
rio
o qu
que e se ut
utililiz
iza
a pa
para
ra se
sepa
para
rarr
expre
expresi
sion
ones
es in
indi
divi
vidu
dual
ales
es de
dent
ntro
ro de una
una se
sent
nten
enci
cia.
a. Es
Esto
to sign
signifific
ica
a qu
que
e cada
cada expre
expresi
sión
ón
se evalúa por separado y el resultado de la última expresión se devuelve como
resultado de la sentencia.
Ejemplo:
Por ejemplo, el siguiente código usa el operador de coma para evaluar dos expre-
siones y devolver el resultado de la segunda expresión:
68
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.1 Condicionales
6.1.1 if
if es una estruc
estructura
tura de control de flujo en JavaScrip
JavaScriptt que permit
permite
e ejecutar una sec-
ción de código si una condición es verdadera. Si la condición es falsa, se puede
ejecutar otra sección de código.
Ejemplo:
69
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Reto:
Escribe un código que compruebe si un número es par o impar.
6.1.2 if else
if...else es una estructura de control de flujo en JavaScript que permite a los progra-
madores tomar decisiones basadas en condiciones. Esta estructura se compone de
dos partes: una condición (if) y una acción (else). Si la condición se evalúa como
verdadera, se ejecuta la acción asociada al if; de lo contrario, se ejecuta la acción
asociada al else.
Ejemplo:
Supo
Supong
ngam
amos
os qu
quee qu
quere
eremo
moss escr
escrib
ibir
ir un pr
prog
ogra
rama
ma que
que im
impr
prim
ima
a un mens
mensaj
aje
e dife
diferen
rente
te
dependiendo de si una variable es mayor o menor que 10. Podemos hacer esto con
una estructura ifelse:
70
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
En este ejemplo, la variable num se evalúa para ver si es mayor que 10. Si es así,
se imprime el mensaje El número es mayor que 10 ; de lo contrario, se imprime
el mensaje El número es menor que 10.
Reto:
Escribe un programa que imprima un mensaje diferente dependiendo de si una va-
riable es mayor, menor o igual a 10.
ifif..
...e
.elilif.
f...
..el
else
se es un
una
a estr
estruc
uctu
tura
ra de co
cont
ntro
roll de fluj
flujo
o en Ja
Java
vaSc
Scri
ript
pt qu
que
e pe
perm
rmitite
e a lo
loss pro
pro--
71
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Reto:
Escribe
Escrib e un programa
programa que impri
imprima
ma un mensa
mensaje
je que indiq
indique
ue si el usuario puede jubi-
larse, es mayor a 80 o ambas cosas.
Ejemplo:
72
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Reto:
Escribe
Escribe una línea de código usando el operador ternario para asignar el valor Es
par a la variable mensaje si el número numero es par, o Es impar si el
número numeroes impar.
73
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Este código funciona pero se debe evitar ya que complica la legibilidad. En su lugar
se recomienda usar claúsulas de guarda.
Reto:
Escribe un código que evalú
Escribe evalúe
e si un número es mayor que 10 y menor que 20. Si se
cumple, imprime El número está entre 10 y 20. Si no se cumple, imprime El
número no está entre 10 y 20.
6.1.6 switch
switch en JavaScript es una estructura de control que nos permite evaluar una ex-
presión y ejecutar un bloque de código específico dependiendo del resultado de
la evaluación. Esta estructura de control es útil cuando hay una gran cantidad de
posibles resultados para una expresión.
Ejemplo:
74
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
75
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.2 Bucles
6.2.1 for
for es una estructura de control en JavaScript que se utiliza para iterar sobre una se-
cuencia de elementos. Esta estructura de control se compone de una inicialización,
una condición de parada y una actualización.
Ejemplo:
6.2.2 while
while es una estructura de control de flujo en JavaScript que se usa para ejecutar
una serie de instrucciones mientras se cumpla una condición. Esta condición se
evalúa antes de cada iteración del bucle.
Ejemplo:
76
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.2.3 do while
do...while es una estructura de control de bucle en JavaScript que ejecuta una sen-
te
tenc
ncia
ia o bl
bloq
oque
ue de có
códi
digo
go una
una ve
vez,
z, y lu
lueg
ego
o co
cont
ntin
inúa
úa ejec
ejecut
után
ándo
dolo
lo mi
mien
entr
tras
as se cump
cumpla
la
una condición. Esta estructura es útil cuando se necesita asegurar que una senten-
cia se ejecute al menos una vez.
Ejemplo:
77
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.2.4 continue
continue es una palabra clave en JavaScript que se usa para saltar a la siguiente ite-
ració
rac ión
n de un bucl
bucle.
e. Es
Esto
to sign
signifific
ica
a qu
que
e cu
cuan
ando
do se en
encu
cuen
entr
tra
a una
una in
inst
stru
rucc
cció
ión
n co
cont
ntin
inue
ue,,
el código de la iteración actual se salta y se continúa con la siguiente iteración.
Ejemplo:
Por ejemplo, si queremos imprimir todos los números pares entre 0 y 10, podemos
usar un bucle for con una instrucción continue para saltar los números impares:
78
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
0
2
4
6
8
10
Reto:
Escrib
Escr ibe
e un prog
progra
rama
ma que
que im
impr
prim
ima
a los
los nú
núme
mero
ross im
impa
pare
ress entr
entre
e 0 y 10 usan
usando
do un bucl
bucle
e
for y una instrucción continue.
6.2.5 break
break es una palabra clave en JavaScript que se usa para salir de un bucle. Esto
significa que cuando se encuentra una instrucción break, el bucle se detiene y el
control se transfiere a la siguiente instrucción después del bucle.
Ejemplo:
79
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.2.6 Etiquetas
Una etiqueta en JavaScript es una forma de etiquetar una instrucción para que sea
máss fá
má fáci
cill de id
iden
entitififica
carr (no co
conf
nfun
undi
dirr co
con
n et
etiq
ique
ueta
tass de HTML
HTML).). Esto
Esto se ha
hace
ce me
medi
dian
ante
te
una pal
palabra
abraetiquetasegu seguid
ida
a de dos
dos pupunt
ntos
os y un bucl
bucle.
e. Se pued
puedee indi
indica
carr qu
que
e ha
hace
cerr
después de break o continue indicando la etiqueta.
Ejemplo:
80
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.2.7 for in
for...in es una estructura de control de bucle en JavaScript que se utiliza para iterar
sobre los elementos de un objeto. Esta estructura de control se utiliza para recorrer
los elementos de un objeto y realizar una acción para cada elemento.
Ejemplo:
Supong
Supongamo
amoss que tenemo
tenemoss un objeto
objeto llamad
llamado
o per
person
sona
a con los sig
siguie
uiente
ntess atr
atribu
ibutos
tos::
81
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Podemos usar for...in para recorrer los atributos de este objeto y mostrar su valor
en la consola:
nombre:
edad: 25 Juan
ciudad: Madrid
Reto:
Crea un objeto llamado libro con los siguientes atributos: título, autor, año de publi-
cación y género. Usa for...in para recorrer los atributos del objeto y mostrar su valor
en la consola.
82
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.2.8 for of
for...of es una estructura de control de bucle en JavaScript que se utiliza para iterar
sobre los elementos
elementos de un objeto iterable,
iterable, como una lista,
lista, una cadena o un objet
objeto.
o.
Esta estructura de control de bucle es una forma más moderna de bucle que se
introdujo en ES6.
Ejemplo:
A continuación se muestra un ejemplo de cómo usar forof para iterar sobre los
elementos de una lista:
Reto:
Utiliza forof para iterar sobre los elementos de este mapa y mostrar los valores en
la consola.
83
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.3 Excepciones
6.3.1 Tipo
Tiposs de excepciones
excepciones
84
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Reto:
Escribe un códig
Escribe código
o que inten
intente
te acceder a un elemento de una lista que no existe, lo
que provocará una excepción de referencia.
85
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Los objetos de errores en JavaScript son objetos que se utilizan para representar
errores que ocurre
ocurren
n durant
durante
e la ejecución de un programa. Estos objetos contienen
contienen
in
info
form
rmac
ació
ión
n so
sobr
bre
e el er
error
ror,, co
como
mo el no
nomb
mbre
re del
del er
erro
rorr, una
una de
desc
scri
ripc
pció
ión
n de
dell err
error
or,, y un
una
a
pila de llamadas que muestra dónde se produjo el error.
Ejemplo:
Reto:
Crea código que produzca un error. Atrápalo con try catch y revisa sus propieda-
des.
86
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
Reto:
Intenta escribir código con problemas de sintaxis y utiliza try catchfinally para
controlar los errores.
87
6 ESTRU
ESTRUCTUR
CTURAS
AS DE CONTROL
CONTROL DE FLUJO
6.3.5 throw
La sentencia throw en JavaScript permite lanzar una excepción, es decir, una si-
tuación
tuaci ón anormal que interrumpe
interrumpe el flujo normal de un programa. Esta sentencia se
utiliza para generar errores personalizados, y se debe usar dentro de un bloque
try...catch para poder controlar el error.
Ejemplo:
Reto:
Verifica si un número es par o impar. Si el número no es un entero, lanza una excep-
ción con la sentencia throw.
88
7 FU
FUNC
NCIO
IONE
NES
S
7 Funciones
En JavaScript, una función es un bloque de código diseñado para realizar una ta-
rea específica. Las funciones se pueden definir para realizar cualquier tarea, desde
realizar cálculos hasta mostrar mensajes en la pantalla.
Ejemplo:
Por ejemplo, aquí hay una función simple que calcula el área de un cuadrado dado
su lado:
Reto:
Escribe una función que calcule el área de un círculo dado su radio.
89
7 FU
FUNC
NCIO
IONE
NES
S
metros
metr os son
son los
los no
nomb
mbre
ress de vari
variab
able
less qu
que
e se usan
usan para
para re
reci
cibi
birr los
los ar
argu
gume
ment
ntos
os de
dent
ntro
ro
de la función.
Ejemplo:
Supong
Supo ngam
amos
os qu
que
e te
tene
nemo
moss una
una fu
func
nció
ión
n llllam
amad
ada
a su
suma
mar()
r() que
que re
reci
cibe
be dos
dos parám
parámet
etros
ros::
a y b.
Cuando
Cuan do llllam
amam
amos
os a la fu
func
nció
ión
n su
suma
mar()
r() pasa
pasamo
moss dos
dos arg
argum
umen
ento
tos:
s: 2 y 3. Es
Esto
to perm
permitite
e
reutilizar la función de forma dinámica con diferentes valores.
En este ejemplo,
ejemplo, los parámetro
parámetross son a y b, y los argumen
argumentos
tos son 2 y 3.
Reto:
Crea una función llamada multiplicar() que reciba dos parámetros e imprima el re-
sultado de multiplicar los dos argumentos. Luego, llama a la función con dos argu-
mentos y comprueba que el resultado sea correcto.
90
7 FU
FUNC
NCIO
IONE
NES
S
7.3 Parámetros
Parámetros predeterm
predeterminado
inadoss
Reto:
Escribe una función llamada calcularArea que tome dos parámetros, ancho y alto,
e imprima el área de un rectángulo. Si alguno de los parámetros no se proporciona,
asígnale el valor predeterminado de 10.
7.4 Parámetros
Parámetros de descans
descanso
o (rest)
Los parámetros
parámetros de descanso (rest) en JavaSc
JavaScript
ript son una forma de recopilar argu-
mentos en una función. Esto significa que, en lugar de recibir una cantidad fija de
argumentos, una función puede recibir un número variable de argumentos.
Ejemplo:
91
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Crea una función que tome una cantidad variable de cadenas de texto e imprima
una cadena de texto con todas las cadenas concatenadas.
92
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Crea una función que tome un número variable de argumentos y devuelva la suma
de todos los argumentos pasados.
7.6 Retorno
return en JavaScript es una palabra que se usa dentro de una función para devolver
un valor. Esto significa que una vez que se ejecuta una función, el valor devuelto se
puede usar en otra parte del código. Esto es útil para evitar la repetició
repetición
n de códig
código
o
y para ahorrar tiempo.
Ejemplo:
Por ejemplo, consideremos una función que calcula el área de un círculo.
93
7 FU
FUNC
NCIO
IONE
NES
S
7.7 Declaración
Declaración y expresion
expresion de funciones
funciones
Declaraci
Declar ación
ón de fun
funcio
ciones
nes Una declaración de función es una form forma
a de crear una
función en JavaScript. Esta es la sintaxis básica para crear una función:
94
7 FU
FUNC
NCIO
IONE
NES
S
Expresión de funci
Expresión funciones
ones Una expres
expresión
ión de funci
función
ón es otra forma de crear una
función en JavaScript. Esta es la sintaxis básica para crear una función:
Ejemplo:
A continuación se muestra un ejemplo de una función declarada y una función ex-
presada:
95
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Crea una función declarada como expresión llamada calcularSuma que tome dos
números como parámetros y devuelva la suma de los dos números.
96
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Intenta crear una función anidada que tome un parámetro y lo multiplique por dos.
97
7 FU
FUNC
NCIO
IONE
NES
S
98
7 FU
FUNC
NCIO
IONE
NES
S
de los dos números y un número local. Asegúrate de que la función tenga el alcance
correcto para que los parámetros sean accesibles dentro de la función.
7.10 Devolución
Devolución de llamada
llamada (Callbacks)
(Callbacks)
Una devolución de llamada (callback) en JavaScript es una función que se pasa
como argumento a otra función. Esta función se ejecuta cuando la función a la que
se le pasó como argumento termina de ejecutarse. Esto permite que se ejecuten
ciertas acciones una vez que una función ha terminado de ejecutarse.
Ejemplo:
Un ejemplo práctico de una devolución de llamada (callback) en JavaScript es el
siguiente:
En este ejemplo, la función saludar recibe como argumento el nombre de una perso-
na y una función (la devolució
devoluciónn de llam
llamada).
ada). La función saludar imprime un salud
saludo
o
con el nombre de la persona y luego ejecuta la función que se le pasó como ar-
gumento (la devolución de llamada). En este caso, la devolución de llamada es la
función despedirse, que imprime una despedida.
99
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
El reto consiste en crear una función que reciba como argumento un número y dos
funciones (una devolución de llamada y otra devolución de llamada opcional). La
función debe imprimir el número recibido como argumento y luego ejecutar la de-
volución de llamada. Si se recibe una segunda devolución de llamada, esta debe
ejecutarse después de la primera.
En este ejemplo, aunque la variable message se está utilizando antes de ser de-
clarada, no produce un error. Esto se debe a que, en realidad, la declaración de la
variable se eleva al inicio del scope en el que se encuentra. Por lo tanto, el código
anterior es equivalente a:
100
7 FU
FUNC
NCIO
IONE
NES
S
Las funciones también son elevadas en JavaScript. Esto significa que puedes invo-
car una función antes de haberla declarado en el código.
Ejemplo:
En este ejemplo, la función saludar es invocada antes de ser declarada, pero toda-
vía se ejecuta correctamente. Esto se debe a que la declaración de la función es
elevada al inicio del scope en el que se encuentra. Por lo tanto, el código anterior
es equivalente a:
101
7 FU
FUNC
NCIO
IONE
NES
S
Es importante tener en cuenta que, a diferencia de las variables, las funciones de-
claradas con la palabra clave function son elevadas en su totalidad, incluido su
cuerpo. Mientras
miFuncion que las funciones
= function() declaradas
{...}) son elevadas como
solo expresiones
hasta de función
la declaración ( const
de la variable,
no su cuerpo
cuerpo..
Reto:
Crea un pequeño programa en el que declares una función como expresión de fun-
ción y luego la invoques antes de haberla declarada. Verifica que haya un error y
explica por qué sucede.
7.12 Recursividad
102
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Crea
Crea una
una fu
func
nció
ión
n rec
recur
ursi
siva
va para
para ca
calc
lcul
ular
ar el n-
n-és
ésim
imo
o nú
núme
mero
ro de Fi
Fibo
bona
nacccci.i. El n-
n-és
ésim
imo
o
número de Fibonacci es el resultado de la suma de los dos números anteriores en
la secuencia.
secuencia. Por ejemplo, el númer
número o de Fibonacci
Fibonacci de 5 es 5 (3 + 2).
103
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Crea una función que tome una cadena como argumento y devuelva una función
que tome una cadena como argumento y devuelva la cadena original concatenada
con la cadena pasada como argumento.
104
7 FU
FUNC
NCIO
IONE
NES
S
Reto:
Crea una función de flecha que tome dos números como argumentos y devuelva su
producto.
7.15 Funciones
Funciones predefini
predefinidas
das
105
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Utiliza la función [Link]() para encontrar el número más pequeño de la lista [2, 4,
6, 8].
Lo
Los
s nú
núme
Estos meros
ros deci
dese
números cima
male
less en
usan Java
Ja
para vaSc
Scri
ript
pt so
son
representar nfracciones
nú
núme
meros
ros que
qu
oenúmeros
cont
contie
iene
nen
n undecimales.
con punt
punto
o de
deci
cima
mal.l.
Ejemplo:
Reto:
Crea una variable llamada numeroDecimal y asígnale un número decimal. Luego,
imprime el valor de la variable en la consola.
Los números binarios son un sistema de numeración que utiliza solo dos dígitos, 0 y
1. Estos números se utilizan en computadoras para representar información, ya que
106
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
los circuitos electrónicos de una computadora solo pueden entender dos estados:
encendido o apagado. Estos dos estados se representan con 0 y 1, respectivamen-
te.
En JavaScript,
JavaScript, los número
númeross binar
binarios
ios se repres
representan
entan con el prefijo 0b. Por ejemplo,
el número binario 1101 se representa como 0b1101.
Ejemplo:
Reto:
Utiliza el prefijo 0b para convertir el número binario 1100 a decimal.
Los números octales en JavaScript son una forma de representar números enteros
usando una base 8. Esto significa que cada dígito en un número octal representa
una potencia de 8. Los números octales se escriben con un prefijo de 0o (cero y la
letra o).
Ejemplo:
107
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Escribe un programa que tome un número octal como entrada y lo convierta a un
número decimal.
Reto:
Crea una variable llamada hexNumber2 y asígnale el valor 0xA3. Luego, imprime el
valor de la variable en la consola.
108
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
8.1.5 Infiniy
Reto:
Escribe una función que tome dos números como argumentos y devuelva el resul-
tado de dividir el primer número entre el segundo. Si el segundo número es 0, la
función debe devolver Infinity.
8.1.6 NaN
NaN (N
NaN (Not
ot a Nu
Numb
mber
er)) es un valo
valorr espe
especi
cial
al en Java
JavaSc
Scri
ript
pt qu
que
e se de
devu
vuel
elve
ve cuan
cuando
do una
una
operación matemática no puede ser realizada. Por ejemplo, si intentamos dividir un
número por cero, el resultado será NaN.
Ejemplo:
109
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Escribe una función llamada esNaN que tome un argumento y devuelva true si el
argumento
argume nto es NaN y false si no lo es.
• MA
MAX_X_VVAL
ALUE
UE:: El núme
número
ro más
más grgran
ande
de qu
que
e se pu
pued
ede
e re
repr
pres
esen
enta
tarr en Ja
Java
vaSc
Scri
ript
pt..
• MIN_VALUE: El número más pequeño que se puede representar en JavaS-
cript.
• NEGATIVE_INFINITY: Representa el valor infinito negativo.
• POSITIVE_INFINITY: Representa el valor infinito positivo.
• NaN: Repr
Representa
esenta un valo
valorr no numérico.
110
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
• toExpo
toExponenti
nential():
al(): Devuel
Devuelveve una cadena que represent
representaa el númer
número
o en notaci
notación
ón
exponencial.
• toFixed(): Devuelve una cadena que representa el número con el número de
decimales especificado.
• toPrec
toPrecision
ision():
(): Devuelv
Devuelve e una cadena que represen
representa
ta el número con el número
número
de dígitos especificado.
• toStri
toString():
ng(): Devue
Devuelve
lve una cadena que represent
representa
a el número.
• valueO
valueOf():
f(): Devue
Devuelve
lve el valor numérico del númer
número.
o.
Ejemplo:
Reto:
Utiliza los métodos del objeto Number para crear una función que tome un número
111
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
como parámetro y devuelva una cadena con el número formateado con dos decima-
les.
Number.MIN_VALUE [Link].MIN_V
MIN_VALUE
ALUE es una constante de JavaScript que
representa el número más pequeño representable en una variable de tipo Number.
Esta constante es igual a 5e-324.
Ejemplo:
Reto:
Crea una variable llamada maxValue y asígnale el valor de Number.MAX_VALUE.
Luego, imprime el valor de maxValue en la consola.
112
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Utiliza la constante Number.MAX_VALUE para calcular el resultado de la siguiente
operación:
1.7976931348623157e+308 + 1
Number.POSITIVE_INFINITY Number.POSITIVE_INFINITY
Number.POSITIVE_INFINITY es una propiedad de
JavaScript que representa el valor infinito positivo. Esto significa que el valor es
mayor que cualquier otro número.
Ejemplo:
Reto:
Crea una variable llamada y y asígnale el valor de Number.POSITIVE_INFINITY.
Luego, imprime el valor de y en la consola.
113
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una función que tome dos números como parámetros y devuelva el número
más pequeño. Si alguno de los números es Number.NEGATIVE_INFINITY, la fun-
ción debe devolver Number.NEGATIVE_INFINITY.
114
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una función que tome un número como argumento y devuelva true si el nú-
mero es menor o igual que Number.MAX_SAFE_INTEGER y false si el número es
mayor.
Propiedades Las propiedades del objeto Math son constantes que contienen va-
lores matemáticos específicos. Algunos ejemplos de propiedades son:
• Math.
[Link]:
PI: El núm
número
ero pi (3.141
(3.14159
59)
• Math.
Math.E:
E: El númer
númeroo e (2.71828)
• Math.
[Link]
SQRT2:
T2: La raíz cuadrad
cuadrada
a de 2 (1.414
(1.41421
21)
115
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Utiliza los métodos y propiedades del objeto Math para calcular el área de un rec-
tángulo con un ancho de 10 y un alto de 5.
116
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Propiedades
Métodos
• BigInt(): Esta función se usa para convertir un número entero a un BigInt.
•• toString()
valueOf():: Esta
Esta función
función se
se usa
usa para
para convertir
convertir un
un BigInt
BigInt aa un
unanúmero
cadena.
entero.
• toLocaleString(): Esta función se usa para convertir un BigInt a una cadena
con formato local.
Ejemplo:
A continuación se muestra un ejemplo de cómo usar BigInt en JavaScript:
Reto:
Intenta crear una función que tome un BigInt como argumento y devuelva el número
entero más grande que se puede representar con seguridad en JavaScript.
117
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
El ob
obje
jeto
to Da
Date
te en Java
JavaSc
Scri
ript
pt es un obje
objeto
to na
natitivo
vo qu
que
e no
noss perm
permitite
e tr
trab
abaj
ajar
ar con
con fech
fechas
as
y horas. Está diseñado para ser compatible con la mayoría de los navegadores y
sistemas operativos.
Propiedades Las propiedades del objeto Date nos permiten obtener información
información
sobre la fecha y hora actual. Algunas de las propiedades más comunes son:
• getFullYear(): Devuelve el año actual.
• getMo
getMonth():
nth(): Dev
Devuelve
uelve el mes actual.
actual.
• getDat
getDate():
e(): Devue
Devuelve
lve el día del mes actual.
actual.
• getHou
getHours():
rs(): Devue
Devuelve
lve la hora actual
actual..
• getMinutes(): Devuelve los minutos actuales.
118
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Utiliza el objeto Date para crear una función que devuelva la fecha y hora de una
semana a partir de la fecha y hora actuales.
8.3.1 Secuen
Secuencias
cias de escap
escapee
119
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
se mostrará como:
Esta cadena contiene una barra invertida: \
Reto:
Escribe una cadena de texto que contenga
Escribe contenga una tabul
tabulación
ación y un salto de línea. Usa
la secuencia de escape adecuada para mostrar el resultado correcto.
En JavaScript,
JavaScript, podemos convertir una cadena de texto a un número usando la fun-
ción parseInt() o parseFloat(). Estas funciones toman una cadena de texto como
argumento
argume nto y devuel
devuelven
ven un número entero o un número de punto flot
flotante,
ante, respecti-
respecti-
vamente.
Ejemplo:
120
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una función que tome una cadena de texto como argumento y devuelva un
núme
nú mero
ro ente
entero
ro.. La ca
cade
dena
na de te
text
xto
o pu
pued
ede
e co
cont
nten
ener
er núme
números
ros ente
entero
ross o de
deci
cima
male
les.
s. Si
la cadena de texto contiene un número decimal, la función debe devolver el número
entero más cercano.
121
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
• indexO
indexOf():
f(): Esta funci
función
ón devuelve la posició
posición
n de la primera aparición
aparición de un ca-
texto.
Reto:
Crea una función que reciba una cadena de texto y un carácter como parámetros y
devuelva
devuelva el número de veces que aparec
aparece
e el caráct
carácter
er en la cadena de texto
texto..
122
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Busca en línea la expresión regular para validar una dirección de correo electrónico
e intenta decifrar lo que hace.
Las búsquedas con banderas en expresiones regulares en JavaScript son una for-
ma de modificar el comportamiento de una expresión regular. Estas banderas se
123
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
de la búsqueda.
Las banderas más comunes son:
• i: Esta bandera hace que la búsqueda sea insensible a mayúsculas y minús-
culas.
• g: Esta bandera hace que la búsqueda sea global, es decir, que busque todas
las coincidencias en el texto.
• m: Esta bandera hace que la búsqueda sea multilínea, es decir, que busque
coincidencias en todas las líneas del texto.
Ejemplo:
Supongamos que queremos buscar la palabra holaen un texto. Si usamos la
expresión regular /hola/ sin banderas, sólo encontrará la primera coincidencia.
Si usamos la expresión regular /hola/g, buscará todas las coincidencias en el tex-
to.
Reto:
Escribe una expresión regular que busque todas las palabras que empiecen por
holaen un texto, sin importar si están en mayúsculas o minúsculas.
124
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
las
• multioline:
no. Indica
multiline: Indica si la búsqueda
búsqueda debe ser realizada en múltip
múltiples
les líneas o no.
• lastIndex: Indica el índice de la última coincidencia encontrada.
• source: Dev
Devuelve
uelve la expresi
expresión
ón regular como una cadena.
Ejemplo:
Supongamos
Supong amos que queremos buscar todas las palabras que comienzan con la letra
aen una cadena de texto. Para ello, podemos utilizar el siguiente código:
125
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
En este ejemplo, hemos creado una expresión regular con la propiedad global para
buscar todas las palabras que comienzan con la letra aen la cadena de texto.
Luego,
Lue go, hemos
hemos utiliz
utilizado
ado el mét
método
odo match(
match()) par
para
a bus
buscar
car las coinci
coinciden
dencia
ciass y alm
almace
acenar
nar
los resultados en un array.
Reto:
Utiliza el objeto RegExp para buscar todas las palabras que comienzan con la letra
ben una cadena de texto.
Insertar elementos en una lista en JavaScript es una tarea sencilla. Esto se puede
Insertar
hacer usando el método push(). El método push() agrega un elemento al final de
una lista y devuelve la nueva longitud de la lista.
Ejemplo:
126
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una lista con los números del 1 al 5 y agrega el número 6 al final de la lista
usando el método push().
127
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una lista con 5 elementos y usa los métodos push(), pop(), shift() y unshift()
para modificar los elementos de la lista.
En JavaScript, hay varias formas de borrar elementos de una lista. Una forma es
usar el método splice(). Este método toma dos argumentos: el índice del elemento
que se desea borrar y la cantidad de elementos que se desean borrar. Por ejemplo,
para borrar el tercer elemento de una lista, se usaría el siguiente código:
128
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Otra forma de borrar elementos de una lista es usar el método pop(). Este método
borra el últim
último
o eleme
elemento
nto de la lista. Por ejemplo,
ejemplo, para borrar el último element
elemento
o de
una lista, se usaría el siguiente código:
Reto:
Crea una lista con 5 elementos y borra el tercer elemento usando el método
splice().
El objeto Array en JavaScript es un objeto global que se utiliza para almacenar y ma-
nipular datos. Está formado por una serie de propiedades y métodos que permiten
trabajar con los datos de una forma más eficiente.
129
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
• push(): Est
Este
e método añade uno o más eleme
elementos
ntos al final del array.
array.
• pop(): Este método elimina el último elemento del array.
• shift(): Este método elimina el primer elemento del array.
• unshift(): Este método añade uno o más elementos al principio del array.
• sort(): Este método ordena los elementos del array.
Ejemplo:
Supongamos
Supongamos que tenemos un array con los números del 1 al 10:
Podemos usar el método sort() para ordenar los elementos del array de forma as-
cendente:
Reto:
Crea un array con los nombres de tus amigos y usa el método sort() para ordenarlos
alfabéticamente.
130
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
length lengt
length
h es una propiedad de los objeto
objetoss de JavaScript que devuelve
devuelve la lon-
gitud de una cadena, un array o un objeto. Esta propiedad es útil para determinar el
número de elementos en una cadena, un array o un objeto.
Ejemplo:
Supongamos que tenemos un array llamado coloresque contiene los siguientes
elementos:
Reto:
Crea una función llamada contarElementosque tome un array como parámetro
y devuelva el número de elementos en el array.
131
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
8.5.6 Métod
Métodos
os comunes de lis
listas
tas
Reto:
Utiliza el método concat() para unir tres cadenas de texto y guarda el resultado en
una variable.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
indexOf() El mé
méto
todo
do inde
indexO
xOf(
f()) busc
busca
a un elem
elemen
ento
to espe
especí
cífifico
co en una
una list
lista
a y de
devu
vuel
el--
Reto:
Utiliza el método indexOf() para buscar un elemento en una lista y guardar su índice
en una variable.
Método de lista push() y pop() Los métodos push() y pop() son métodos de lista
en JavaScript que se utilizan para agregar y eliminar elementos de una lista. El
método push() agrega un elemento al final de la lista, mientras que el método pop()
elimina el último elemento de la lista.
Ejemplo:
133
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una lista con los números del 1 al 10 y usa los métodos push() y pop() para
agregar y eliminar elementos de la lista.
Método de lista shift() y unshift() Los métodos shift() y unshift() son métodos de
lista en JavaScript que se utilizan para agregar y eliminar elementos de una lista.
El método shift() elimina el primer elemento de una lista y devuelve el elemento
elim
elimin
inad
ado.
o. El mé
méto
todo
do un
unsh
shifift(
t()) ag
agre
rega
ga un el
elem
emen
ento
to al pri
princ
ncip
ipio
io de un
una
a lilist
sta
a y de
devu
vuel
elve
ve
la nueva longitud de la lista.
Ejemplo:
134
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una lista con los números del 1 al 5 y usa los métodos shift() y unshift() para
eliminar y agregar elementos a la lista.
Método de lista slice() y splice() El método slice() se usa para extraer una parte
de una
una matr
matriz
iz y de
devo
volv
lver
er un
una
a nuev
nueva
a ma
matr
triz
iz.. Es
Esta
ta nu
nuev
eva
a ma
matr
triz
iz cont
contie
iene
ne lo
loss elem
elemen
ento
toss
extraídos, desde el índice inicial hasta el índice final (no incluido). El método splice()
se usa para agregar o eliminar elementos de una matriz.
Ejemplo:
135
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una matriz con los nombres de los meses del año y usa slice() para extraer los
meses de verano (junio, julio y agosto) y guardalos en una nueva matriz.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una lista con númer
números
os enteros y usa los métodos sort() y reverse()
reverse() para orde-
narla de forma ascendente y descendente.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
El método map() también se usa para iterar sobre una lista de elementos, pero en
lugar de ejecutar una función para cada elemento, devuelve una nueva lista con los
resultados de la función aplicada a cada elemento.
Ejemplo:
138
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una lista de números del 1 al 10 y usa el método map() para devolver una
nueva lista con los números elevados al cuadrado.
Reto:
Utiliza la función filter() para filtrar los elementos de una matriz de cadenas que
contengan la letra a.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
través de los elementos del array, llamando a la función de acumulación para cada
Reto:
Utiliza reduce() para calcular el promedio de los elementos de un array de núme-
ros.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un arreglo multidimensional que contenga los nombres de tus amigos y sus
edades.
Los arreglos tipados son arreglos especiales en JavaScript que almacenan valores
de un solo tipo de datos. Estos arreglos son más eficientes que los arreglos nor-
males, ya que los valores se almacenan en un formato de datos específico. Esto
significa que los arreglos tipados son más rápidos y usan menos memoria.
Existen varios tipos de arreglos tipados pero los más comunes son Int8Array y
Uint8Array. Int8Array almacena valores enteros de 8 bits, mientras que Uint8Array
almacena valores sin signo de 8 bits.
Ejemplo:
141
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un arreglo tipado Uint8Array con los valores [255, 128, 64, 32]. Luego, imprime
los valores del arreglo en la consola.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea una función que tome un ArrayBuffer
ArrayBuffer y una cadena de texto como argumentos,
y escriba la cadena de texto en el ArrayBuffer. Luego, crea otra función que tome
un ArrayBuffer como argumento y devuelva la cadena de texto almacenada en el
ArrayBuffer..
ArrayBuffer
143
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Una vez que tenemos el objeto creado, podemos agregar elementos a él usando la
sintaxis de punto:
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un objeto con tres elementos y luego imprímelo en la consola.
8.6.2 Desestructuración
Podemos usar la desestructuración para extraer los datos del objeto y asignarlos a
variables:
145
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un objeto con información de una película y usa la desestructuración para
extraer los datos y asignarlos a variables. Luego, imprime los datos en la consola.
Modififica
Modi carr pr
prop
opie
ieda
dade
dess de obje
objeto
toss en Ja
Java
vaSc
Scri
ript
pt es un
una
a ta
tare
rea
a senc
sencililla
la.. Es
Esto
to se pu
pued
ede
e
hacer usando la notación de punto o la notación de corchetes.
Ejemplo:
146
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un objeto con tres propiedades y modifica una de ellas usando la notación de
punto y la notación de corchetes.
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un objeto con tres propiedades y elimina una de ellas usando la palabra clave
delete.
Ejemplo:
Por ejemplo, podemos crear un objeto llamado Persona con un método llamado
saludar():
148
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Object es uno de los objetos básicos de JavaScript. Está disponible en todos los
navegadores y se usa para crear objetos y trabajar con ellos.
Las propiedades de Object son:
• constructor: Esta propiedad contiene una referencia al constructor de un obje-
to.
• prototype: Esta propiedad contiene una referencia al prototipo de un objeto.
• __prot
__proto__:
o__: Esta propiedad conti
contiene
ene una referencia al prototipo
prototipo de un objeto.
149
8 USO AVANZAD
ANZADO
O DE DATOS
DATOS
Reto:
Crea un objeto con algunas propiedades y usa el método propertyIsEnumerable()
para comprobar si una propiedad es enumerable.
150
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
8.6.7 Métod
Métodos
os comunes de obj
objetos
etos
create() creat
create()
e() es un método de JavaScript
JavaScript que se utiliza para crear
crear un nuevo
objeto a partir de un prototipo. Esto significa que puede crear un objeto con las
mismas propiedades y métodos que el prototipo. Esto es útil para crear objetos
similares sin tener que escribir todo el código desde cero.
Ejemplo:
Supongamos que queremos crear un objeto llamado miObjeto que tenga las mis-
mas propiedades y métodos que el objeto prototipo. Podemos hacer esto usando el
método create() de la siguiente manera:
Reto:
Crea un objeto llamado miObjeto que tenga las mismas propiedades y métodos que
el objeto prototipo. Usa el método create() para crear el objeto.
9 Prog
Programa
ramación
ción orientada
orientada a objetos
objetos (POO)
9.1 Paradigma
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
objetos se relacionan entre sí para formar una estructura de datos compleja. JavaS-
cript es un lenguaje de programación orientado a objetos, lo que significa que los
programadores pueden crear objetos y usarlos para construir aplicaciones.
Ejemplo:
A continuación se muestra un ejemplo de una clase de objeto en JavaScript. No
tienes que entenderla ahora ya que en las siguientes lecciones veremos todos los
detalles.
Reto:
Crea
Crea un de obje
objeto
to llam
llamad
ado
o Au
Autoto qu
que
e teng
tenga
a los
los atri
atribu
buto
toss ma
marc
rca,
a, mode
modelo
lo y añ
año.
o. Ag
Agre
rega
ga
un método llamado mostrarInfo
mostrarInfo que impri
imprima
ma en la consola la infor
informació
maciónn del auto.
Crea 2 objetos más para otros autos para que veas que requiere mucho código
repetido que podremos simplificarlo con los conocimientos de este capítulo.
152
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Una función constructora es una función especial en JavaScript que se usa para
crear objetos. Esta función se define con la palabra clave new y se usa para crear
una instancia de un objeto. Esta función se usa para crear objetos con propiedades
y métodos específicos.
Ejemplo:
A continuación se muestra un ejemplo de una función constructora en JavaScript
para crear un objeto Persona con propiedades nombre y edad:
Reto:
Crea
Crea una
una fu
func
nció
ión
n co
cons
nstr
truc
ucto
tora
ra en Ja
Java
vaSc
Scri
ript
pt pa
para
ra crear
crear un obje
objeto
to Au
Auto
to co
con
n pr
prop
opie
ieda
da--
des marca, modelo y año. Luego, crea una instancia de Auto y muestra los valores
de sus propiedades en la consola.
153
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
9.3 Contexto
9.3.1 Conte
Contexto
xto usan
usando
do this
Ahora, supongamos que queremos crear una función que imprima el nombre y la
edad de la persona. Para hacer esto, podemos usar la palabra clave this para acce-
der a las propiedades del objeto persona dentro de la función.
154
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea un objeto llamado libro con dos propiedades: título y autor. Luego, crea una
función llamada
palabra clave [Link] que imprima
Finalmente, llama el título
a la función y el autory del
imprimirLibro pasalibro usando
el objeto la
libro
como el contexto de la función.
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
apply() El método apply() funciona de manera similar al método call(), con la dife-
rencia de que los argumentos de la función se pasan como una lista.
Ejemplo:
156
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Intenta crear una función que use call(), apply() y bind() para cambiar el contexto de
ejecución de una función.
función en la que
función flecha se encuentra.
se determina por elEsto significa
contexto en elque
queelsevalor de this dentro de una
encuentra.
Ejemplo:
158
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
9.4 Prototipo
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea un objeto Profesorque herede las propiedades y métodos de Persona.
Agrega una propiedad materiaal objeto Profesory asígnale un valor. Luego,
imprime el valor de la propiedad materiaen la consola.
160
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea un objeto prototipo llamado vehiculo con las propiedades marca y modelo, y
un método encender que imprima en la consola "El vehíc
vehículo
ulo está encendi
encendido".
do". Lue-
go, crea un objeto que herede de vehiculo y asigna los valores apropiados a las
propiedades. Finalmente, llama al método encender para verificar que funciona.
161
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
9.6 Clases
Las clas
Las clases
es en Java
JavaSc
Scri
ript
pt son
son un
una
a form
forma
a de defi
defini
nirr ob
obje
jeto
toss con
con un
unaa sint
sintax
axis
is má
máss clar
clara
a
y concisa
concisa (en lugar de las lecciones
lecciones revisadas en este capítul
capítuloo usand
usando o funci
funciones).
ones).
Estas clases se definen usando la palabra clave class y se pueden usar para crear
objetos con propiedades y métodos similares.
Ejemplo:
Por ejemplo, podemos crear una clase llamada Persona que tenga propiedades
como nombre, edad y genero:
cons
constr
truc
ucto
tor(
r()) es un
una
a fu
func
nció
ión
n espe
especi
cial
al en Ja
Java
vaSc
Scri
ript
pt que
que se usa
usa pa
para
ra crear
crear e in
inic
icia
ialiliza
zarr
objetos. Esta función se usa para crear una nueva instancia de un objeto, asignar
valores a sus propiedades y luego devolver el objeto.
Ahora podemos crear una instancia de esta clase usando el constructor:
162
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
new en JavaScript es una palabra clave que se usa para crear una nueva instancia
de un objeto. Esto significa que se usa para crear un objeto a partir de una clase o
constructor.
Reto:
Crea una clase llamada Auto que tenga propiedades como marca, modelo y año.
Luego, crea una instancia de esta clase usando el constructor.
9.7 Declaración
Declaración y expresio
expresion
n de clases
Las declaraciones de clases en JavaScript son una forma de definir una clase y sus
miem
miembr
bros
os.. Es
Esta
tass de
decl
clar
araci
acion
ones
es se us
usan
an pa
para
ra cr
crea
earr un
una
a nuev
nueva
a clas
clase
e co
con
n propi
propied
edad
ades
es
y métodos. Por otro lado, las expresiones de clases son una forma de definir una
clase y sus miembros en una sola línea. Estas expresiones se usan para crear una
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Expresión de Clase:
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Crea una clase llamada Vehiculo con dos propiedades: marca y modelo. Agrega
un método llamado mostrarInfo que imprima en consola la marca y el modelo del
vehículo.
Supongamos que tenemos una clase llamada Persona con los atributos nombre y
edad. Si queremos agregar un método para obtener la edad de una persona, pode-
mos definir el siguiente método dentro de la clase Persona:
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea una clase llamad
llamada
a Cuent
CuentaBanc
aBancaria
aria con los atributos nombre y saldo
saldo.. Agrega
un método llamado depositar() que reciba una cantidad como parámetro y aumente
el saldo de la cuenta en esa canti
cantidad.
dad.
Los ca
Los camp
mposos pú
públ
blic
icos
os en Ja
Java
vaSc
Scri
ript
pt so
son
n va
vari
riab
able
less o mé
méto
todo
doss que
que se pu
pued
eden
en acce
accede
derr
desde cualquier parte del código. Esto significa que no hay necesidad de crear una
instancia de una clase para acceder a estos campos.
Ejemplo:
166
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea una clase llamada Vehículo con un campo público llamado ruedas y asígnale
el valor 4. Luego, crea una instancia de la clase y accede al campo público para
imprimir su valor en la consola.
Los campos privados en JavaScript son aquellos que no se pueden acceder desde
fuera de la clase o objeto. Esto significa que los campos privados no se pueden
modificar desde fuera de la clase o objeto. Se aplican a propiedades y métodos
nombrándolos con el símbolo #.
Ejemplo:
167
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
168
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea una clase llamada CuentaBancaria que tenga dos campos privados: saldo y
in
inte
teres
res.. Ag
Agreg
rega
a un mé
méto
todo
do llllam
amad
ado
o ca
calc
lcul
ular
arIn
Inte
tere
ress qu
que
e ca
calc
lcul
ule
e el in
inte
tere
ress y lo ag
agre
regu
gue
e
al saldo.
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
Reto:
Crea
Crea una
una cl
clas
ase
e llllam
amad
ada
a Veh
ehic
icul
ulo
o que
que te
teng
nga
a un
una
a pr
prop
opie
ieda
dad
d está
estátitica
ca llllam
amad
ada
a
numeroDeVehiculos que se incremente cada vez que se crea una nueva instancia
de la clase.
Los getters y setters son funciones especiales en JavaScript que nos permiten ob-
tener y establecer valores de un objeto. Estas funciones nos permiten controlar el
acceso a los datos de un objeto, permitiendo que los datos sean leídos y escritos
de forma segura.
Ejemplo:
170
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
9.13 Herencia
9 PROGR
PROGRAMACI
AMACIÓN
ÓN O
ORIENT
RIENTADA
ADA A OBJET
OBJETOS
OS (P
(POO)
OO)
extends es una palabra clave para heredar propiedades y métodos de una clase a
otra.
supe
super(
r()) es un
una
a pa
pala
labrbra
a clav
clavee qu
que e se usa
usa pa
para
ra llam
llamar
ar al cons
constrtruc
ucto
torr de la clas
clase
e pa
padr
dre
ey
pasa
pasarr ar
argu
gume
ment
ntos
os.. Es
Esto
to sign
signifific
ica
a qu
que
e se pu
pued
ede
e ac
acce
cede
derr a lo
loss mé
méto
todo
doss y propi
propied
edad
ades
es
de la clase padre desde la clase hija.
173
10 ASIN
ASINCR
CRON
ONÍA
ÍA
Reto:
Crea una clase Persona que tenga las propiedades nombre, edad y genero, y los
métodos saludar() y cumpleaños(). Luego, crea una clase Estudiante que herede de
Persona y tenga las propiedades curso y promedio, y el método estudiar().
10 Asincronía
10.1 Temporizadores
10 ASIN
ASINCR
CRON
ONÍA
ÍA
Reto:
Escribe un código que muestre un mensaje en la consola después de 10 segundos.
Luego, cancela la ejecución del mensaje.
10 ASIN
ASINCR
CRON
ONÍA
ÍA
Reto:
Crea una función que imprima un número en la consola cada segundo, desde el
número 1 hasta el número 10. Utiliza setInterval() y clearInterval() para lograrlo.
10.2 Promesas
10.2.11 Crear un
10.2. unaa promes
promesaa
10 ASIN
ASINCR
CRON
ONÍA
ÍA
10 ASIN
ASINCR
CRON
ONÍA
ÍA
aleatorio
aleatorio entre 0 y 1 lance un error si el número es mayor a 0.3.
Reto:
Crea una función que tome una lista de números como argumento y devuelva la
suma de todos los números usando encadenamiento de promesas.
178
10 ASIN
ASINCR
CRON
ONÍA
ÍA
10 ASIN
ASINCR
CRON
ONÍA
ÍA
10 ASIN
ASINCR
CRON
ONÍA
ÍA
Ejemplo:
Supongamos que queremos obtener los datos de dos APIs diferentes. Podemos
usar promesas múltiples para hacer esto de la siguiente manera:
Reto:
Crea una función que use promesas múltiples para obtener los datos de tres APIs
diferentes. La función debe devolver una promesa que se resuelva con los datos de
las tres APIs.
Prom
Promis
ise
e es un ob
obje
jeto
to qu
que
e rep
repre
rese
sent
nta
a la te
term
rmin
inac
ació
ión
n o el fr
frac
acas
aso
o even
eventu
tual
al de una
una op
ope-
e-
ración asíncrona. Está diseñado para permitir que los flujos de control asíncronos
sean expresados de manera más clara y concisa.
Las propiedades y métodos del objeto Promise son los siguientes:
Propiedades
181
10 ASIN
ASINCR
CRON
ONÍA
ÍA
Métodos
• Promi
[Link]
[Link]():
(): Esta función toma una matri
matrizz de promesas
promesas y devuel
devuelve
ve una pro-
mesa
me sa qu
que
e se reresu
suel
elve
ve cuan
cuando
do toda
todass las
las pr
prom
omesesas
as de la ma
matr
triz
iz se ha
han
n re
resu
suel
elto
to..
• Promi
[Link]
[Link]():
e(): Esta funció
función
n toma una list
lista
a de promes
promesas
as y devuel
devuelve
ve una pro-
mesa que se resuelve o rechaza tan pronto como una de las promesas de la
lista se resuelve o rechaza.
• Promi
[Link]
[Link]():
ect(): Esta funció
función
n devuelve una promesa rechazada con un valor
especificado.
• Promi
[Link]
[Link]():
olve(): Esta funció
función
n devuelve una promes
promesa
a resuelta con un valor
especificado.
Ejemplo:
A continuación se muestra un ejemplo de código que usa los métodos [Link]()
y [Link]() para resolver una matriz de promesas:
182
10 ASIN
ASINCR
CRON
ONÍA
ÍA
Reto:
Intenta crear una promesa que se resuelva después de 5 segundos y luego imprime
un mensaje en la consola.
10.3 async/await
11 MÓ
MÓDU
DULO
LOS
S
En
paraeste ejemplo,
obtener datoslade
función obtenerDatos
una URL es una función
y luego imprimirlos asíncrona
en la consola. La que usa clave
palabra fetch
await se usa para esperar a que la promesa devuelta por fetch se resuelva antes de
continuar con el código.
Reto:
Escribe una funci
Escribe función
ón asíncrona que use fetch para obtener una lista de usuarios
usuarios de
una URL y luego imprima el nombre de cada usuario en la consola.
11 Módulos
11.1 Módulos
Módulos y herramientas
herramientas
Los módulos en JavaScript son una forma de organizar el código para que sea más
fácil de mantener y compartir. Esta característica fue introducida en ECMAScript
6 (ES6) en 2015, y desde entonces se ha convertido en una parte integral de la
programación en JavaScript.
184
11 MÓ
MÓDU
DULO
LOS
S
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Crea un módulo que contenga una función para calcular el área de un rectángulo.
Luego, importa el módulo en un archivo principal y usa la función para calcular el
área de un rectán
rectángulo
gulo con lados de 5 y 10.
11.1.2 CommonJS
Ejemplo:
Supongamos que tenemos un archivo llamado [Link] que contiene una función
para calcular el área de un círculo.
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Crea un archivo llamado [Link] que contenga una función para calcular el área de
un re
rect
ctán
ángu
gulo
lo.. Lu
Lueg
ego,
o, en ot
otro
ro ar
arch
chiv
ivo,
o, im
impo
port
rta a la fu
func
nció
ión
n ar
area
eaDe
DelR
lRec
ecta
tang
ngul
ulo
o usan
usando
do
CommonJS y usa la función para calcular el área de un rectángulo con un ancho de
4 y un alto de 5. Corre el código en [Link]
[Link]..
11.1.3 Webpack
11 MÓ
MÓDU
DULO
LOS
S
11.1.4 Babel
Sin embargo, los navegadores antiguos no entienden las funciones de flecha. Por
lo tanto, si queremos que nuestro código funcione en todos los navegadores, ne-
cesitamos usar Babel para convertir nuestro código en una versión compatible con
navegadores antiguos. El código convertido por Babel se vería así:
188
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Revisa la documentación de Babel y convierte un tipo de módulo a otro.
Las exte
Las extens
nsio
ione
ness .mjs
.mjs y .js
.js son
son do
doss tipo
tiposs de ar
arch
chiv
ivos
os de Java
JavaSc
Scri
ript
pt.. La exte
extens
nsió
ión
n .m
.mjs
js
se usa para archivos de JavaScript modulares, mientras que la extensión .js se usa
para archivos de JavaScript estándar. La extensión .mjs es necesaria en [Link]
para indicar que se usen módulos de JavaScript, de otra manera utiliza módulos
CommonJS.
Un ejemplo práctico de la diferencia entre .mjs y .js es el siguiente:
Archivo .mjs
Archivo .js
189
11 MÓ
MÓDU
DULO
LOS
S
11.2 Exportar
Exportar en JavaScript es una forma de compartir código entre archivos. Esto sig-
nifica quelos
archivos unpuedan
archivousar.
puede exportar variables, funciones y objetos para que otros
Ejemplo:
Supongamos que tenemos un archivo llamado [Link] que contiene una función
para calcular el área de un círculo:
190
11 MÓ
MÓDU
DULO
LOS
S
Para que otros archivos puedan usar esta función, necesitamos exportarla. Esto se
hace usando la palabra clave export:
Reto:
Crea un archivo llamado [Link] que exporte una función llamada sumar que tome
191
11 MÓ
MÓDU
DULO
LOS
S
dos números como argumentos y devuelva la suma de ellos. Luego, crea otro archi-
vo llamado [Link] que importe la función sumar y la use para imprimir la suma de
dos números en la consola.
11.3 Importar
Ahora, si queremos usar esta función en otro archivo, podemos importarla usando
la palabra clave import:
192
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Crea un archivo llamado [Link] que contenga una función para calcular el área de
un re
rect
ctán
ángu
gulo
lo.. Lu
Lueg
ego,
o, im
impo
port
rta
a la func
funció
ión
n en otro
otro ar
arch
chiv
ivo
o y usal
usala
a para
para calc
calcul
ular
ar el ár
área
ea
de un rectángulo con lados de 3 y 4.
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Crea un archivo JavaScript llamado [Link] que exporte una clase llamada Mi-
Clase.. Luego, crea un archivo [Link] que importe la clase MiClase y cree una ins-
Clase
tancia de la misma. Por último, imprime el nombre de la clase en la consola.
11 MÓ
MÓDU
DULO
LOS
S
Ejemplo:
Reto:
11.6 Importar
Importar paquetes
paquetes
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Instala
Instala un paquet
paquete
e con npm
npm.. Pue
Puedes
des vis
visita
itarr el sitio
sitio web de npm htt
https:
ps://w
//www
[Link]
.npmjs
[Link]
.com/
m/
y ver la documentación en instrucciones de instalación de cientos de librerías.
11 MÓ
MÓDU
DULO
LOS
S
Reto:
Importa un móduloa que has creado previamente de forma dinámica.
12 ITERADORES
ITERADORES Y GENERADOR
GENERADORES
ES
12 Iteradores y generadores
12 ITERADORES
ITERADORES Y GENERADOR
GENERADORES
ES
En este ejemplo vemos que hemos creado el objeto iterador manualmente pero
JavaScript viene con objetos iteradores que se generan a partir de un objeto iterable
como una lista. Veremos más detalles en las siguientes lecciones.
Reto:
Crea un objeto iterador que itere sobre una lista de textos y devuelva cada elemento
de la lista como un objeto con dos propiedades: una para el índice y otra para el
valor.
Los objetos iterables en JavaScript son aquellos que se pueden recorrer con un
bucle. Esto significa que se pueden usar para recorrer una colección de elementos,
como un array o un objeto.
199
12 ITERADORES
ITERADORES Y GENERADOR
GENERADORES
ES
Reto:
Crea un array con los nombres de tus amigos y usa un bucle for para mostra
mostrarr cada
uno de ellos por pantalla.
next() en Ja
Java
vaSc
Scri
ript
pt es una
una fu
func
nció
ión
n qu
que
e se ut
utililiz
iza
a pa
para
ra ititer
erar
ar so
sobre
bre un ob
obje
jeto
to ititer
erab
able
le..
Esto significa
significa que se puede usar para recorrer una secuencia de eleme elementos,
ntos, como
una lista, un texto o un objeto.
Ejemplo:
200
12 ITERADORES
ITERADORES Y GENERADOR
GENERADORES
ES
Reto:
Crea una función que use la función next() para recorrer una matriz de números y
devolver la suma de todos los elementos.
12.4 Funciones
Funciones generad
generadoras
oras
12 ITERADORES
ITERADORES Y GENERADOR
GENERADORES
ES
Reto:
Crea una función generadora que devuelva una secuencia de números del 1 al 10.
Luego, usa el objeto generador para imprimir cada número en la consola.
12.5 yield
yield es una palabra clave en JavaScript que se usa para crear generadores. Un ge-
nerador es una función especial que puede devolver múltiples valores a lo largo del
tiempo.
tiemp o. Est
Esto
o signi
significa
fica q
que
ue un generador
generador puederecordarsu estado enentre
tre llam
llamadas,
adas,
lo que le permite devolver valores diferentes cada vez que se llama.
Ejemplo:
A continuación se muestra un ejemplo de un generador que devuelve los números
pares entre 0 y 10:
202
13 INTERNACIO
INTERNACIONALIZ
NALIZACIÓ
ACIÓN
N
Reto:
Crea un generador que devuelva los números impares entre 0 y 10.
13 Internacionalización
13.1 El objeto Intl
13 INTERNACIO
INTERNACIONALIZ
NALIZACIÓ
ACIÓN
N
Por ejemplo, podemos usar el objeto Intl para formatear una fecha en un formato
específico. Por ejemplo, para formatear una fecha en el formato de fecha larga de
Estados Unidos, podemos usar el siguiente código:
Reto:
Utilizando el objeto Intl, escribe una función que tome una fecha como parámetro
y devuelva una cadena con la fecha formateada en el formato de fecha corta de
España.
13 INTERNACIO
INTERNACIONALIZ
NALIZACIÓ
ACIÓN
N
Reto:
Utilizando el objeto DateTimeFormat, crea una función que tome una fecha y hora
como parámetro y devuelva una cadena de texto con la fecha y hora formateadas
en el formato dd/mm/aaaa hh:mm.
13 INTERNACIO
INTERNACIONALIZ
NALIZACIÓ
ACIÓN
N
Reto:
Utiliza
Utiliza el obj
objeto
eto NumberF
NumberForm
ormat
at para for
format
matear
ear el número
número 123
123456
4567.8
7.89
9 par
para
a mos
mostra
trarlo
rlo
con tres decimales, un separador de miles y el símbolo de la moneda euro.
14 MET
ETA
A
Reto:
Crea una función que tome una lista de palabras en español como parámetro y
devuelva la lista ordenada usando el objeto Collator.
14 Meta
El objeto Proxy en JavaScript es una herramienta que nos permite interceptar y ma-
nipular
nipular cualquier
cualquier operación realizada sobre un objeto.
objeto. Esto signific
significa
a que podem
podemos
os
controlar el comportamiento de un objeto cuando se realizan operaciones como lec-
tura, escritura, enumeración, invocación, etc.
Ejemplo:
Por ejemplo, podemos usar un objeto Proxy para controlar el comportamiento de un
objeto cuando se intenta leer una propiedad. Por ejemplo, podemos usar un Proxy
para devolver un valor predeterminado si la propiedad no existe:
207
14 MET
ETA
A
Reto:
Crea
Crea un obje
objeto
to Pr
Prox
oxyy qu
que
e co
cont
ntro
role
le el co
comp
mport
ortam
amie
ient
nto
o de un obje
objeto
to cu
cuan
ando
do se in
inte
tent
nta
a
escribir una propiedad. El Proxy debe validar que el valor de la propiedad sea un
El ob
obje
jeto
to Re
Reflflec
ectt es un
una
a AP
APII de Ja
Java
vaSc
Scri
ript
pt que
que pro
propo
porc
rcio
iona
na méto
métododoss pa
para
ra in
inte
tera
ract
ctua
uarr
con los objetos de JavaScript. Esta API proporciona una forma de interactuar con
los objetos de JavaScript de una manera más sencilla y segura. Esto significa que
los desarrolladores
desarrolladores pueden usar el objeto Refle Reflect
ct para reali
realizar
zar tareas como definir
propiedades, definir métodos, establecer y obtener valores, etc.
208
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
Ejemplo:
Por ejemplo, el siguiente código muestra cómo usar el objeto Reflect para definir
una propiedad en un objeto:
Reto:
Crea una función que use el objet
objeto
o Reflect para definir una propie
propiedad
dad en un objeto
y luego imprima el valor de la propiedad.
15 Siguientes pasos
15.1 Herramientas
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
15.2 Recursos
1. MD
MDN N Web Docs
Docs:: Es una
una de las
las fuen
fuentetess de rerefe
fere
renc
ncia
ia más
más comp
comple
leta
tass
para Jav
JavaSc
aScrip
ript.
t. Ofrece
Ofrece doc
docume
umenta
ntació
ciónn detall
detallada
ada sobre
sobre la sintax
sintaxis,
is, los
co
conce
ncept
ptos
os y la
lass AP
APII de JaJava
vaSc
Scriript
pt.. Tambi
ambién
én ofre
ofrece
ce tututo
tori
rial
ales
es y ejem
ejem--
plos
plos pa
para
ra ayud
ayudarar a lo
loss de
desa
sarr
rrol
olla
lado
doreress a apren
aprendederr y usa
usarr Ja
Java
vaSc
Scriript
pt..
[Link]
2. W3Schools: Es una de las fuentes de referencia más populares para JavaS-
cript. Ofrece tutoriales, ejemplos y referencias para ayudar a los desarrollado-
res a aprender y usar JavaScript. [Link]
3. Stack Overflow:
Overflow: Es una de las comunidades
comunidades de desarroll
desarrolladores
adores más grandes
en línea. Ofrece una gran cantidad de preguntas y respuestas sobre JavaS-
cript, así como una sección de discusión para discutir problemas y soluciones
relacionadas con JavaScript. [Link]
[Link]
.com/questions/tagged/javascript
4. Academia X: Ofrece una variedad de cursos interactivos para ayudar a los
desarrolladores a aprender y usar JavaScript. [Link]
210
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
1. ¿Qué es Java
JavaScript
Script?
?
• JavaScript es un lenguaje de programación interpretado, orientado a objetos,
que se utiliza principalmente para crear contenido interactivo en páginas web.
2. ¿Qué es una variabl
variable
e en JavaScript
JavaScript?
?
• Una variabl
variable
e es un contenedor
contenedor para almace
almacenar
nar datos. En JavaSc
JavaScript,
ript, una va-
riable se declara usando la palabra clave var.
3. ¿Cómo se declara una variab
variable
le en JavaScript?
JavaScript?
• Una variable se declara usando la palabra clave varseguida del nombre de
la variable y, opcionalmente, el valor que se le asignará.
4. ¿Qué es una funció
función
n en JavaScript?
JavaScript?
• Un
Unaa fun
unci
ción
ón es un bloq
bloqueue de códi
código
go que
que se pu
pued
ede
e ejec
ejecututar
ar cuan
cuando
do se le llam
llama.a.
Lass fu
La func
ncio
ione
ness se util
utiliz
izan
an para
para re
real
aliz
izar
ar ta
tare
reas
as espec
específ
ífic
icas
as y se pued
pueden
en reuti
reutililiza
zarr
en diferentes partes de un programa.
5. ¿Cómo se define una funci
función
ón en JavaScript
JavaScript?
?
• Una función se define usando la palabra clave functionseguida del nombre
de la funci
función
ón y los parámet
parámetros
ros que se pasará
pasarán
n a la función.
6. ¿Qué es un objeto en JavaSc
JavaScript?
ript?
• Un objeto es una colección de propiedades y métodos relacionados. Los obje-
tos se utilizan para representar entidades reales o abstractas en un programa.
7. ¿Cómo se crea un objet
objeto
o en JavaScript
JavaScript?
?
• Un objeto se crea usando la palabra clave newseguida del nombre del
constructor del objeto. El constructor es una función especial que se utiliza
para inicializar un objeto.
212
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
có
códi
digo
go re
repe
petitida
dame
ment
nte.
e. En Ja
Java
vaSc
Scri
ript
pt,, lo
loss bucl
bucles
es se escr
escrib
iben
en usan
usando
do la pa
pala
labr
bra
a
clave for.
11. ¿Qué es una condición en JavaScript?
• Una condición es una expresión que se evalúa como verdadera o falsa. En
JavaScript, las condiciones se escriben usando la palabra clave if.
12. ¿Qué es una expresión regul
regular
ar en JavaScript?
• Una expresión regular es un patrón de caracteres que se utiliza para buscar
y reemplazar cadenas de texto. En JavaScript, las expresiones regulares se
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
214
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
215
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
• Una sentencia de objeto es una instrucción que se utiliza para crear un objeto.
En JavaScript, las sentencias de objeto se escriben usando la palabra clave
new.
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS
• Una se
sent
nten
enci
cia
a de decl
declar
arac
ació
iónn de en
enum
umererac
ació
ión n es un
unaa in
inst
stru
rucc
cció
ión
n qu
quee se ut
utililiz
iza
a
para
para defi
defini
nirr un
una
a en
enum
umer
erac
ació
ión.
n. En Ja
Java
vaSc
Scri
ript
pt,, la
lass se
sent
nten
encicias
as de decl
declar
arac
ació
ión
n de
enumeración se escriben usando la palabra clave enum.
41. ¿Qué es una sentencia de declara
declaración
ción de tipo en JavaScript?
JavaScript?
• Una sentencia de declaración de tipo es una instrucción que se utiliza para
defifini
de nirr un titipo
po.. En Ja
Java
vaSc
Scri
ript
pt,, la
lass se
sent
nten
enci
cias
as de decl
declar
arac
ació
ión
n de titipo
po se escri
escribe
ben
n
usando la palabra clave type.
42. ¿Qué es una sentencia de declaración de constante en JavaScript?
• Una sentencia de declaración de constante es una instrucción que se utiliza
para definir una constante. En JavaScript, las sentencias de declaración de
constante se escriben usando la palabra clave const.
43. ¿Qué es una sente
sentencia
ncia de declaració
declaración
n de variable
variable en JavaScript?
JavaScript?
• Un
Unaa se
sent
nten
enci
cia
a de decl
declar
arac
ació
ión
n de va
vari
riab
able
le es un
una
a in
inst
struc
rucci
ción
ón que
que se ut
utililiz
iza
a pa
para
ra
definir una variable. En JavaScript, las sentencias de declaración de variable
se escriben usando la palabra clave var.
44. ¿Qué es una sentencia de declaración de función en JavaScript?
• Una sentencia de declaración de funci
función
ón es una instrucción que se utiliza
utiliza para
definir una función. En JavaScript, las sentencias de declaración de función se
escriben usando la palabra clave function.
45. ¿Qué es una sentencia de declara
declaración
ción de clase en JavaScrip
JavaScript?
t?
• Una sentenc
sentencia
ia de decla
declaración
ración de clase es una instru
instrucción
cción que se utiliza para
definir una clase. En JavaScript, las sentencias de declaración de clase se
escriben usando la palabra clave class.
46. ¿Qué es una sentencia de declara
declaración
ción de objeto en JavaScri
JavaScript?
pt?
218
15 SIGUIE
SIGUIENTE
NTES
S PASOS
ASOS