This graph shows how many times the word ______ has been mentioned throughout the history of the program.
Y muy buenas tardes, ¿qué tal? Bienvenido y bienvenida, espero que estés muy bien, preparado o preparada
para aprender JavaScript desde cero. Hoy vamos a hacer una clase de aproximadamente, no sé, una hora 45 o así
para aprender JavaScript desde cero, desde cero. Si no sabes nada de JavaScript, no pasa nada.
Si no sabes nada de programación, tampoco pasa nada. Lo que sí que te recomiendo, si estás aquí por la clase,
lo que sí que te recomiendo es que sigas la clase. Voy a intentar ir lento y voy a estar mirando el chat
si tenéis alguna duda, lo vais a lo mejor que repetir, pero voy a intentar estar atento en el chat
por si hay alguna duda para repasar el concepto y que lo volvamos a hacer. Aparte de esto, te recomiendo
que sigan los pasos, espero que estés aquí desde el principio porque luego vendrá gente a la media hora
y me dirá, oye, ¿pero puedes repetir hacer esto? Será complicado, ¿vale? Sí que haremos algún momento
de repasar algún concepto para que quede muy claro, pero no vamos a poder estar constantemente
y yendo hacia atrás para volver a revisar eso y tal. Así que intentad estar atentos.
Si tenéis que ir a mear, pues ir a mear no pasa nada, ¿vale? Pero no os lo perdáis.
Si pestañeáis os lo perdéis, ¿vale? Entonces, hoy es desde cero. Se graba, se graban todos los streams,
se graban, se quedan en Twitch. Así que si alguien del chat, ¿veis qué pregunta?
O sea, se va a grabar, se va a grabar. Si le podéis contestar y decirle, se queda grabado
en Twitch y se subirá en el canal secundario de Midulife, ¿vale? En youtube.com barra
midulife, por si alguien lo pregunta. Y así lo tenéis ahí a tope todo preparado.
¿Qué tal? Que levante la mano el que sea nuevo. Que levante la mano el que no ha venido nunca
y es la primera vez que viene. A ver cuánta gente hay. A ver cuánta gente hay. A ver, a ver.
Que vea manitas por ahí. Vamos a aprender JavaScript desde cero. Lo primero que necesitas
para aprender JavaScript es un navegador. Así que te voy a pedir, por favor, que si no tienes
un navegador, qué raro sería que lo consigas. Si no, te lo instalas. Pero bueno, estoy seguro
que lo tienes. En cualquier navegador, cualquier navegador, ¿vale? Vas a necesitar el navegador
porque es donde vamos a ejecutar el JavaScript, ¿ok? Así que ten el navegador ya preparado,
lo abres. Si no te buscas Google Chrome, download. Lo mejor que sería es que te instalas
el Google Chrome. ¿Por qué? Porque es el que vamos a utilizar y te será mucho más fácil
poder conseguir la clase. Así que si puede ser Google Chrome, perfecto. Que tienes Firefox
o alguno similar, no hay ningún problema tampoco, ¿vale? Así que ahí lo tenemos.
Entonces, amigos, mucha gente seguro ha venido a aprender sobre programación. Quizá no sabes
absolutamente nada de programación o quizás sabes un poco de programación. Sea como sea,
eres bienvenido o bienvenida. Así que no te preocupes. Porque ¿qué es la programación?
Para la gente que no lo sepa. La programación se puede explicar de muchas formas. A mí me gusta
decir que al final es como el acto de construir un programa o un conjunto de instrucciones que vamos
a utilizar para poder comunicarnos con una máquina. Eso sería un poco la programación. Y la verdad,
si lo miras fríamente, en realidad programar programamos todos los días. ¿Quién de aquí
que levante la mano? ¿Quién no ha puesto una lavadora o un microondas? No dejan de ser máquinas,
¿verdad? Y muchas veces lo que hablamos es de programarlas, de programar la lavadora. Voy
a programar la lavadora, ¿no? Y esto de alguna forma es parte de la programación porque le estamos
dando unas instrucciones precisas a la lavadora para que haga algo en concreto. Así que muchas veces
cuando interactuamos con electrodomésticos es bastante parecido a lo que hacemos con la
programación. Tenemos que darle unos parámetros de entrada para que haga algún tipo de acción
y luego esperemos algún tipo de salida, algún resultado. Y esto sería simplificando lo que
es la programación. Es una forma de comunicarnos, de mandarle a la máquina lo que tiene que hacer
con unas instrucciones claras y precisas, especialmente precisas, porque si no, la máquina normalmente
no va a saber qué tiene que hacer y necesita que seas preciso en lo que tiene que hacer,
¿no? Cuando lo hacemos con un microondas, como lo hacemos con una lavadora, con la tele,
con cualquiera. Así que a partir de lo que le decimos lo que tiene que hacer, ejecuta
este programa que nosotros le hemos dicho. En el caso de la lavadora, por ejemplo, lavar
la lavadora y pasado un tiempo tenemos la salida de este programa que finalmente sería
que la ropa está limpia y además te avisa, ¿no? Ha tenido algún tipo de resultado.
Al final esto de la programación lo puedes llevar y te lo puedes imaginar en cualquier
punto. Por ejemplo, cuando entras a una página web, cuando vas a hacer clic en un botón,
al final a la máquina le tenemos que decir cómo tiene que tratar ese clic, qué es lo
que tiene que ocurrir cuando hace ese clic, cuando un usuario hace clic, qué tiene que
ocurrir, cómo tenemos que responder, qué operaciones tiene que ejecutar y cuál es la salida que
al final debemos ver. Oye, se tiene que cambiar el fondo, tiene que cambiar un color, sea lo
que sea, ¿no? Entonces ya sabemos cómo con el microondas y la lavadora nos comunicamos
con la máquina porque existe una interfaz que nos ha facilitado la vida, pero cómo lo
programamos realmente, ¿no? Cómo nos comunicamos con estas máquinas. Para ello, igual que los
humanos y las personas tenemos lenguajes y tenemos idiomas, el español, el inglés y todo
esto, necesitamos también un idioma para hablar con las máquinas, porque si no estaríamos
hablando de ceros y unos. Estaríamos en un sistema binario, estaría 0, 0, 0, 1, 0, 0 y
no, esto no funciona. No sería viable. Pero lo cierto es que al principio era así. Cuando
al principio no existió los lenguajes de programación hasta que no pasó un tiempo, primero existieron
las máquinas y hablábamos con las máquinas con ceros y unos, pero obviamente esto no era
fácil ni era viable para hacer programas más complejos. Así que tuvieron que crear los lenguajes
de programación. Un lenguaje de programación al final es algo que los humanos hemos creado
artificialmente para poder comunicarnos con las máquinas, para que las personas con un
idioma más accesible que los ceros y los unos nos podamos comunicar con las máquinas.
Así que esto sería un lenguaje de programación, una forma, un idioma con el que nos podemos
comunicar con la máquina, un lenguaje casi intermedio en el que no son ceros y unos, pero tampoco
es que estamos escribiendo ahí español claramente. De alguna forma es más legible, pero no
dejan de ser instrucciones que le estamos dando a la máquina.
Midu se escucha solo por la izquierda.
¿Otra vez? ¿O es que esto viene de antes, el turquex? Yo creo que viene de antes esto,
¿no? ¿Todo era mejor con ceros y unos? Hombre, yo creo que no. Yo creo que no, que con
ceros y unos era bastante complicado. De hecho, antes, para hacer este tipo de programas
con ceros y unos, las tarjetas perforadas, ¿sabes? Antiguamente eran tarjetas perforadas
y es que cuando estaba perforado era un cero y cuando no estaba perforado, pues era
un uno. Y así es como se programaba, ¿vale? Así que tenemos lenguajes de programación,
que al final es la forma que tenemos para comunicarnos con las máquinas. En los lenguajes
de programación podemos encontrar un montón, igual que en el mundo. En el mundo hay un montón
de lenguajes. Hay sitios que hablan el alemán, en otros el japonés. Y al final el objetivo
es el mismo, es comunicarse, es comunicarse entre las personas. Pues en los lenguajes de programación
pasa exactamente lo mismo. El objetivo es el mismo, queremos comunicarnos con las máquinas.
Lo que cambia es la sintaxis que podemos ver. Igual que en el inglés se escribe de una forma,
se pronuncia de una forma, en el caso de los lenguajes de programación, aunque el objetivo
sigue siendo comunicarse con las máquinas, lo vamos a ver que se ejecuta de una forma,
que la sintaxis es diferente, aunque el objetivo final sea el mismo. Y entre todos estos lenguajes
de programación está JavaScript. Y JavaScript pues tiene muchas cosas interesantes y lo
primero que te voy a enseñar para que veas es un poquito de historia. No te voy a aburrir
con la historia, no te preocupes, no te preocupes, voy a ser rápido y conciso. Pero lo que sí
que te quiero comentar, porque es bastante importante que lo sepas, es que sepas un poco
de dónde viene y hacia dónde vamos. ¿De dónde viene? Se anunció en 1995, que ya llovió,
ya llovió. Y en 1996 fue el anuncio oficial. 95 lo anunciaron y en 96 digamos que salió
de forma oficial. JavaScript es un lenguaje de programación que se hizo en 10 días. Eso
es lo que se dice, pero no es cierto del todo. En realidad se tardó más de 10 días.
10 días fue la primera versión y a partir de ahí se estuvo casi un año cambiando.
Cambió el nombre, cambiaron ciertas cosas, se pulió a muchos niveles. Y esto se inició
con un navegador que se llama Netscape, que ya no existe. O sea, que no te pongas a buscarlo
porque no lo vas a encontrar. El tema es que Netscape era el que al final con
Sam Microsystems anunciaron JavaScript y al parecer iba a ser solo para ese navegador.
No era tanto que la idea es que sea lo que es ahora. Fijaos que desde 1996 hasta lo que
estamos hoy en día, fijaos todo lo que ha pasado. Ha aumentado la adopción de JavaScript,
se ha extendido por todos los sitios, se ha profesionalizado a muchos niveles y la realidad
es que el resultado final hoy, día 2022, es que JavaScript es...
Giar juego.
Giar juego. No es giar juego, pero casi. JavaScript es la lengua franca de la web. Eso es lo que es JavaScript.
¿Qué quiere decir esto? Esto lo que quiere decir es que a día de hoy el único lenguaje de
programación que es nativo de la web es JavaScript. Tenemos otros lenguajes como de marcado, que es HTML,
de estilado, que es CSS y el único lenguaje de programación que es nativo que los navegadores sin
necesidad de compilación, sin necesidad de hacer absolutamente nada, que lo entienden. Y de hecho,
eso lo vamos a ver porque vamos a abrir un navegador y vamos a empezar a programar. Así que
es súper importante que entiendas esto, porque esto es lo que hace tan importante y tan interesante
JavaScript. Es el lenguaje de programación que es el motor de la web. Todo lo que tiene que ver con
la web, con las tecnologías web, se habla en JavaScript. Y te puedes imaginar, la web está en
todos los sitios. La web la tocas todos los días. La web no paras de verla. Incluso aunque no te des cuenta,
aunque estés viendo la tele, hay muchas veces que lo que ves es la web. Incluso en tu sistema operativo
es la web. La web está en todos los lados. Y por lo tanto, JavaScript lo tienes también ahí. Así que aparte
de esto, que es evidente, ¿no? ¿Por qué aprender JavaScript? ¿Por qué debes aprender JavaScript? ¿Por qué tienes que estar
aquí y estás en el sitio correcto? No solo es porque toda la web funciona con JavaScript, sino que
también JavaScript es súper versátil. Todo lo que vas a aprender hoy con JavaScript, lo bueno que tienes
es que no solo lo vas a poder llevar a la web, sino que tienes un montón de opciones amplias y súper
flexibles de dónde puedes utilizar JavaScript. Lo puedes utilizar para crear aplicaciones web, pero también
podrás crear aplicaciones móviles. También podrás ejecutarlo en servidores web. Podrás hacer también
aplicaciones de terminal, aplicaciones de escritorio. JavaScript al final te lo puedes llevar a todos
los sitios, que eso es una de las cosas más fantásticas que tiene. Y incluso, para que lo
sepas, la NASA hace poco tiene un telescopio en el espacio, el James Webb, e incluso ese telescopio
utiliza JavaScript.
Preparado para el comienzo del mejor curso de JavaScript.
Gracias, hombre. Así que imagínate cómo de lejos ha llegado JavaScript, que hasta la NASA lo está
utilizando. ¿Ok? Aparte de que es súper importante porque toda la web utiliza JavaScript, la versatilidad,
obviamente estas dos cosas llevan a la tercera, que es la empleabilidad. Y es que JavaScript, como se está
utilizando en todos los sitios, ya te puedes imaginar que casi todas las empresas de tecnología que existan
tienen que tocar de una forma u otra, de forma obligada, JavaScript. Esto hace que exista una gran demanda
de profesionales que sepan de este lenguaje. Y es por eso que ha habido este boom de que mucha gente
está aprendiendo JavaScript. Y es que hay una gran empleabilidad. ¿Ok? Y lo mejor de todo, que yo creo
que este es el punto que marca la diferencia de JavaScript con un montón de lenguajes. Y es que es
muy fácil de aprender. Es muy fácil de aprender, pero es complicado de volverte un experto. Eso lo veremos
en todas las clases, pero es fácil de aprender porque la curva de aprendizaje al principio es bastante
sencilla y puedes ser productivo muy rápido. Puedes hacer y jugar con el lenguaje de forma
muy rápida. Pero es verdad que para volverte un experto, por las pequeñas particularidades que
tienen y peculiaridades que tiene JavaScript, para volverte un experto sí que vas a tener que
estudiar mucho y vas a tener que hincar bastante el codo. Así que tenemos que toda la web funciona
con JavaScript, gran versatilidad, empleabilidad y que es fácil de aprender. Y además bastante
gratuito de aprender porque, por ejemplo, como este curso que es totalmente gratis, también
tenéis por internet 10.000 millones de sitios de vídeos y tal que podéis aprender con JavaScript.
Así que yo creo que lo mejor que podemos hacer ya es programar con JavaScript. Y vamos a ver
desde cero cómo se puede programar en JavaScript. ¿Ok? Así que lo que quiero que hagamos es lo
primero que vayáis a vuestro editor. En este caso, si podéis ser Google Chrome, mejor. Y lo que
tenéis que hacer es darle al botón derecho y os aparecerá un menú como este. ¿Ok? Y veis aquí
que tenéis inspeccionar. Antes de... Lo tenemos aquí, inspeccionar al evento. ¿Vale? Antes de hacer
cualquier cosa, una cosa que os recomiendo para no liaros mucho si estáis en algún sitio, por ejemplo,
en una página web o lo que sea, es que abráis una pestaña, por ejemplo, una vacía y aquí ponéis
about blank. ¿Vale? About blank. A mí me salen por defecto las pestañas vacías, pero lo mejor es que
si no, os aseguréis y pongáis about blank. Si le dais al enter, veréis que os deja esta página
en blanco totalmente. Os deja una página totalmente en blanco. No tiene ningún tipo de contenido ni
nada. Y aquí entonces le damos al botón derecho y le damos a inspeccionar. ¿Vale? Así que le damos al
botón derecho del ratón, le damos a inspeccionar y nos aparecerá esto. Te puede aparecer un poco
diferente, te puede aparecer... Te puede aparecer abajo, por ejemplo. Te puede aparecer en el... Te puede aparecer
así en medio, así. Te puede aparecer de muchas formas, pero te tiene que aparecer algo así
similar. ¿Vale? ¿Ok? About dos puntos blank. About dos puntos blank. Botón derecho, inspeccionar.
Y una vez que estamos aquí, os voy a recomendar cuáles son las configuraciones que vamos a
intentar seguir. ¿Vale? Le vais a dar a estos tres botones para que os ayude a seguir bien,
bien, bien el curso. Y aquí que tenéis anclar al lateral, ¿veis que tenéis aquí diferentes
opciones? La que vais a utilizar es esta. Es esta de aquí, que es desanclar. De esta forma
os va a soltar la ventana y la vais a tener disponible totalmente. ¿Vale? La vamos a hacer
esta ventana más grande y la vamos a tener así. Ahora mismo lo que estamos viendo son
las herramientas de desarrollo del navegador. No hace falta que entendamos nada de lo que
estamos viendo. No os asustéis de esto que estáis viendo. Lo que nos interesa es una pestaña
en concreto, que es esta que pone aquí, consola. Así que buscáis esta pestaña de consola.
O si no, una forma que tenéis de acceder fácilmente es darle a la tecla ESC, que es la de arriba
a la izquierda totalmente. ¿Vale? Lo voy a poner, ya que estoy, lo voy a poner también
en oscuro. Esto cada uno lo que quiera. ¿Vale? Pero tenéis aquí en la ruedecita una configuración
y luego voy a poner el aspecto en oscuro, porque me gusta más en oscuro para mi vista.
Así que, pum, aquí lo tenemos. ¿Ok? Una vez que lo tenemos en oscuro, se queda así
y vamos a la consola exactamente igual. ¿Vale? Pum, aquí lo tenemos, la consola. Esto aquí
es donde justamente vamos a estar trabajando para empezar a programar con JavaScript.
Si le damos aquí, vamos a revisar que tengamos la configuración exactamente igual. ¿Por qué?
Porque si veis que salen cosas diferentes a mí, puede ser que sea porque justamente
tenéis las preferencias diferentes. Yo lo tengo todo en castellano, pero aquí podéis ver
lo que yo tengo chequeado. ¿Vale? Tengo la agrupar mensajes similares en la consola.
Este no es importante, pero bueno, asegurados que lo tenéis también activado por si acaso.
Este sí que es importante. Evaluación estricta y luego evaluar activación de usuario
de los activadores. ¿Vale? Evaluación estricta y evaluar activación de usuario
de los activadores. Estas son las dos opciones que son importantes
que tenéis activadas. ¿Vale? Estas dos de aquí. Lo tenéis en la consola,
en la tuerca que hay aquí arriba a la derecha, le dais y aquí podéis encontrar estas.
Una vez que os habéis asegurado que ya lo tenéis configurado, ya lo tenéis,
entonces quitáis la tuerca y ya está. Podéis hacer más grande o más pequeño la...
Yo lo voy a hacer bastante grande para que todo el mundo lo vea y nadie pierda la vista.
¿Vale? Pero lo voy a hacer más grande y aquí, como podéis ver, puedo escribir.
Aquí ya me aparece que puedo escribir lo que sea. Así que aquí es donde vamos a empezar
justamente. ¿Ok? Aquí es donde le vamos a dar cañita a nuestro JavaScript.
Fíjate que solo haciendo esto ya vamos a ser capaces de programar en JavaScript.
Solo abriendo estas herramientas de desarrollo, en la pestaña consola,
nos aseguramos que tenemos aquí nuestra configuración y aquí ya podemos empezar
a programar. ¿Ok? Muy bien. Pues vamos a explicar qué es esto de la consola antes.
A ver, la consola, esta pestaña especial que tenemos aquí, esta es muy útil en las páginas web
porque son las que te van a mostrar si tienes alguna advertencia, algún error
o algún tipo de problema en tu página web. ¿Vale? Cuando estás depurando con JavaScript
pues te suelen aparecer aquí. Pero también la consola, como puedes ver,
que puedo escribir aquí es porque es un entorno de programación interactiva
que está basada en un proceso que se va repitiendo todo el rato.
O sea, está leyendo continuamente y cada vez tú vas escribiendo fragmentos de código.
Lo que vamos a darle son instrucciones. Le vamos a ir proveyendo de instrucciones
y en cada instrucción la máquina va a responder. ¿Vale?
Nosotros vamos a ingresar instrucciones, va a evaluarse y la máquina nos va a devolver
un resultado. Esto es lo que vamos a hacer. Por eso la consola también es famoso
que se llaman REPLs, que son leer, ejecutar y está así constantemente.
Así que aquí lo tenemos. ¿Vale? ¿Estamos todos ready? ¿Sí?
A ver, que pongan las manitas si está ready. A mover las manitas. Vale.
O sea, que entiendo que sí. Que está ready. Sí. Perfecto. Vale.
Cuando hablamos de programación, una de las cosas más importantes...
¿Por qué programamos realmente? ¿Por qué programamos realmente?
¿Por qué hacemos este tipo de cosas? Lo hacemos porque queremos comunicarnos
con las computadoras. Pero ya hemos dicho que cuando estamos con las computadoras
comunicándonos, no podemos hablar con ceros y unos. No podemos hacer eso.
Queremos, cuando queremos hablar con las computadoras, lo que queremos es representar
el mundo real. El mundo real. El mundo que nos rodea.
Por ejemplo, yo tengo aquí este peluche. ¿Vale? Este peluche.
Y si le quiero decir a la máquina cuántos peluches tengo, ¿cuántos peluches tengo?
Tengo uno. Me gustaría tener más, pero tengo uno. Así que yo le puedo decir a la máquina
cuántos peluches tengo. Así que tenemos diferentes formas de expresar el mundo que nos rodea.
Así que le podemos decir, pues tengo uno. Esto es un tipo de dato.
Le estamos diciendo de alguna forma que tengo un dato que se llama uno.
Y este uno representa un número, que es el número de peluches que tengo.
Fijaos que aquí tenemos unas flechitas. La de arriba estamos indicando lo que le estamos diciendo, ¿no?
A la máquina le estamos diciendo uno. Y lo que tenemos en la flechita esta de aquí abajo
es lo que nos ha devuelto la computadora. Nos ha dicho uno.
Yo le he dicho que tengo uno y me ha dicho, vale, pues tienes uno.
Fantástico. Me parece muy bien.
Ya he representado del mundo real un dato. Los números.
¿Vale? Así que esto ya sería un tipo básico de JavaScript
en el que hemos podido representar el mundo que nos rodea.
Obviamente, con el 1, igual que el 1, puedo representar el 7, el 13, el 28, el 38 y lo que sea.
Puedo representar un montón de números.
Pero fíjate que no puedo representarlos todos.
Por ejemplo, no podría representar el número de estrellas que hay en el universo.
¿Por qué? Porque fíjate que aunque yo le he dicho un número, 442, le he puesto un número aquí súper grande,
me ha contestado con un número diferente.
¿Vale? Esto es porque obviamente las computadoras, cualquier máquina, tienen límites.
Tienen límites. No todo es infinito e ilimitado, como mis ganas de programar.
Ojalá que todo fuese así, pero no es así.
Las máquinas también tienen límites.
Tienen límites a la hora de tratar los números.
Tienen límites a la hora de guardar información, de procesarla.
Así que tenemos que tener cuidado, a veces, de qué números estamos tratando.
No podemos tratar cualquier cosa.
A veces se pueden hacer algunas cosas para que sí que puedan forzar representar esto,
pero tengamos en cuenta que aunque podemos representar números, no podemos representar cualquier número.
Luego, también podemos tener, por ejemplo, números negativos, por supuesto.
Esto también es algo que nos ayuda a representar en el mundo real.
Por ejemplo, ¿cuánto dinero me queda en el banco?
Pues a mí, menos 100 euros. Vale, pues tengo menos 100 euros. Perfecto.
Ahora, cuando queráis limpiar la consola, imaginaos que en la consola tenéis mucha información.
Y decís, vale, quiero, no sé, ¿cómo puedo limpiar la consola?
Podéis hacerlo de diferentes maneras.
Le podéis dar al botón derecho y le dais a despejar consola.
¿Vale? Y así se arregla.
O lo que podéis hacer directamente, después de poner tantos números, sería poner comando K.
Y con el comando K o con el control K se arregla también.
Así que tenéis diferentes formas de limpiar la consola.
¿Ok? Muy bien.
Así que, tenemos la posibilidad de tener tipos de datos, el número.
¿Cuántos peluches tengo? Uno.
¿Cuántos peluches me gustaría tener? Pues unos cuantos más.
¿Cuántas estrellas hay en el universo? No las he contado, pero hay muchas.
Fijaos que llega un momento que la máquina no es capaz de representar este número.
Tiene un límite. ¿Ok?
Y por eso ya empieza a utilizar otras notaciones.
Por ejemplo, esto es una notación científica que dice el exponente.
Pero se está perdiendo, se están perdiendo datos.
Al final, este número no son iguales.
Estos son los límites que estábamos comentando.
¿Ok?
Ahora, también, por supuesto, tenemos otros números en el mundo.
En este caso, ¿cuánto este peluche?
¿Cuánto pesa? Pues no sé.
Yo diría que 300 gramos.
Si lo solo tengo que decir en kilogramos, sería 0.3.
¿Ok? Tendríamos 300 gramos.
¿Cuánto me costó?
Pues podríamos decir que me costó 19.95 euros.
Y utilizamos el punto como un decimal.
Eso es muy importante porque al final, como la notación es en inglés,
tenemos que utilizarlo con punto para indicar el decimal.
Así que ya tenemos cómo indicar precios, cómo indicar cantidades.
Ya estamos, de alguna forma, mostrando nuestro mundo que nos rodea.
Vamos a otro sitio.
Vamos a otra cosa.
Obviamente, el mundo que nos rodea, también estamos rodeados de matemáticas.
Las matemáticas son parte de nuestra vida, aunque no nos demos cuenta.
Por ejemplo, yo cuando compré el peluche este, tenía 500 euros.
Pero me costó 19.95, ¿verdad?
Pues 500 menos 19.95, 480.05.
Al final, las computadoras más básicas que existieron en su día,
justamente fueron para hacer matemáticas, para hacer operaciones aritméticas.
Sumas, restas, divisiones, restos, multiplicaciones.
Al final, funcionar como calculadoras.
Y, por supuesto, cuando queramos programar, podemos hacer este tipo de operaciones sin ningún tipo de problema.
Así que todas las operaciones aritméticas que se nos puedan ocurrir,
por ejemplo, 1 más 1 va a ser 2, 1 por 2 va a ser 2.
También vamos a tener multiplicaciones.
Tenemos restas, por supuesto.
Las restas también funcionan con números negativos.
Tenemos divisiones, 4 dividido entre 2, 2.
Si hacemos una división, también vamos a tener decimales.
Y tenemos dos operadores también que se pueden utilizar bastante,
al menos si te interesa un poco el tema de las matemáticas.
Vas a tener el módulo, que es este, que este operador,
este operador sería un poquito especial,
sobre todo y es muy interesante para hacer pares e impares,
para saber cuando un número es par o es impar.
En este caso, si 5 lo dividimos entre 2, el resto sería 1,
porque el número más cercano sería el 4 y para llegar al 5 la diferencia es 1.
Pero, en cambio, si 4 le decimos cuál es el módulo de 2,
nos va a decir que el resto es 0, porque 4 dividido entre 2,
al final es 2 y no resta nada.
No hay ninguna diferencia para llegar a ese número.
Así que estas operaciones que hacemos,
al final las operaciones ¿con qué se hacen?
Con operadores, igual que lo hacemos en matemáticas.
Así que tanto el más como la multiplicación, el menos, la división, el resto,
y también el exponente, que sería con 2,
y con el símbolo de multiplicación dos veces,
2 elevado a 2 sería 4, 2 elevado a 4 sería 16.
Así que esto se le llaman operadores, operadores aritméticos.
Y son los que nos van a permitir justamente tratar con los números.
¿Vale?
¿Hasta aquí bien?
¿Hasta aquí lo tenéis?
¿No ha habido ningún problema hasta ahora?
Todo bien, perfecto.
Ok.
Ya tenemos la forma de representar los números que nos rodean
y encima hacer operaciones aritméticas al respecto.
Pero también, claro, si yo os digo, mirad, os gusta mi peluche, ¿verdad?
¿Cómo se llama?
¿Alguien sabe cómo se llama el peluche este?
Ah, ¿cómo se llamará este peluche?
Pues este peluche tiene un nombre.
Pero claro, no voy a poder representar el nombre con números, ¿no?
Le podría llamar 13, no sé, pero sería un poco extraño que le llame 13.
Bueno, hay una forma de poder representar también cadenas de texto.
Nombres, ciudades, lo que sea.
Por ejemplo, yo me llamo Miguel Ángel.
Pues voy a poner Miguel Ángel.
¿Cómo se representan las cadenas de texto?
Tenemos que envolver el texto con comillas dobles.
O fíjate que ya la máquina nos ha respondido, pero con una comilla simple.
Así que también con comillas simples podemos utilizar y crear un string.
Existe una tercera forma también, que en este caso, pues para hablar del peluche,
puedo poner peluche de Midudev y es con el acento invertido.
El acento invertido es un poquito especial y luego más adelante verás por qué.
Pero estas serían las tres formas que tendríamos de crear un string, una cadena de texto.
¿Por qué?
Porque en el mundo que nos rodea, si le queremos decir a una máquina cómo se llaman las cosas,
le tenemos que poder identificar de una forma este texto.
Entonces, hay que tener en cuenta que este tipo de dato, claro, no lo podemos multiplicar por dos,
no lo podemos dividir, no podemos restarle.
Pero los strings es obvio que sí que podemos concatenarlos.
Podemos tener dos cadenas de texto que al final representan un texto y es muy típico
que al final tengas el nombre por un sitio y tengas por otro lado el apellido.
Por ejemplo, mi nombre es Miguel Ángel, pero mi apellido es Durán.
Entonces, ¿cómo podría, si tengo dos cadenas de texto, qué operador puedo utilizar justamente para juntar estos dos nombres?
Bueno, pues en este caso tengo Miguel Ángel y utilizamos el símbolo de suma.
Que sea un símbolo, el símbolo de suma no significa que vaya a sumarlo como hemos hecho antes en la operación.
JavaScript va a detectar que estamos trabajando con cadenas de texto y va a decir, ojo, son cadenas de texto
y por lo tanto lo que quiero hacer es concatenar, es juntar una cadena con otra cadena.
Así que vamos a poner la segunda y fijaos en lo que está pasando aquí.
¡Ajá! Si es verdad, la computadora me ha entendido, ha dicho Miguel Ángel,
pero fijaos aquí, me ha juntado el Ángel con el Durán, no me ha puesto ahí un espacio.
Y es totalmente normal, porque yo tampoco lo he dicho.
Y esto es una cosa que vais a aprender a las duras.
Cuando he dicho al principio que cuando programamos le tenemos que dar instrucciones claras y concisas,
tenemos que entender una cosa muy importante.
Y es que la máquina hace lo que le digas, no lo que tú piensas que tiene que hacer.
Seguramente, en este ejemplo, alguien hubiera pensado,
yo lo que espero que haga es que Miguel Ángel Durán me lo concatene de una forma.
Eso es lo que tú piensas, pero no lo que le has dicho que haga.
Cuando hablamos de instrucciones claras y concisas, quiere decir que va a hacer exactamente lo que le digas.
¿Y por qué te digo esto y a qué viene esto?
Esto viene porque muchas veces nos frustramos con las máquinas,
porque justamente decimos, no entiendo por qué no funciona si yo quiero que haga esto.
Pero una cosa es lo que tú quieres que haga y otra cosa es lo que le estás diciendo.
Así que muchas veces esto te puede ayudar a decir,
seguramente si la máquina está haciendo esto, es porque yo, aunque no me doy cuenta,
aunque no veo el problema, es porque se lo he dicho.
Lo digo porque esto muchas veces es el problema que te va a solucionar un montón de cosas.
Muy bien.
Así que, para asegurarme esto, voy a concatenar Miguel Ángel.
Y le voy a decir de forma clara que entre Miguel Ángel y mi apellido,
quiero un espacio en blanco.
El espacio en blanco, quieras o no, sigue siendo una cadena de texto.
El hecho de que haya un espacio en blanco es totalmente válido y es una cadena de texto válida.
Así que no hay ningún tipo de problema.
Se puede utilizar y lo tendríamos perfectamente.
Ahora, te he dicho que este caso, este del peluche de Midudev,
es un caso un poquito especial.
¿Por qué?
Porque mientras que estas cadenas de texto te permiten crear cadenas de texto y concatenarlas,
y ya está, esta también te permite hacer concatenaciones,
pero te permite una cosa todavía más interesante.
Y es que puedes incrustar valores dentro.
Lo cual es súper útil.
Porque pongamos este peluche de Midudev.
Voy a limpiar esto.
Peluche de Midudev.
Cuesta.
Y aquí me gustaría ponerle cuánto dinero cuesta.
Pero resulta que, claro, no tengo muy claro cuánto costaba y tengo que hacer una operación.
¿Cómo podría hacer esta operación?
Pues en este caso puedo incrustar un valor.
Para incrustar un valor, voy a poner el signo de dólar y voy a abrir y cerrar las llaves.
Y ahora, lo que le voy a decir es, vale, pues aquí dentro le voy a decir el valor.
Le voy a decir que costaba 100, pero resulta que tenía que multiplicarlo por los impuestos.
Así que voy a decirle que por 1,20, que eran los impuestos,
a amigo, y ahora me doy cuenta que cuesta, en realidad, 120 euros.
El peluche de Midudev cuesta.
Y vamos a incrustar una operación aritmética como la que hemos aprendido antes.
100 por 1,20.
¿Por qué?
Porque tiene un 20% de impuestos y quería saber justamente,
quiero que la máquina me diga cuál era el precio.
Así que vamos a tener esta incrustación aquí,
que nos permite hacer este tipo de cadena de texto,
que es con este símbolo de acento invertido.
Y ya está.
Esto, obviamente, lo podríamos haber hecho de la otra forma,
pero es bastante más complejo y de esta forma puedes hacer concatenaciones
con incrustación mucho más fácil,
sin necesidad de utilizar el operador que hemos visto antes de más,
que es para concatenar strings.
Puedes incrustar aquí también cualquier tipo de operación.
Lo importante puede ser un número, puede ser otro string,
puede ser lo que tú quieras.
Así que estas serían las cadenas de texto para representar el mundo.
Perfecto, vamos con otro.
¿Qué pasa con todo esto?
Pues que ya tenemos los números, tenemos las cadenas de texto,
pero resulta que si quiero representar el mundo que me rodea,
pues claro, ¿es verdad que tengo este peluche a mi lado?
¿Quién me diría esto?
¿Es verdad que tengo este peluche a mi lado?
¿Cierto o falso?
Es cierto, ¿verdad?
Cuando estamos en un programa de la tele y tenemos que responder,
¿es cierto o falso?
Tenemos un resultado binario que es sí o no,
verdadero o falso, encendido o apagado.
Este tipo de dicotomía en el que tenemos como estos dos resultados,
de sí o no, encendido o apagado,
este sistema binario, al final se llama boleano.
Es algo que puede ser verdad o que puede ser mentira.
Y para poder representar el mundo,
tenemos que poder saber si algo es verdad o no es verdad.
¿Y cómo lo podemos hacer?
Esto lo podemos hacer con los boleanos.
Los boleanos se representan con dos valores,
con el true para decir si es verdad
y con el false para decir si es mentira.
Esto, que puede parecer una tontería,
esto te va a dar todas las posibilidades
para que puedas seguir trabajando y hacer flujos.
¿Por qué?
Porque tú vas a poder decir,
oye, si esto es verdad, quiero que hagas esto.
Si esto es mentira, quiero que hagas otra cosa.
Además, muchas veces te puede ayudar justamente
a distinguir posibilidades.
Puedes decir, vale, esto es mayor que esto,
sí o no, ¿verdad o no verdad?
¿Esto se incluye aquí?
¿Sí o no?
¿Este peluche?
¿Lo tengo o no lo tengo?
¿Sí o no?
Esto imaginaos en un e-commerce,
en millones de sitios.
En todos los sitios vais a tener
la necesidad de un boleano.
Hasta cuando tenéis un interruptor en vuestra casa,
tiene estos dos estados de encendido o apagado.
De sí o no.
¿Está encendido?
¿Sí o no?
Vale, pues el tipo boleano
tiene solo estos dos valores,
true y false.
Es súper útil, obviamente, para las comparaciones.
Como hemos visto antes, ya sabíamos los números.
Pero tenemos otros operadores
que nos va a permitir comparar valores.
Por ejemplo, ¿el 3 es mayor que el 2?
Pues resulta que sí.
Por lo tanto, tenemos un true.
¿Pero el 2 es mayor que el 3?
Pues no.
Así que tenemos un false.
Este tipo de operador
siempre nos va a devolver,
si es true o false,
nos va a devolver un boleano.
Esto mismo lo podríamos hacer también
con los strings.
Necesitamos saber si las cadenas de texto
son iguales o son diferentes.
Por ejemplo, yo tengo Miguel.
¿Miguel es igual que Miguel?
Pues obviamente no lo es.
O podríamos decir si es diferente.
Por ejemplo, ¿una pera es diferente a una manzana?
Pues aquí tenemos también
otro operador de comparación
para ver si la igualdad
de lo que hay a la izquierda y a la derecha,
para saber si son iguales,
y en este caso,
para ver si son diferentes.
¿La pera es diferente a la manzana?
True.
Sí que lo es.
O sea, la máquina nos está diciendo
si algo es verdadero,
si algo es falso.
Nos está permitiendo comparar.
Hay un montón de operadores de comparación.
Hay más.
Por ejemplo,
¿el 2 es mayor o igual al 3?
¿Vale?
False.
¿El 2 es mayor o igual al 2?
Cierto.
¿Vale?
Esto lo podríais hacer al revés también.
Podríais mirar
si el 1 es menor que el 2
o si el 1 es menor o igual que el 1.
¿Vale?
Pues ahí tendríamos el true.
Así que estos operadores de comparación
siempre nos van a comparar
y nos van a devolver justamente un boleado.
Ahora bien,
normalmente,
cuando estamos en el mundo real,
en la vida que nos rodea,
es complicado que estemos constantemente
haciendo estas comparaciones.
Nosotros no comparamos solo el 2
en mayor que el 3
y ya está.
No.
Siempre tenemos que hacer aplicaciones.
O sea,
hacemos aplicaciones mucho más complejas.
Tenemos que tomar decisiones
dependiendo de algunas concatenaciones de decisiones.
Por ejemplo,
yo no solo digo
voy a cocinar
si tengo hambre es true.
No.
Muchas veces voy a cocinar
si tengo hambre es true.
Si también tengo comida en la cocina.
Si además es la hora de comer,
¿no?
Voy a tener que ir concatenando también
este tipo de condiciones.
No hago solo una condición,
sino que muchas veces hago más.
Así que, por ejemplo,
cuando diría
si voy a comer,
diría
es la hora de comer
true.
Pero es que además
tengo hambre
true
y además
también diría
que tengo comida por hacer
true.
Por lo tanto,
tengo true,
true y true
entonces es true.
Aquí estamos utilizando
un operador lógico
que es el and and.
¿De qué trata esto?
Esto lo que estamos diciéndoles
es que estas tres condiciones
que tenemos aquí
tienen que ser todas verdaderas
para que yo me vaya a comer.
Tengo que tener comida,
tengo que tener hambre,
tiene que ser la hora de comer
y entonces será true.
Pero si es la hora de comer
y resulta que tengo hambre
pero es que
no tengo
no tengo comida
que pueda cocinar,
al final que me dice el programa
pues entonces va a ser false.
¿Vale?
Puede ser que tengas hambre,
puede ser que sea la hora de comer,
pero si no tienes ningún tipo de comida
para cocinar,
pues no se cocina.
False.
¿Vale?
Así que este tipo de operador
que sería el and,
lo que tiene que hacer
es que todas las condiciones
sean reales.
O sea,
que sean reales
no que sean ciertas.
Que todas las condiciones
sean ciertas
para que se cumpla
esa condición.
Por ejemplo,
aquí también podríamos decir
es el 2
igual al 2
y además
es el 4
mayor
igual al 4.
Si las 2 son true,
pues true.
pero si resulta que decimos
si el 4
es mayor que el 4,
una de las dos condiciones
es false
y por lo tanto
esta condición completa
es false.
Esto es la lógica booleana,
pero bueno,
está interesante
que la repasemos también.
Ahora,
igual que tenemos el and,
puede resultar
que tengamos otro tipo
de condición
y es que digamos,
bueno,
mira,
¿sabes qué?
Tengo hambre,
o sea,
tengo que comer alguna cosa.
Así que voy a hacer
otro tipo de condición.
Voy a utilizar el or,
el or,
que es con el operador
de dos barritas,
que es este.
Y voy a decir,
vale,
tengo hambre,
es true.
Pero,
¿tengo hambre es true?
Vale,
pues vamos a ver una cosa.
¿Tengo algo que cocinar?
False.
O,
me voy a comprar comida.
Mientras una de las dos
sea cierta,
voy a comer.
O sea,
si no tengo comida,
pero puedo ir a comer,
pues nada,
me voy a comer,
es true.
O sea,
ya sea que pague,
ya sea que tenga comida en casa,
una de las dos es cierta,
por lo tanto,
la condición ya es cierta.
Esta condición,
la de or,
lo que necesitamos es que
al menos una de las condiciones
se cumpla.
Con que tengamos un solo true,
ya será suficiente
para que la condición sea true.
Esto es súper importante
porque al final
vamos a necesitar
algunas veces
cumplir solo una condición
para hacer algo
en nuestro programa.
No hace falta que siempre
se cumpla todo.
Esto lo podemos ver también
con los números
que hemos visto antes.
Por ejemplo,
puedo decir
que el 2 sea mayor que 3,
esto va a ser false,
pero puede ser
que el 3 sea mayor que 2.
Una de las dos se cumple,
por lo tanto,
es true.
Ahora,
si todas las condiciones
no se cumplen,
por ejemplo,
vamos a decir
que el string
hola
sea igual
a Dios,
esto no se cumple,
es false.
Y además,
que hasta luego
sea igual
a Dios.
Ninguna de las dos
se cumple,
estas dos condiciones
no se cumplen
y por lo tanto,
todo es false.
No hay ninguna condición
que se cumpla,
no podemos continuar
con esto.
Además de estos dos operadores
que ya vais a ver
más adelante
con los ejercicios
que vamos a ir haciendo,
son súper importantes
a la hora de manejar
la lógica
cuando queremos hacer algo
y solo tienes que pensar
para practicar esto
es súper fácil
porque lo único
que tienes que pensar
es en tu día a día.
Muchas veces
en tu día a día
seguro que tomas decisiones
utilizando este tipo
de condiciones,
ya sea la del and,
donde todas las condiciones
se tienen que cumplir,
por ejemplo,
te quieres ir de fiesta,
me voy a ir de fiesta
si me apetece,
si tengo el dinero,
si además va la chica
que me gusta,
si se cumplen esas tres,
me voy de fiesta.
Entonces,
estamos utilizando el and,
pero imaginemos
que también vamos a utilizar
a veces el or,
y es decir,
bueno,
pues me voy a cenar,
bueno,
voy a cenar,
ya lo he utilizado,
vamos a utilizar otro ejemplo.
Vale,
me voy a comprar el peluche,
me voy a comprar el peluche
si lo deseo
o si me lo regalan,
o si cae del cielo
o con que una se cumpla
vas a tener el peluche,
¿vale?
Así que esa,
por ejemplo,
sería la del or.
En tu día a día
la estás utilizando.
De nuevo,
lo que hacemos
con la programación
en realidad
es poder trasladar
el mundo que tenemos
a la máquina.
Así que esto es lo que nos ayuda
justamente a tomar
estas decisiones,
¿vale?
Muy bien,
me gustan alien,
ostia,
eso es un poco raro,
¿eh?
Es un poco raro.
Vale,
ahí tenemos esto.
Ahora,
tenemos un operador más
que,
aunque por sí solo
puede parecer
que no tiene mucho sentido,
más adelante
te vas a dar cuenta
que obviamente
sí que tiene.
Y es básicamente
el not,
que es un operador
que voltea
el valor
del booleano
que estamos tratando.
En este caso
se pone antes
del valor,
podríamos poner
aquí el operador
y decimos
cambiar el true
pasaría a false.
Es como voltear justamente,
¿no?
Estaríamos volteando.
Si le ponemos la exclamación
antes,
le ponemos el true,
lo pasamos a false.
Le estamos dando la vuelta
y con el false
lo pasaríamos a true.
Básicamente esto
sería como cuando yo
no tengo ganas
de despertarme,
¿vale?
Y digo,
vale,
no tengo ganas
de despertarme,
pero tengo que trabajar.
Así que no tengo ganas
de despertarme,
es true,
pero venga,
se quitan las tonterías.
Le doy la vuelta
y me voy a levantar.
Esto es lo que hay.
Es como darle la vuelta.
Ok,
aparte de todo esto,
ya hemos visto
las cadenas de texto,
los booleanos
y los números,
que son tipos de datos
que necesitamos
para representar el mundo.
¿Cómo también
podemos representar el mundo?
Bueno,
pues resulta que hay un valor
que muchas veces
tenemos en nuestra vida,
que es el vacío.
El vacío también
está en nuestras vidas
y lo tenemos que representar.
La ausencia de algo,
ya sea que algo nos falta,
algo que anhelamos,
algo que nunca ha existido,
algo que nunca ha estado
con nosotros,
lo que sea.
Pero al final,
la ausencia
también la tenemos que tratar
de alguna forma
y decirle a la máquina
que aunque no está,
existe.
Así que hay
en JavaScript
dos formas
de hablar de esto.
Digamos que tenemos
los valores nul,
que serían valores nulos,
que estarían vacíos
pero definidos,
sería un valor
que está diciendo
la ausencia,
o sea,
que no tiene un valor,
es como el valor
que tiene es nulo
y tendríamos el valor
undefined
y lo podemos ver aquí.
Y ahora os voy a enseñar
un ejemplo muy gráfico
que vais a entender
perfectamente
y que has sufrido seguro,
que lo sé.
Mira,
tendríamos el valor nul,
el valor nul
lo utilizamos así,
nul,
ya está,
y tendríamos el valor
undefined.
Estos son diferentes,
el nul sería el valor nulo
y el undefined
sería un valor no definido
y entonces tú me dirías,
vale,
pero ¿cuál es exactamente
la diferencia
entre estas cosas?
¿Vale?
¿Cuál es la diferencia?
Por ejemplo,
una persona,
tu crash,
puede ser que
no te quiera nada
o que no sepa
que existas.
Son dos cosas
totalmente diferentes
y una,
no sé cuál duele más,
pero una seguro
que duele más que la otra.
Puedes tener que el amor
sea nulo,
que no te quiera absolutamente nada
y otro que es que ni siquiera
sepa de tu existencia.
Bueno,
lo que tú prefieras,
el que te duela más,
ese puede ser.
O también te puedes quedar
con esto,
porque mucha gente
también puede confundir
el cero,
que es el valor
del cero numérico,
¿no?
Tengo cero,
bueno,
sí que tengo más peluches,
no iba a decir
tengo cero peluches,
pero sí que tengo peluches.
Por ejemplo,
aquí ahora mismo
tengo cero androids,
¿vale?
Tengo cero
porque no tengo ninguno.
Pero una cosa
es que no tenga ninguno,
que sería esto,
¿no?
Cero.
Otra que sea nul,
que es que no está,
no es nul,
y otro que no esté definido
ni siquiera.
Así que con este ejemplo
podemos ver claramente
la diferencia entre los tres.
Uno sería que tengo
cero de eso,
otro que es nulo
lo que tengo
y otro que no está definido
ni siquiera.
Ahí podéis ver la diferencia
entre los tres,
¿vale?
No soy un Android hater,
hombre,
a mí me gusta,
a mí me gusta Android,
pero ahora mismo
no tengo ninguno,
las cosas como son,
las cosas como son.
¿vale?
Así que esta sería
súper importante
a la hora de definir valores
nulos y no definidos.
Vais a ver que a veces
el nulo y el undefined
se solapan,
pero como podéis ver,
conceptualmente
son diferentes.
Así que es súper importante
que tenéis claro
la diferencia entre los dos.
¿Vale?
Muy bien.
A ver,
vamos a cerrar este
y seguimos por aquí.
Hay otros tipos de datos.
Nuestro mundo
es vasto,
en nuestro universo
tenemos un montón de cosas
que tenemos que representar
y por lo tanto,
como hemos visto con los números,
por ejemplo,
tenemos un número de estrellas,
así que en aquel momento,
yo qué sé,
el número de estrellas,
si son muchas,
ya ves que no lo puedes representar.
Tienes otro tipo de dato
que se llama
BigInt,
que lo que te permite
es poder representar
ese tipo de números
sin ningún tipo de pérdida
de detalle.
En este caso,
le pones una n al final
y ya estaríamos representando
un número muy grande
y sin perder esa información.
Igual que hemos visto
con los números,
los BigInt,
que serían con una n al final,
esa sería la única diferencia,
los puedes sumar también.
Podrías hacer operaciones
aritméticas con ellos.
Los puedes sumar,
los puedes restar,
los puedes dividir,
los puedes multiplicar,
puedes hacer operaciones con ellos.
Lo único que te permite
es tener números
mucho más grandes.
¿Por qué?
Porque nuestro universo
tiene cosas que hay
muchas,
muchas de ellas.
Y aparte de este tipo,
hay otro tipo más
que se llama Symbol.
No es necesario
que ahora mismo
lo entiendas,
lo comprendas
o lo uses,
pero sí que existe.
¿Y de qué trata el Symbol?
Te lo voy a explicar
muy rápidamente.
Al final,
el Symbol,
si lo traducimos,
es símbolo.
Y eso es lo que hace.
Cada vez que lo ejecutamos,
está creando
un símbolo único
en el mundo,
en el universo.
Imagínate que tuvieses
una fábrica
que cada vez que le das
a un botón,
te crea algo
totalmente único
y no repetible
durante la existencia.
Pues eso sería un símbolo.
Le estamos dando
a un botón
y dice,
vale,
te he creado esto,
que no hay ninguno más
que sea igual a este.
Y igualmente,
pues así todo el rato.
Básicamente,
como me salen a mí
las crepes,
yo las crepes
voy haciendo,
son como símbols.
Mis crepes
son como símbols.
Cada vez que hago una crepe
me sale diferente
a la anterior.
Hay unos que me salen bien,
otras que me salen quemadas,
otras que me salen
más pequeñas que otras.
Para mí,
esos son símbols.
Pero ya me entiendes,
cada vez que llames
al símbolo
y lo ejecutes,
esto te va a crear
un símbolo único
que nunca
se va a repetir.
Así que todos los símbols
son diferentes.
Por eso,
si intentásemos hacer
la igualdad
de un símbolo y otro,
lo que nos vamos a encontrar
es que siempre
va a ser false,
porque siempre nos está
devolviendo algo
totalmente diferente.
A que le llamáis crepe
en algunos sitios.
Le podéis llamar
pancakes también,
panquecas
o pancakes,
como queréis.
Las crepes.
Aquí le llamamos crepes.
A lo mejor es muy español,
no lo sé.
Vale,
pues aquí lo tendríamos.
Hasta aquí,
bien.
Os he explicado
un montón de tipos
y alguien me dirá,
vale,
muy bien,
todos los tipos estos
para el mundo,
para identificar el mundo,
para hablarle a la máquina,
todo esto está muy bien.
Pero claro,
es que al final
estoy hablando con una máquina
y me parezco un poco tonto,
porque le estoy dando expresiones.
Estoy aquí diciéndole,
vale,
dos más dos,
me dice la máquina,
cuatro.
Vale,
hola,
y no me dice adiós,
me dice hola también.
Al final lo que estamos haciendo
de alguna forma
es estar expresando algo
constantemente.
Al final,
todo lo que estamos haciendo aquí,
si os fijáis,
es que siempre la máquina
nos está contestando algo.
¿Y esto qué quiere decir?
Que está expresando,
estamos expresando,
estamos produciendo algo.
Estas expresiones,
esto será una expresión,
esto será una expresión,
porque siempre la máquina
nos dice algo,
siempre nos está contestando.
Cuando no nos contesta,
cuando no estamos produciendo
un valor,
es que no estamos haciendo
una expresión,
sino que estamos haciendo
otra cosa,
que lo veremos después.
pero el tema es que
si empezamos aquí
y yo digo
hola mundo,
esto en realidad
digo hola mundo,
pero esto se pierde
en el vasto universo,
en realidad,
¿hacia dónde va este hola mundo?
Nunca puedo guardar nada.
Por ejemplo,
me gustaría guardar
pues cuánto,
cuánto me costó
este peluche.
Vamos a hacer
que pueda guardar
mis finanzas,
porque claro,
mis finanzas son las que son
y al final,
pues he tenido
que gastar dinero
y todo esto.
Yo tenía 500 euros
y me compré el peluche
y pues ya tengo menos dinero.
Vale,
como hemos visto,
podríamos decir
que tengo 500 euros
menos 20 euros
que me costó el peluche,
480.
Claro,
pero este 480
que se ha quedado aquí,
¿qué pasa con él?
Es que al final
no puedo hacer nada,
ya no lo puedo volver a recuperar,
¿tengo que volver a calcularlo
cada vez que lo quiera hacer?
Obviamente no.
JavaScript
y todos los lenguajes
de programación del mundo
te permiten
de alguna forma
guardar
y almacenar
información en memoria
para que si quieres
recuperarla,
tratarla
y hacer algo con ella,
puedas volver a leerla
sin necesidad
de volver a calcularla
y esto
lo vamos a hacer
con una cosa
que se llaman variables.
Son variables
que al final
lo que nos permite
es asignar
una porción de memoria,
puedes pensar,
hay gente que lo piensa
como un cajón de casa,
un cajón
que tiene una etiqueta
que le llamas
con un nombre
y dice,
vale,
pues aquí en este cajón
voy a guardar esto.
En realidad
lo puedes pensar
como cualquier cosa
que tengas.
Yo por ejemplo pienso
donde estoy guardando
mis calcetines,
pues bueno,
ahí voy metiendo cositas,
pues ahí lo vamos a tener
y el día de mañana
voy y recupero
mi calcetín
de color verde.
Pues así sería lo mismo.
Para poder tener
un estado,
cualquier programa
necesita tener
un estado,
necesita ir recordando
lo que hemos hecho
anteriormente.
Si no,
la programación
sería inútil
porque no seríamos
capaces
de recordar
que habíamos hecho antes,
que tendremos que hacer después,
así que necesitamos
tener estas variables
para asignar la memoria
y tener los valores
para después
poder tratarlos.
En este caso,
en lugar de tener
este 500 menos 20,
voy a hacer algo.
Voy a decir que tengo aquí
con let,
con esta palabra clave
reservada
de JavaScript,
lo que nos permite
es crear
este espacio de memoria
que le tenemos
que poner un nombre.
En este caso
le voy a llamar,
por ejemplo,
finanzas.
Finanzas.
Y le tengo que asignar
un valor.
Lo puedo inicializar.
Esto en realidad
es opcional.
Podríamos directamente
tener la variable let
con esa asignación
de memoria
y no hacer nada con eso.
Pero obviamente,
como son las finanzas,
yo quiero asignarle
un valor.
Para asignarlo,
estamos utilizando
el operador de asignación
que es el igual.
Es un poco raro,
te puede molestar un poco
porque el igual al final
puede parecer que sea
como de igualdad,
pero en este caso
ya hemos visto
que la igualdad
se hace con tres iguales
y aquí para asignar
y poder inicializar
una variable
con un valor,
lo que necesitamos
es poner un solo igual.
Y aquí podemos utilizar
cualquiera de los tipos
que hemos visto antes.
Hemos visto un montón
de tipos.
Números, strings,
los booleanos,
los null,
el undefined,
el symbol,
todos estos.
Pero obviamente
lo que necesitamos aquí
es nuestras finanzas
y mis finanzas
empezaron con 500.
Ahora,
fíjate
qué ha pasado aquí.
¿Qué ha pasado aquí?
Que me ha dicho
que es undefined.
La máquina,
cuando yo le he dicho,
oye,
quiero crear una variable
con el nombre finanzas
utilizando la palabra
reservada let,
esto me permite
crear un cajón
que da más finanzas
y ahí vamos a guardar
el valor 500.
Pero me ha dicho
undefined.
Esto es súper importante
y esta es la gran diferencia
que vamos a tener
justamente
entre expresiones
que nos devuelven
un valor
y declaraciones
donde le estamos diciendo
justamente a la máquina
qué es lo que tiene que hacer.
Lo que le estamos diciendo
de alguna forma es,
oye, máquina,
te declaro
que tienes que hacer esto
y la máquina dice,
vale, está muy bien,
pero vale,
pues no te devuelvo nada
porque me has dado
una instrucción
y ya está.
No estás esperando
que te conteste con nada.
Así que
es muy importante
ver esta diferencia
entre expresiones
y lo vemos muy claro aquí
porque vemos
cómo la máquina
nos devuelve algo
y declaraciones
donde estamos dándole
instrucciones
y vemos que nos devuelve
undefined
que es uno de los valores
que hemos visto antes
que no estaba definido.
Así que en este caso
le decimos,
oye, máquina,
aquí tengo una declaración
para ti.
Tengo una instrucción
en la que quiero guardar
la variable finanzas
y le quiero asignar,
quiero inicializarla
con el valor de 500
y la máquina dice,
vale, ok,
pero no hago nada más.
Hasta aquí me ha quedado.
Vale, perfecto.
Lo bueno que tenemos de aquí
es que las finanzas
ya las podemos volver
a tomar cuando queramos.
Simplemente utilizando
la etiqueta
que le hemos puesto
a esta variable,
fíjate que la pongo,
le doy al enter
y ahora sí la máquina
me está volviendo
a expresar
y me está diciendo,
ah, vale,
son 500
y cada vez que ya
estemos utilizando
este finanzas 500
lo vamos a tener aquí.
Esto es como una vinculación
que existe
entre esta variable
y este valor.
Ahora,
esta variable
siempre va a tener
guardado ese valor
hasta que nosotros
lo cambiemos
o lo modifiquemos.
De hecho,
lo bueno que tenemos
en los cajones
de nuestra casa
es que obviamente
no le asignamos una cosa
y se queda ahí por siempre,
¿no?
Decimos,
ah, no,
he guardado
el calcetín ahí,
pues ya no lo puedo mover
nunca más,
ya se queda ahí por siempre.
No, hombre, no.
También lo podemos
ir cambiando.
Las finanzas al final
simplemente
no las podemos dejar
así tal cual.
Lo más interesante
es que podemos
también cambiarle el valor.
Imagínate que digo,
ostras, no,
me he equivocado
porque resulta
que mis finanzas
no eran 500,
mis finanzas
en realidad
eran más,
eran 300,
¿vale?
Y en este caso
dices, ostras,
finanzas eran 300,
vale, vale,
pues eran 300
y ahora si miramos
las finanzas
no vuelvo a decir
que es 300.
Aquí lo que hemos hecho
es una reasignación
y le hemos dicho
que esta variable
vamos a cambiar
lo que tiene dentro.
En lugar de ponerle
los 500
le vamos a poner
los 300,
¿vale?
Perfecto,
le hemos puesto 300.
Ahora que ya tenemos
las finanzas
que tenemos 300,
fíjate que con las finanzas
podemos hacer
cualquier operación aritmética
porque nos estamos
refiriendo
al valor numérico.
Así que cuando yo hablo
de las finanzas
le puedo decir,
vale, pues mira,
mi padre me ha regalado
para mi cumple
20 euros
y además
también pues he tenido
un extra
porque he hecho
un trabajo de freelance
que me han pagado
200 euros.
Ah, perfecto,
pues ya tengo
420 euros
en mis finanzas.
Bueno,
pues ahí estamos mejorando.
Pero, ¿qué pasa?
Que si vuelvo a mirar
mis finanzas
es otra vez 300.
¿Por qué pasa esto?
Porque como hemos dicho
antes una cosa
es lo que esperamos
y otra cosa
es lo que la máquina
ha entendido.
Y lo que está pasando aquí
es que lo que simplemente
ha entendido la máquina
es que tú quieres
hacer una operación
entre tus finanzas
y le quieres sumar 20
y le quieres sumar 100
y eso se queda así.
Pero, ¿cuándo le hemos dicho
en realidad
que queremos guardar
nuestras finanzas?
Que queremos seguir
guardando las finanzas
con este nuevo valor.
Se lo tenemos que decir.
Ya hemos visto
que podemos hacer
una reasignación
pues por lo tanto
necesitamos hacerla.
Así que le decimos
que las finanzas
va a ser ahora
le vamos a volver
a asignar el valor
que va a ser
el de finanzas
más 20
más 100.
y de esta forma
sí
hemos actualizado
el valor
que tenemos ahí.
Lo hemos reasignado.
Así que ahora
en las finanzas
ahora sí que tenemos
420.
Podemos volver a seguir
en las finanzas
ahora resulta
que me he comprado
el peluche
pues menos 20
y así constantemente.
De esta forma
empezamos a tener
un valor
que va cambiando
en la variable.
O sea,
vamos teniendo
un estado
en nuestra aplicación.
Esto nos pasa
exactamente igual
en nuestro día a día
con las finanzas
cuando tenemos
la variable
en el banco
y vamos viendo
cómo va bajando
cuando van viniendo
los recibos
pues esto es
exactamente lo mismo.
También eso
se tiene que guardar
en algún sitio
porque si no tuviese
un estado
en el que se va
guardando eso
para poder tener
un histórico
pues al final
nuestras finanzas
siempre serían las mismas
que a veces
no estaría mal tampoco
la verdad
las cosas como son.
Entonces
ya hemos visto
que los valores
no están atados
por siempre
cuando creamos
este tipo
de variable
pero hay una variable
que te va
a imposibilitar
que puedas hacer
la reasignación.
Hemos visto
que para crear
una variable
utilizamos
let
que es una palabra
reservada
le llamamos número
y ponemos aquí
el número que queramos
y podemos justamente
al número
lo volvemos a cambiar
y le reasignamos
el 20
hasta aquí perfecto
pero hay otro tipo
de variable
que esto
lo va a evitar
y no vas a ser capaz
de hacerlo.
Este tipo de variable
se llama const
de constante
y lo que significa
es que vamos a crear
un cajón
que siempre va a tener
lo mismo asignado
no podemos cambiar
no le podemos volver
a cambiar
el contenido que tenía
por ejemplo
en este caso
el precio
que tiene
el peluche
bueno
podemos poner
por ejemplo
peluche
tú que
vale
la frase del peluche
¿qué pasa
con la frase del peluche
esta?
La frase del peluche
esta yo por más que quiera
no la voy a poder modificar
no es que le voy a arrancar
la taza
y al final
le voy a cambiar esto
así que
la frase del peluche
por ejemplo
sería bastante interesante
que sea una constante
así que creamos
una constante
que sea frase
podemos guardar
una cadena de texto
y le vamos a llamar
this is fine
y esta cadena de texto
al final
no queremos volver a cambiarla
porque no la puedo cambiar
si yo le digo
no no no
quiero que el perrito
en lugar de this is fine
ponga
this is cool
si lo intento reasignar
vamos a tener un error
porque me va a decir
oye
es que no puedes
volver a hacer
una asignación
a una variable
que es una constante
así que ya tenemos
una diferencia
entre let
que lo que nos permite
es tener variables
y que se pueden reasignar
y const
que son constantes
que lo que hemos asignado
ya no se puede volver
a reasignar
no acepta reasignaciones
o si no
nos va a dar un error
así que aquí tenemos
esta diferencia
importante
y a veces tiene sentido
obviamente utilizar let
y otras utilizar const
cuando estás empezando
para empezar
seguramente
te van a
te va a ir bien
que utilices solo let
¿por qué?
porque siempre vas a tener
la posibilidad
de hacer una reasignación
y vas a evitar
este tipo de problemas
pero conforme vayas aprendiendo
lo más interesante
es que intentes
cada vez más
utilizar const
porque esto te va a simplificar
mucho
el cómo trabajas
con tu código
y especialmente
vas a ver mucho más claro
los pasos
que está dando
tu programa
¿vale?
muy bien
entonces
ya tenemos aquí
tanto
hemos visto los tipos de datos
para que podamos
pues hablar de nuestro mundo
hemos visto también
cómo guardar esos datos
en variables
y ahora
vamos a hablar
de cómo podemos controlar
el flujo de nuestro programa
porque si nos vamos fijando
en el programa
que vamos construyendo
por ejemplo
vamos a tener aquí
juegos
juegos que tengo
pues tengo 15
vale
pues me he comprado
juegos que tengo
más
vamos a asignarle
juegos que tengo
más 2
porque me he comprado 2
perfecto
vale
¿cuántos juegos tengo?
tengo 17
ya está
punto y pelota
esto es un flujo
que es lineal
es básicamente
es trivial
porque nuestro flujo
de control
es una línea recta
va siempre hacia adelante
hacemos una
una línea
otra línea
otra línea
pero este flujo
es muy aburrido
porque en los programas
¿cómo vamos a hacer
que todo el mundo
funcione así?
es que al final
no tendría mucho sentido
al final
las máquinas también
funcionan
dependiendo de ciertas condiciones
y para algo
tenemos nuestros valores
boleanos
que hemos visto antes
nuestra lavadora
por ejemplo
no puede funcionar
si no lo hemos echado
detergente
no tiene sentido
que sea lineal
y que funcione
sí o sí
si no hemos visto antes
si tiene detergente
y el microondas
no debería funcionar
si al final
tampoco le hemos puesto comida dentro
así que tenemos que evitar
que funcione
en este caso
¿cómo lo podemos hacer?
pues pongamos
que tenemos
comida dentro
o tenemos
comida dentro
¿tenemos comida dentro?
vamos a poner que es true
ahora
¿cómo podemos hacer
un flujo de control
que sería
pues
en lugar de un camino recto
que tuviera
una ramificación
de forma que
si tiene comida dentro
que haga una cosa
y si no tiene comida dentro
que haga otra cosa
vamos a ramificar
nuestro programa
para que pueda tener
dos opciones diferentes
vale
¿cómo va a tomar
la rama adecuada?
se lo tenemos que decir nosotros
¿y cómo se lo decimos?
a través de una condición
¿cómo son las condiciones?
las condiciones
siempre son boleanas
o es true
o es false
y en este caso
tenemos comida dentro
vamos a utilizar
una estructura de control
que se llama
if
que también son palabras reservadas
le decimos
si
vas a cumplir
esta condición
que es
tenemos comida dentro
lo que vas a hacer
es una cosa
¿vale?
¿qué es lo que vamos a hacer?
pues en este caso
podríamos decir
vamos a
cocinar
vamos a cocinar
¿vale?
por lo tanto
vamos a cocinar
ahí está
ahora
si la comida
no la tenemos dentro
podemos decir
que la comida
pues ya no la tenemos dentro
vamos a utilizar
el mismo código
que teníamos aquí
lo seleccionamos
lo copiamos
lo pegamos aquí
y fíjate
ahora
si tenemos la comida dentro
y le decimos que va a cocinar
fijaos que ahora el programa
nos dice undefined
¿por qué?
porque no tenemos la comida dentro
esta condición no la cumple
y lo que hemos puesto
entre llaves
es lo que va a evaluar
en este caso
la estructura de controles
si tenemos comida dentro
entonces
haz
vas a cocinar
y entonces me ha dicho
vale
pues voy a cocinar
hemos cambiado
si tenemos comida dentro
lo hemos pasado a false
vale
pues si miramos
si tienes comida dentro
vas a cocinar
esto se divide
en tres partes
muy sencillas
una
la palabra clave if
que sería esta
para indicar
que la estructura
que queremos hacer
es una ramificación
luego
la condición
que la tendríamos aquí
la condición
siempre tiene que devolver
un booleano
puede ser true
puede ser false
si es true
va a evaluar
el código
que hemos envuelto
entre las llaves
y si es false
lo va a ignorar
así es como funcionan
las ramificaciones
o se va para un sitio
o se va para otro
esto sería una ramificación
de una sola rama
porque teníamos esta rama
que puede pasar
o no puede pasar
luego
¿qué más podríamos hacer?
obviamente
podríamos decir
vamos a decir
que tenemos comida dentro
vamos a volver a poner
que sí
que tenemos comida dentro
vamos a ponerlo a true
y vamos a refrescar esto
tenemos comida dentro
vale
pues ya hemos dicho
que si tenemos comida dentro
justamente lo que quiero
es cocinar
pero ¿qué pasa
si no tengo comida dentro?
me gustaría hacer
otra cosa diferente
por ejemplo
podría pitar
me gustaría pitar
pues en este caso
tenemos que utilizar
la palabra reservada
else
y con las llaves
le tendríamos que indicar
cuál es el código
que queremos que ejecute
en el caso
qué instrucciones
le queremos decir
a nuestra máquina
en el caso
de que no tengamos comida dentro
vale
pues vamos a decir
que si no tiene comida dentro
vamos a pitar
con un sonido
muy fuerte
vale
ahora cuando ejecutamos
esta estructura de control
vemos que vamos a cocinar
porque tenemos comida dentro
pero cuando no tengamos comida dentro
tenemos comida dentro
la pasamos a pulse
y esto lo copiamos
y lo pegamos
podemos ver
que ha cambiado totalmente
ahora se va por otra rama
y dice que tiene que pitar
con un sonido muy fuerte
así que
ya tenemos aquí
una ramificación
ahora
podemos tener
tantas ramificaciones
como queramos
obviamente
cuando estamos hablando
de boleanos
es una u otra
no tenemos muchas ramificaciones
pero imaginemos
que vamos a hablar
por ejemplo
de la lavadora
y la lavadora
podemos tener
diferentes niveles
de detergente
así que vamos a tener aquí
cantidad
de detergente
y vamos a poner aquí
detergente
vale
vamos a poner aquí
en cuánto
tenemos detergente
vamos a poner
mililitros
que tenemos 100
perfecto
ahora podríamos decirle
vale
si la cantidad
de detergente
es menor
a 10
vamos a decir
por ejemplo
que
detergente
insuficiente
vale
ahora
hemos visto
que con el else
podríamos poner aquí
también
que el detergente
es suficiente
pero imagínate
que quieres tener
más granularidad
un control más granular
sobre esta
en lugar de ser
o esto
o esto
me gustaría
o esto
o esto
o esto
o esto otro
pues para eso
en lugar del else
podemos utilizar
el else
if
podemos decirle
vale
si
tenemos esta cantidad
de detergente
o si
he puesto el si
imagínate
o si
la cantidad
de detergente
en lugar de ser
menor de 10
es menor de 20
vamos a poner
detergente
está casi casi
pero si
la cantidad
de detergente
es
pues yo que sé
ya está
podemos decir
detergente
es menor
de 25
vamos a poner
por ejemplo
te falta
una chispita
y si no
vamos a decir
todo
está
perfecto
y lo cerramos
aquí
le damos al enter
vale
como la cantidad
de detergente
es 100
al final
dice que todo
está perfecto
y ha entrado aquí
pero si
empezásemos a cambiar
el valor
que tiene la cantidad
de detergente
iremos viendo
que va entrando
en las diferentes
ramas
de nuestro
if
ahora
antes de continuar
justamente
ten cuidado
porque también
es interesante
aquí
que veamos
una cosita
y es la indentación
de código
la indentación
de código
es una cosa
que ocurre
en muchos
lenguajes de programación
si nosotros
escribiésemos
nuestro idioma
en una sola línea
tú cuando te comunicas
en castellano
tú lo pones
todo en una sola línea
sin puntos
ni comas
ni nada
y pam
ahí
¿a que no?
¿por qué?
porque la gente
no te leería
bueno
igual lo estás haciendo
en el
lo estás haciendo
en whatsapp
pero en whatsapp
al final
te tienen mucha confianza
y te quieren igual
pero normalmente
cuando escribimos
necesitamos
que haya algún tipo
de estructura
para que podamos entender
lo que estamos escribiendo
porque si no
cualquiera te entiende
bueno
pues esto
lo puedes conseguir
utilizando la indentación
¿y qué es esto
de la indentación
de código?
es una cosa
que muchas veces
puede ocurrir
incluso de forma automática
y aquí lo estamos viendo
que está pasando
de forma totalmente automática
pero el tema
es que
podemos
intentar el código
así
si
hacemos esta condición
fijaos que aquí
hemos dejado como
dos espacios
¿no?
cada vez
que estamos creando
un nivel más
de código
lo que hacemos
es intentarlo
¿por qué?
porque si lo pusiéramos
todo junto
lo pusiéramos aquí
todo junto
pam
y lo ponemos aquí
pam
o lo ponemos así
así no te vas a enterar
nunca de
qué es lo que está
haciendo el programa
la computadora
no se va a quejar
¿por qué?
porque la computadora
lo entiende todo
¿vale?
lo entiende todo
o sea
esta cosa
no le importa
que lo estés dejando así
lo estés dejando así
o sea
no pasa nada
no pasa nada
pero
lo que sí que está ocurriendo
con esto
es que
también estamos programando
para las personas
y esto es súper importante
aunque la programación
como hemos dicho
es para controlar
a las máquinas
en realidad
la programación
también lo hacemos
con personas
son personas humanas
las que programan
y es muy importante
que el código
que producimos
sea legible
y entendible
por cualquiera
no sólo
por la máquina
por la máquina
es súper importante
que funcione el programa
pero luego alguien
tendrá que mantener
el código
por ejemplo
si yo estos ejemplos
este curso
tal y como estoy haciendo
estuviese escribiendo
súper mal
esto se me estaría
escribiendo
a saco
de
de errores
de gente en el chat
que me diría
oye
no entiendo
lo que estás poniendo
no entiendo
lo que estás poniendo
si yo estos ejemplos
los pusiese así
seguro que en el chat
todo el mundo
me estaría diciendo
es que no entiendo
es que te odio
pero me voy
adiós
vale
es normal
es normal
así que es súper importante
que sepamos
cómo podemos
separar el código
de forma que sea
legible fácilmente
por ejemplo
aquí podemos leer fácilmente
si es esta condición
haz esto
si es esta
tal
vale
así que
súper importante
no olvides
intentar tu código
intentar tu código
es dar la separación
necesaria
para entender
cuál es el flujo
que sigue
el programa
que estás escribiendo
vale
vale
entonces
tenemos los if
que tenemos por aquí
vamos a limpiar
todo esto
voy a quitar
esta cosa de aquí
que si no me vais a odiar
ya tenemos los if
que es una estructura
de control
que como hemos visto
puede hacer ramificaciones
pero sabes una cosa
que las ramificaciones
están muy bien
pero a mí
lo que más me cuesta
en esta vida
son las tareas repetitivas
repetir cosas
y para eso
tenemos otro flujo de control
un flujo de control
básicamente es
cosas que pasan
en nuestro día a día
un flujo de control lineal
por ejemplo
es lo que pasa
cuando yo voy al trabajo
voy
me visto
pillo el coche
voy al trabajo
ya está
todo lineal
no ha pasado absolutamente nada
luego tenemos
un flujo de control
de ramificaciones
en el que podemos
ver cosas condicionales
por ejemplo
pues bueno
voy a ir al cine
vale
pero
si está esta peli
voy a esta
si está esta otra peli
voy a esta
y si voy con mi amigo
Álvaro
seguramente voy a ver
una de Marvel
así que ahí tengo
diferentes ramificaciones
dependiendo de alguna cosa
alguna cosa u otra
y luego
directamente
tengo el de bucle
por ejemplo
yo streameo aquí
de lunes a jueves
todos los días
a las 8 de la tarde
pues es una cosa
que hago un bucle
de lunes a jueves
lunes, martes, miércoles
y jueves
hago en bucle
un proceso repetitivo
o sea lo repito
lunes, martes, jueves y viernes
y esto de alguna forma
lo puedo enseñar
así que
¿cómo lo podríamos hacer esto?
pongamos que los días
de la semana
empiezan por cero
por ejemplo
vamos a poner
el día
que el día es cero
¿ok?
entonces
el cero sería
vamos a empezar
sí, vamos a empezar por cero
vamos a empezar por cero
tengo los días
cero
hoy no es lunes
pero imaginaos que es lunes
y los lunes
pues yo streameo
así que si es cero
si es uno
y si es tres
y si es cero
uno, dos
y tres
¿vale?
pues entonces voy a streamear
porque cero es el lunes
el martes
es el uno
miércoles es el dos
y el jueves
es el tres
así que esos días
voy a streamear
y el resto de días
no quiero streamear
¿cómo puedo repetir esto?
porque claro
podría decir
todo el rato
si es día cero
streameo
si hago tal
cero
no
lo que quiero es repetir
esto constantemente
pues voy a decir
while
while es una palabra
reservada
de algo que queremos hacer
mientras tenemos una condición
a true
la condición de nuevo
sería como el if
solo que en lugar de if
ponemos while
aquí pondríamos la condición
booleana
y la condición que vamos a decir
es que mientras el día
en el que estamos
sea menor a 4
voy a volver a repetir esto
y ¿qué es lo que quiero repetir?
lo que quiero repetir aquí
es que quiero hacer streaming
así que vamos a poner aquí
streaming
le vamos a poner aquí
así
pero ¿qué es lo que pasa?
si yo le doy aquí
¿qué es lo que va a ocurrir?
lo que va a ocurrir
es que la computadora
se me va a volver loca
porque va a decir
vale, vale
sí, sí
mientras el día
es menor a 4
yo
streaming
streaming
vale
pero ¿cuándo los días
pasan en esta vida?
¿cuándo los días
siguen
siguen sumando?
porque la computadora
no tiene idea de eso
le tenemos que decir
cuándo el día pasa
entonces yo después
de hacer el streaming
lo que digo
vale, pues el día
ya ha pasado
así que le digo
que el day
vamos a asignarle
un nuevo valor
le decimos
day más 1
vamos al siguiente día
una vez que hemos hecho
el streaming
vamos al siguiente día
¿por qué?
si yo no hiciese esto
si esto
yo no lo hiciese
esta línea de código
lo que ocurriría
básicamente
es que la computadora
entraría
en lo que se le llama
un bucle infinito
un bucle infinito
es básicamente
lo que le pasa a veces
a mi madre
cuando me echa bronca
que me lo dice una vez
me lo dice otra vez
¿sabes?
y yo aunque le digo
oye que lo he entendido
otra vez
otra vez
y eso es un bucle infinito
¿vale?
no sé si os pasa eso
pero a mí me pasa bastante
de mi madre
que me la quiero mucho
pero al final
el bucle infinito
digo ostras
madre mía
esto no termina nunca
¿y por qué hay un bucle infinito?
hay un bucle infinito
porque al final
la condición
la condición que hay aquí
siempre es true
como le estamos diciendo
que mientras esta condición
sea true
tienes que ejecutar
lo que hay dentro
pues le pasa como a mi madre
mi madre
mientras está enfadada
me está echando bronca
el problema es que
en ningún momento
se le pasa el enfado
entonces claro
pues no deja de echarme bronca
así en repeat
pa pa pa pa
así que lo que tenemos
que decirle aquí
en el while
nos tenemos que asegurar
siempre que utilizamos
un while
es que esta condición
tarde o temprano
tarde o temprano
pase a ser false
y para hacer eso
muchas veces
tenemos que cambiar
este day
lo tenemos que cambiar
de alguna forma
dentro
de las instrucciones
que le estamos dando
para que eventualmente
pase a false
porque si no estaría streameando
hasta el fin de mis días
y eso es lo que ocurriría
y eso es como hacemos
y evitamos un bucle infinito
lo evitamos
asegurándonos
que eventualmente
el day
al estar constantemente
sumándolo 1
en la primera iteración
el day
será 0
le sumaremos 1
y lo asignaremos aquí a day
en la siguiente iteración
el day
que pasa
será 1
así que 1 es menor que 4
sí
vale
pues vuelves a hacer streaming
y el día
vas a ser el 2
y así al siguiente
y así al siguiente
hasta que llegue un momento
que el day
sea 4
y cuando ya sea 4
el 4 es menor que 4
no lo es
por lo tanto
no haces streaming
y tampoco
voy a volver a ejecutar esto
saldrá
y seguirá ejecutando
lo demás
vale
lo vamos a ejecutar
vale
y podemos ver
que me ha puesto un 4
¿por qué me ha puesto un 4 aquí?
esto es un poco raro
¿no?
porque diría
ostras
¿qué ha pasado aquí?
me ha puesto un 4
pero ¿por qué te devuelvo un 4?
lo que está pasando
es que
en realidad lo último
que está expresando este while
lo tenemos aquí
en este day
day más 1
y por lo tanto
lo que me ha devuelto la máquina
es la expresión que teníamos aquí
el day al final
ha llegado a ser 4
esto es lo último
que ha evaluado
y me ha devuelto
el valor numérico
que tenía day
que es el 4
no me ha dicho
que estoy haciendo el streaming
no me ha dicho absolutamente nada
tenemos una forma
en la que podemos
utilizar la consola
para mostrar información
imaginad que quiero ver
cuántas veces
estoy haciendo stream
porque me gustaría verlo
porque claro
estoy aquí
y al final
digo vale
el day el 4
pero no he visto
cuántas veces has hecho stream
tendríamos diferentes formas
y aquí te dejo
un ejercicio
que es bastante interesante
un ejercicio
podría ser
por ejemplo
poner
streams
¿no?
vamos a poner streams
y voy a hacer
que es una cadena de texto
y lo que voy a hacer
es que vale
pues vamos a poner
otra vez
que el day
lo vamos a resetear
al 0
y vamos a hacer esto
pero lo que voy a hacer
en el while
voy a hacer que
streams
sea igual
a la asignación
de streams
más streaming
¿vale?
y lo vamos a hacer
con una separación
para que quede mejor
así que lo que vamos a hacer
es que vale
voy a sumarle a streams
le voy a concatenar
en cada iteración
la palabra streaming
de forma que deberíamos ver
cuántas veces
voy a streamear
¿vale?
ok
vamos a hacer el while
vale
me vuelvo a poner 4
pero al menos
en el streams
yo ahora he guardado
en algún sitio
he podido guardar
a ver voy a limpiar
es que si lo limpio
ahora
si pongo aquí
streams
y le doy al enter
aquí podemos ver
que he hecho 4 streams
streaming
streaming
streaming
streaming
lo he concatenado
4 veces
el día del lunes
el martes
el miércoles
y el jueves
¿vale?
y lo he hecho aquí
así que ahora ya tengo aquí
cuántos streams he hecho
los 4 streamings
el día
ya hemos visto
que me lo ha dejado
en el 4
lo podemos ver aquí
day 4
y todos mis streams
¿vale?
hay otra forma
obviamente
en el que podríamos
hacer esto
sin necesidad
de liarnos
a hacer
a guardar
en una variable
cuántos streams
hemos hecho
y todo esto
por suerte
la consola
te permite
enviar la información
y esto
es la primera función
que vas a conocer
al final
cuando trabajamos
con máquinas
es totalmente normal
que de una forma
u otra
podamos
utilizar funciones
por ejemplo
no tendría sentido
ir al microondas
te le quedas
los programas
poniéndole números
y tal
y al final
no le das a ningún botón
¿sabes?
no tendría ningún tipo
de funcionalidad
y necesitamos
de alguna forma
crear funciones
programas
conjuntos
de instrucciones
que le podamos
que podamos ejecutar
que podamos
hacer alguna cosa
para poder llevar
nuestra información
a algún sitio
si no
imagínate
tú estás ahí
en microondas
lo calculas
ya está
y no le das
a ningún botón
sino que se queda ahí
bueno
mi trabajo
aquí ha terminado
pam
no
obviamente
muchas veces
queremos que tengan
algún tipo de función
la tele tiene una función
cambiar de canal
encender y apagar
tiene un montón de funciones
la lavadora
también todo
todo tiene funciones
y obviamente también
cualquier máquina
tiene una función
así que
todos son funciones
en el caso
de los lenguajes de programación
como por ejemplo
javascript
hay un montón de funciones
que ya están disponibles
para que puedas
interactuar con la máquina
puedes crear tus propias funciones
conjuntos de instrucciones
para que
los puedas reutilizar
o puedes utilizar algunos
que ya están creados
así que ahora
vamos a crear
vamos a utilizar uno
que ya está creado
para que lo utilices
y que te va a ayudar
un montón en tu
aprendizaje
a la hora de ver
qué valores tienes
y qué estás haciendo con ellos
así que
vámonos aquí al código
y en el while
en lugar de streams
y hacer esto
lo que vamos a hacer es
primero
vamos a resetear el día
y lo vamos a pasar a cero
y aquí
vamos a utilizar
una función
que nos permite
comunicarnos con la máquina
y decirle
oye
quiero que este valor
me lo muestres
en consola
eso es lo que quiere decir
así que le damos
console.log
y aquí lo que vamos a poner
es lo que queremos
que muestre la consola
vamos a decirle
que nos muestre
el string
la cadena de texto
streaming
con esto lo que va a hacer
es que como esto
se va a ejecutar
cuatro veces
deberíamos ver
en la consola
cuatro veces
streaming
así que vamos a ejecutarlo
estamos aquí
reiniciando el día
para que vuelva a ser lunes
y estamos aquí
que haga
mientras esta conducción
se cumpla
mientras el día
sea menor que cuatro
que ejecute
el console.log
del streaming
y vaya incrementando
el día en el que estamos
así que lo ejecutamos
vale
y aquí podemos ver
que nos pone un cuatro
así bien grande
por si estamos ciegatos
y nos dice
que ha ejecutado
cuatro veces
streaming
o sea cuatro
no que ha ejecutado
cuatro veces
streaming
sino que cuatro veces
ha mostrado
en la consola
en el output
tenía streaming
y es porque
esta instrucción
de aquí
lo que le hemos dicho
que tiene que repetir
cuatro veces
lo ha repetido
cuatro veces
en cada iteración
ha hecho console.log
console.log
console.log
y console.log
así que ahí lo tenemos
vale
aquí tendríamos
cuatro veces
ha sacado el streaming
el console.log
lo vais a ver
o sea el console.log
lo vais a utilizar
hasta el fin de los días
no importa
lo experto que seas
siempre el console.log
te va a acompañar
así que este
que es el primer
el primer método
de console
la primera función
que has conocido
esta función
te va a acompañar
hasta el fin de tus días
especialmente
si por lo que sea
continúas con
con javascript
y no te aburres
vale
así que es bastante
interesante
que te quede claro
console.log
obviamente puedes utilizar
el console.log
en cualquier sitio
y aquí lo que le pasas
es uno de los datos
que hemos visto
por ejemplo
un número
y aquí veríamos
que nos está devolviendo
que está haciendo
un console.log
de dos
fíjate una cosa
muy importante
hemos hablado antes
de declaraciones
y expresiones
las expresiones
eran lo que devolvía algo
por ejemplo
esto es una expresión
cuando estamos poniendo
de
es una expresión
y la computadora
nos dice cuatro
en cambio
hemos visto que también
tenemos declaraciones
y en este caso
el console.log
es una declaración
esta parte
sería una declaración
y esta parte de aquí
solo el dos
sería una expresión
y por eso
nos está pasando esto
nosotros le hemos enviado
el console.log
y al final
sí que ha hecho
lo que queríamos
console.log
el dos
lo ha puesto
en la consola
pero fíjate
que como es una declaración
la computadora
nos ha devuelto
undefined
esto es súper importante
que lo tengas clarísimo
porque cuando estás aprendiendo
muchas veces dirás
pero ¿por qué no me está devolviendo nada?
¿por qué no sé qué?
porque tienes que tener en cuenta eso
declaraciones
y expresiones
que son dos cosas
diferentes
¿vale?
muy bien
perfecto
hasta aquí todo bien
estamos bien
¿por qué aparece Andefani
cuando declaramos?
me perdí esa parte
¿vale?
eso es bastante sencillo
está alineado
con lo que decíamos antes
¿vale?
o sea
ostras
Madeval
SpaceX
muchas gracias
por regalar 10 subs
cada uno
joder
muchas muchas gracias
me he perdido el tema
de las suscripciones
no he estado muy
muy atento
pero joder
muchas muchas gracias
muchas gracias
por las 20 subs
que maravilla
oye muchas gracias
te lo agradezco un montón
lo agradezco un montón
vale
alguien pregunta
oye
¿por qué cuando estás
declarando una variable
por ejemplo
aquí la frase de
this is fine
¿vale?
¿por qué devuelve Andefine?
esto es súper importante
esto es porque
esto es una declaración
estamos declarando
estamos declarando
le estamos dando a la computadora
una instrucción
y por lo tanto
esto no devuelve ningún valor
cuando declaramos
una variable
no estamos
es que ya lo dice
declarar una variable
es una declaración
las declaraciones
no devuelven un valor
por lo tanto
por ejemplo
esto no se podría guardar
toda esta frase
no se podría guardar
en una variable
porque no devuelve nada
en cambio
el this is fine
es una expresión
porque devuelve
el string
this is fine
y esa es la diferencia
entre declaración
y expresión
Midu
pero decir que una variable
sea constante
no es una contradicción
porque la variable varía
bueno
es verdad que puede ser
una contradicción
pero
se puede entender
es que al final
es algo más
a ver
en lugar de
variable
que al final
es verdad que puede ser
un poco raro
a veces se le puede llamar
como
como se llamaba esto
ah no me acuerdo
como se llamaba
expresión
a ver
se le llama
vinculación
vinculación
se le puede llamar
vinculación
donde estás vinculando
un espacio de memoria
a un valor
eso sería
a lo mejor
lo más correcto
en lugar de llamarle
variable
una vinculación
constante
y una vinculación
que sea variable
lo que pasa es que
de forma más
popular
siempre se le llaman
variables
vale
pero muchas veces
tiene más sentido
justamente
llamarle variable
pero sería
una vinculación
una vinculación
constante
o una vinculación
que sería
variable
vale
porque esto
varía
ahí lo tendríamos
asignación
de valor
a un espacio
de memoria
es un poco
largo
pero
pero sí
vamos a llamarle
vinculación
corta
vale
detalles como
el camel case
nombres válidos
para declarar variables
va hoy
o no quieres liar al personal
no hombre
no quiero liar al personal
al final
vale
aparte de
const
y let
también está var
sí
también hay una tercera forma
de crear asignaciones
en espacios de memoria
que se llama var
de variable
que es este
vale
var
número
bueno var
num
igual 10
pero esta forma
no hace falta
ni que la aprendáis
vale
no hace falta
ni que la aprendáis
porque realmente
no tiene ningún tipo
de sentido
a día de hoy
utilizarla
por lo tanto
yo creo que
explicar var
tiene más problemas
que otra cosa
porque
os podéis liar
especialmente si estás aprendiendo
más adelante
en otra
en otro punto del curso
sí que hablaremos de var
para que entendáis
el alcance
que tienen las variables
vale
pero más
más allá de esto
más allá de que lo podáis ver
y que se comporta de forma
parecida a led
yo os recomiendo
que lo ignoréis
vale
al menos
para empezar a aprender
y más adelante
sí que lo hablaremos
cuando hablaremos
del scope
y todo esto
del alcance
de las variables
ahora
la forma más sencilla
de esto
es olvidarse
de var
vale
vale
vamos a seguir
porque os he comentado
el del while
pero
para hacer
flujos de control
o sea
hacer un flujo
que también sea un bucle
existe otra forma
de hacerlo
no solo con el while
de hecho
existen un montón
de formas
no las voy a explicar
todas
voy a explicar
las dos más importantes
que tienes que tener
en tu cabeza
y que más adelante
te permitirán
desbloquear
todas las que hay disponibles
teníamos el while
para hacer un bucle
pero claro
el while
el problema que tiene
si volvemos a mirarlo
un poco
es que
fijémonos
en este
en este while
tenemos
por un lado
esto aquí tendríamos
que estamos
inicializando
la variable
day
con el valor 0
tenemos el while
tenemos aquí
la condición
y además
tenemos aquí
el incremento
de la variable
así que tendríamos
como separado
en tres puntos
distintos
algo que estaría bien
que estuviese
en un solo sitio
para evitar problemas
porque ya hemos visto
lo fácil que sería
que se me olvide esto
y ya tenemos
un grupo infinito
y la liamos
pardísima
así que para evitar esto
hay otro tipo
de estructura
que nos permite
hacer un bucle
pero donde podemos
crear un grupo
donde tenemos
tanto la inicialización
la condición
y el incremento
o modificación
de esta variable
para eso
utilizamos
el for
es un patrón
perdón
es un patrón
muy común
en general
en los lenguajes
de programación
muy similar
porque es una parte
muy básica
de cualquier lenguaje
de programación
tendríamos el for
pero aquí
entre los paréntesis
en lugar de tener
justamente
la condición
lo que tenemos aquí
en realidad
son muchas más cosas
tenemos por un lado
la inicialización
de la variable
por ejemplo
la de day
por otro lado
tendríamos
la condición
que la de day
sea menor a 4
y por otro lado
tendríamos
el incremento
así que en este caso
sería day
igual a day
más 1
por ejemplo
esto sería
para hacer
lo mismo
que hemos hecho
con el while
antes
pero hacerlo
con un for
estamos como agrupando
en un solo sitio
y le estamos diciendo
para el día
que empieza en 0
mientras
el día sea menor a 4
y
en cada iteración
vamos a hacer
que el día
se incremente en 1
y que es lo que
hacemos mientras
pues hacemos
utilizamos otra vez
el console.log
para mostrar
la información
en la consola
y le decimos
que hacemos streaming
y esto es lo mismo
que estábamos haciendo antes
y aquí podemos ver
que hay 4 streamings
4 streamings
que tenemos aquí
¿por qué?
porque ha llegado
al día 4
y el día 4
ya ha parado
esto sería lo mismo
que hemos hecho
con el while
pero con otra estructura
ahora
os voy a enseñar
una forma
voy a quitar
esto
porque me tiene
aquí
porque es que está siguiendo
un montón de gente
vale
entonces
¿cuándo es mejor usar
for y cuando while?
en realidad
normalmente
normalmente
vais a querer utilizar
el for
normalmente
pero al final
la que veáis
más clara
¿por qué el for?
porque os va a quedar aquí
más agrupado
y no vais a tener
ningún tipo de problema
pero
no pasa absolutamente
nada
si utilizáis el while
si lo veis más claro
sobre todo para empezar
ahora bien
aquí en el for
hay otras
se utiliza
una técnica
que es muy típica
y que
tiene que ver
con el incremento
de los valores
y lo vamos a ver ahora
porque esto
es muy típico
por ejemplo
es muy típico
cuando
no sé si habéis ido
alguna vez
a un concierto
a un partido de fútbol
de estos
en los que
cuando tú pasas
alguien
hace así
clic clic
clic clic
y va incrementando
en uno
el número de gente
que ha pasado delante
¿sabes?
es básicamente
para saber cuánta gente
ha ido
o por ejemplo
cuando yo voy
al metro
de mi ciudad
también
en los tornos
va contando
cuánta gente
ha pasado
va incrementando
en uno
cada vez que pasa
una persona
incrementa en uno
y también
camino a la playa
cuando voy en bici
pues cuando pasas
por un sitio
te dicen
hoy ha empasado
y pone 300 bicis
y pasas tú
y pones 301
302
303
¿vale?
vamos incrementando
en uno
¿no?
esto es súper típico
así que
como podemos ver
como hay casos reales
en nuestro mundo
que tenemos que hacer
obviamente
también tenemos que tener
una forma fácil
de hacerlo
en nuestros programas
¿cómo lo podemos hacer?
imaginemos que tenemos
un número
y le vamos a poner
que tenemos
o mira
personas
personas
en bici
¿vale?
y vamos a poner
que tenemos 10
imagínate que
vale
pues pasa una persona
bueno
pues ponemos
personas en bici
y le asignamos
personas en bici
más uno
uff
no está mal
¿eh?
venga
ha pasado otra persona
venga
otra persona
¿cuál es el problema
de esto?
el problema de esto
es que es demasiado
verboso
es demasiado rápido
o sea
es demasiado rápido
no
es demasiado lento
tienes que poner
la variable
la reasignación
y aquí lo que tienes que decir
es volver a recuperar
el valor que tenías
y sumarle uno
esto obviamente
no parece que sea muy cómodo
porque cada vez
que lo tengas que hacer
tienes que escribir
demasiado código
obviamente
cuando creamos
los lenguajes de programación
lo que buscamos
es simplificar la vida
para que podamos comunicarnos
bien con las computadoras
así que
lo que podemos hacer
en lugar de
incrementar manualmente
como estamos haciendo aquí
podemos utilizar
otra forma
de incrementar
la variable
hacemos
personas
en bici
y le ponemos
más más
¿vale?
más más
y esto lo que hace
automáticamente es
la reasignación
incrementando en uno
así que
si ahora hago
el más más
al final de la variable
podemos ver
que se queda
en 14
¿cómo?
¿cómo que se queda en 14?
¿qué ha pasado aquí?
o sea que si yo ahora miro
en personas en bici
es 14
no, no
pero me dice que es 15
¿qué ha pasado?
madre mía
¿me he equivocado?
no me he equivocado
¿qué es lo que pasa?
lo que está pasando aquí
lo que ha pasado aquí
es que sí que ha hecho
el trabajo que le hemos dicho
lo ha incrementado en uno
pero que tenemos que tener cuidado
porque como podemos ver
personas en bici
está antes
que el más más
por lo tanto
lo que pasa aquí
es que
es una expresión
y lo que devuelve
es el valor que tenía
justo antes
de que la computadora
le incremente
un valor
o sea
ha actualizado la variable
lo ha incrementado en uno
pero el valor
que ha devuelto
en esta expresión
es el valor
que tenía antes
así que tenemos que tener
cuidado con esto
aquí tienes diferentes opciones
a veces esto
tiene sentido
que ocurra así
y no hay ningún problema
a veces puedes ignorar
lo que devuelve
pero hay otras veces
que tienes que tener cuidado
con esto
y lo que puedes hacer
si te interesa
es poner el más más
antes
puedes hacer personas en bici
y lo puedes poner
justamente antes
de esta forma
lo que va a ocurrir
es que
este incremento
va a ocurrir antes
y lo que va a devolver
es ya
el valor actualizado
va a devolver
el que viene justo después
no como hemos hecho antes
que como podemos ver
me ha devuelto el anterior
y lo ha actualizado
así que esto es bastante
importante
que lo tengáis claro
¿vale?
podéis incrementar
ya sea como sufijo
esto se le llamaría
incremento como sufijo
que entonces ocurre
después
de que te devuelva el valor
te ocurre después
o lo puedes poner
como prefijo
que ocurre antes
y de esta forma
lo que te devuelve
la expresión
es justamente
el valor que va a tener
ya actualizado
serán las dos formas
de tenerlo
esto mismo
lo podéis hacer
al revés
¿vale?
lo podéis hacer
con el menos menos
y lo que va a hacer
es ir decrementando
¿vale?
lo podéis hacer
ir decrementando
y obviamente
también lo podéis poner
delante
para que tengáis
el valor ya actualizado
podéis hacer
cualquiera de las dos cosas
al final
lo importante
es que veáis
que esto es exactamente
lo mismo que esto
solo que si lo ponéis aquí
pues os lo devuelve
ya actualizado
si lo ponéis aquí
os lo devuelve
con el valor
que tenía antes
aunque sí que lo está
actualizando
¿vale?
¿por qué te estoy contando
todo esto?
¿por qué es importante esto?
porque en el for
que hemos visto antes
en este for
una forma muy
muy interesante
de arreglar esto
en lugar de poner
el day
que le asignamos
el day más uno
lo que podemos poner aquí
es decirle
day más más
así
hacemos un incremento
en uno
y esto es muy típico
para cualquier contador
que necesitemos
siempre
a ver siempre no
casi siempre
los loops
se suelen incrementar
en uno
por lo tanto
aquí hacemos
un day más más
y decimos
vale
los días van de uno en uno
en cada iteración
en la que voy a streamear
voy a siguiente día
y ya está
así
lo tenemos exactamente aquí
¿vale?
¿lo habéis entendido?
los incrementos
vale
vamos a hablar
de dos cosas
que son súper importantes
también sobre la sintaxis
de javascript
por un lado
tenemos que hablar
de los comentarios
¿por qué?
porque todo lo que estoy haciendo
está muy bien
pero de alguna forma
hay veces
como te he explicado
que no trabajamos
solo con máquinas
a ver
las máquinas sí
están muy bien
es importante
y le decimos
lo que tienen que hacer
y todo esto
pero resulta
que muchas veces
trabajamos con gente
y tenemos que explicar
lo que hacemos
imaginaos
que por lo que sea
quiero comentar
algo en el código
pues esto lo podemos hacer
y nos lo permiten
de diferentes formas
una es poniendo
dos barras
de esta forma
y aquí tú puedes escribir
lo que tú quieras
y cuando le das enter
este código de aquí
no lo evalúa
simplemente lo ignora
¿qué pasa?
que puedes hacer
que conviva
este código
con por ejemplo
una variable
podemos poner
una variable así
los comentarios
son interesantes
muchas veces
para dar algo
de contexto
de lo que estás haciendo
en tu código
porque si no
hay veces que la gente
se puede volver un poco loca
por ejemplo
si quieres decir
esta variable
es necesaria
para poder contar
la gente
que va en bici
a la playa
¿vale?
y tenemos aquí
let
bicis
cero
¿vale?
ahora tenemos bicis
tenemos cero
y al menos
justo encima del let
tenemos un comentario
que nos está diciendo
para qué funciona
esa variable
no hace falta
como buena práctica
y como consejo
que os doy
no hace falta
que comentéis
todo el código
es mejor
que vuestras variables
los nombres
las etiquetas
que le estáis dando
a estas asignaciones
sean fáciles de leer
¿vale?
en lugar de
intentar hacer esto
por ejemplo
en lugar de poner
personas en bici
personas en bici
y hacer
let a cero
lo que tienes que hacer
normalmente
es evitar los comentarios
siempre que puedas
y poner
personas
en bici
igual a cero
es mucho más fácil
que alguien
pueda leer esto
que pueda leer esto
¿por qué?
porque los comentarios
al final
pueden equivocarse
pueden mentirte
los comentarios
como no se evalúan
como nadie
de forma automática
como la máquina
no va a mirar
voy a ver si este comentario
me dice la verdad
no tiene ni idea
¿vale?
entonces los comentarios
los tenemos que cuidar nosotros
y es mucho
mucho
mucho más complicado
mantener comentarios
que no estamos revisando
si funciona
o no deja de funcionar
que el código
así que siempre el código
tiene que ser la fuente
de la verdad
el código
es lo más importante
que sea elegible
entendible
mantenible
que cualquiera lo pueda leer
así que
los buenos nombres de variables
mejor en el código
a la variable
los comentarios
solo para casos excepcionales
que no te deje comentar
la variable
o sea
si al final
te has quedado con ganas
de comentar
el contexto
de por qué necesitas
esa variable
pues puede ser interesante
pero no lo comentes todo
e intenta siempre
que sea el código
el que habla por ti
¿vale?
muy bien
aparte de esto
una cosa que también
es bastante importante
es que a veces necesitamos
código
o comentarios
que sean de más de una línea
por ejemplo
en lugar
si tenemos esta
esta variable
es
necesaria
para
seguir
programando
¿veis?
podemos ver
que se está haciendo
un poco lío
estos comentarios
y estamos
repitiendo
barras
¿vale?
se están repitiendo
las barras
constantemente
existe una forma
de hacer
comentario
en multilínea
y eso sería
con la barra
y el asterisco
y ahora
este comentario
tú puedes seguir
aquí
es
no sé si esto va
ahora
es multilínea
lo abres
¡ay!
la he liado
ahora
lo abres
con la barra
y el asterisco
pones el comentario
multilínea
tan largo
tan largo
como quieras
y cuando quieras
cuando quieras
cerrar el comentario
pones asterisco
y la barra
¿vale?
este sería el otro tipo
de comentario
comentarios de una sola línea
comentarios de multilínea
aquí lo tendrías
¿vale?
esos serían los dos tipos
de comentarios
y luego
aparte de los comentarios
¿ha quedado hasta aquí bien?
ah
para una
es verdad
no os he explicado esto
para una nueva línea
es verdad
para hacer una nueva línea
para hacer una nueva línea
cuando estáis escribiendo
por ejemplo aquí
que he escribido
he escribido
anda aquí
he escrito
he escrito
más de una línea
lo que utilizo
es el command
más return
¿vale?
en mi caso es command
más return
en Windows
creo que es control return
¿vale?
es un atajo
para hacer un salto de línea
sin que haga el return
directamente
¿por qué?
porque si le doy al return
hace esto de undefined
entonces
he escrito
y le dais al comando
enter
ah no
comando enter
no
mayúscula
he puesto comando enter
no
mayúscula enter
¿vale?
mayúscula enter
perdón
el enter
mayúscula enter
y ya está
mayúscula enter
no se puede ser perfecto
sí, sí, tenés razón
shift
para la gente que le hago
que era en inglés
he aprendido más con mi PDF
en unas horas
que en todo el resto
bueno, muchas gracias
gracias
vale
ya tenemos lo de los comentarios
ya tenemos lo de los bucles
vale
es que no me quiero meter
con las funciones
porque si la meto
va, venga, sí
vamos a meternos con las funciones
vale
vamos con las funciones
que es lo siguiente
que nos toca
las funciones
vale
ahora
la verdad es que
os quería
os quería mandar deberes
os quería mandar deberes
por ejemplo
con todo lo que sabemos ahora
podríamos hacer un montón de cosas
podría pediros
por ejemplo
que hagáis una
una función
que dibuje
algo así
gracias a todo lo que hemos visto
el console.log
y todo esto
podríamos hacer una función
o sea
una función no
podríamos crear
unas instrucciones
que crease
una cosa así
entonces
os dejo este ejercicio
para que lo hagáis
y que lo tengáis de tarea
de deberes
vale
como podríais hacer esto
básicamente
que en la consola
veáis esto
para esto
vais a necesitar
por ejemplo
el console.log
que hemos visto
tendríais que utilizar
los bucles
podríais utilizar variables
también
lo vais a tener que utilizar
podríais utilizar el for
el while
las diferentes cosas
o lo podríais hacer a mano
si alguien quiere
podría hacer console.log
así ¿no?
alguien lo podría hacer a mano
pero claro
esto puede ser bien
si os digo
vale
pues quiero que lo hagas
tres veces
vale muy bien
lo has hecho tres veces
pero si te digo
que lo tienes que hacer
mil veces
bueno pues entonces
ahí sí que sería
un poco más complicado
¿verdad?
pues
esto es un buen ejercicio
para que practiquéis
lo que habéis aprendido
¿vale?
que haya que dibujarlo
mil veces
por ejemplo
mil veces
¿ok?
vale
ahora
de todo lo que hemos visto
de todas las cosas
que hemos visto
hemos visto flujos
de estructura de control
el if
el bucle
y todo esto
hay una que es muy importante
y es el tema
de las funciones
las funciones
hemos visto el console.log
¿no?
el console.log
es una función
que ya tiene
integrada
en este caso
es de la web API
¿no?
que
o sea
es una API
o sea
es un método
que ya nos está proporcionando
dentro del lenguaje
ya el lenguaje
tiene este método
para que lo podamos utilizar
sin ningún tipo de problema
y ya tiene una funcionalidad
sin nada
cuando tú utilizas esto
pues resulta
que lo que está haciendo
es mostrar
en la consola
lo que le estamos pasando
vale
pues resulta
que nosotros también
podemos crear funciones
para reutilizar el código
porque
esto de tener que sumar
por ejemplo
si queremos multiplicar
dos números
el 2
si lo queremos multiplicar
por 2
¿qué pasa?
que siempre que quiera multiplicar
el 2 por 2
tengo que hacer esto
obviamente
no quiero
estar repitiendo
constantemente
lo que quiero hacer
porque si no
¿cuál es el tema?
que mi código
sería repetitivo
constantemente
así que lo que queremos
es construir
unos bloques
como si fuesen
de Lego
fundamentales
para poder reutilizar
el mismo procedimiento
en diferentes sitios
que esa
esa colección
de instrucciones
que le estamos diciendo
a la máquina
lo podamos hacer
de forma que
esa tarea
o ese cálculo
lo podamos utilizar
una y otra vez
sin importar las veces
y incluso
si queremos
parametrizarlo
que también es una cosa
que vamos a querer
porque no tendría sentido
que en el microondas
solo le pudiéramos dar
un botón
y no le pudiéramos pasar
ningún tipo de parámetro
ni el tiempo
ni la potencia
ni nada
así que
lo que queremos
de alguna forma
es conseguir
conjunto de instrucciones
reutilizables
que sean
parametrizables
y que por supuesto
tengan una salida
para que podamos
recuperar esa salida
y ver
qué hacemos con eso
¿vale?
así que vamos a ver
cómo hacemos esto
¿vale?
imaginemos
que tenemos esto
de
por ejemplo
tenemos
que cada vez
que yo toco el peluche
¿vale?
cada vez que toco el peluche
resulta que
me descuento
100 euros
por decir algo
así que
tenemos aquí
las finanzas
tengo 500
es un peluche
bastante caro
ya veis
100 euros
solo por tocarlo
pues ya veréis
¿no?
pues decimos
venga
pues finanzas
igual
finanzas
menos 100
cada vez que toco el peluche
pam
chingling
400
ya estoy bastante
así se empieza
sí
toca el peluche
me va a salir caro
me va a salir caro
el peluche
¿vale?
¿qué pasa?
que claro
esto que tenemos aquí
es un poco rollo
¿no?
es un poco rollo
el hecho de que lo tenemos
que repetir
constantemente
cada vez que toque el peluche
cada vez que toque el peluche
tengo que hacer esto
¿no?
vale
me gustaría
decirle a la máquina
mira
tengo una instrucción
que es tocar el peluche
y cada vez que lo toco
tiene que ocurrir algo
así que
te voy a crear
este conjunto de instrucciones
le vamos a llamar
function
con esta palabra reservada
vamos a ponerle
un nombre
una etiqueta
así que la función
le vamos a decir
tocar peluche
¿ok?
le vamos a decir
tocar peluche
y ahora abrimos paréntesis
y lo cerramos
esto
además de identificar
que tenemos aquí la función
que esto va a ser una función
lo que está indicando
es que aquí
le podríamos pasar información
cada vez que tocamos el peluche
pero ahora mismo
no le vamos a pasar
ningún tipo de información
vamos a poner unas llaves
como podéis ver
como hemos visto ya
con el if
con el while
con el for
y ahora con la función
las llaves
es algo básico
de la sintaxis
del lenguaje de programación
de javascript
y muchas veces
lo que hace
es como
dejar un ámbito
de ejecución
está como
separando el código
la llave
lo que hace
es separar
en diferentes ámbitos
tu código
en este caso
lo que vamos a poner dentro
es lo que va a determinar
el conjunto de instrucciones
de la función
en este caso
ahora
que tenemos que hacer
cada vez que tocamos el peluche
pues vamos a decir
que las finanzas
le vamos a volver a asignar
finanzas
menos 100
y de esta forma
en lugar de estar hablando
constantemente
de tocar el
de hacerlo manualmente
con esta función
le damos al enter
y fíjate que pone aquí
undefined
si pone aquí undefined
¿qué quiere decir?
que silencio
no dice nada
quiere decir
que esto es una
declaración
hemos
declarado
que hemos creado
una función
¿vale?
estamos declarando
la función
ya veréis que después
podemos crear
funciones
a través de expresiones
hay dos formas diferentes
de crear funciones
como declaración
como hemos hecho ahora
estamos declarando
una función
o lo podemos hacer
como una expresión
que lo veremos después
y veréis la diferencia
así que esto es
la declaración
de una función
por eso
la computadora
nos ha dicho
undefined
ok
está bien
perfecto
entonces aquí
función
tocar peluche
y aquí hace esto
¿qué tenemos que hacer ahora
para utilizar esta instrucción
para decirle
vale que voy a tocar el peluche
venga voy a tocar el peluche
ahí no lo veis
peluche
venga tocado el peluche
vale tocar peluche
pues tocar peluche
y le tenemos que decir
que lo queremos ejecutar
así que le tenemos
tenemos que volver a poner aquí
los paréntesis
los mismos paréntesis
que teníamos antes
los tenemos aquí
esto es lo que nos diferenciaría
básicamente
entre una variable normal
y lo que sería
una función
para indicar
que queremos
ejecutar
esa función
ese conjunto
de instrucciones
tenemos que poner
el paréntesis
vale
eso es lo que nos determina
que estamos ejecutando
la función
si no le pusiéramos
los paréntesis
veríamos que lo que está haciendo
es devolvernos
el valor
nos está devolviendo
el valor
nos dice
vale tocar peluche
es una función
ay perdón
es una función
que hace esto
vale
pero yo no quiero esto
yo lo que quiero es
tocar el peluche
de verdad
no quiero que me digas
la función
quiero tocar el peluche
así que vamos a tocar el peluche
vale
y nos dice que es
undefined
vale
es undefined
¿por qué?
porque realmente
cuando toco el peluche
este conjunto de instrucciones
hace cosas
pero no está diciendo
qué es lo que tiene que devolver
no está dándonos un resultado
por ejemplo
si imagínate que cuando pusieras la lavadora
limpiase
limpiase toda la ropa
pero cuando abres la lavadora
resulta que no hay nada
ya desaparecido
porque dices
no es que la lavadora
no me tenía que devolver
el output
de la función que hemos hecho
pues obviamente
habrá limpiado la ropa
pero la ropa ya no está
entonces
por eso
al tocar el peluche
nos ha dado undefined
pero si miramos las finanzas
vamos a ver
que es 300
o sea que sí que ha ejecutado
el código que tenemos dentro
para asegurarnos
que el código
que tenemos dentro
sí que se ejecuta
una cosa que podríamos hacer
vamos a limpiar esto
a ver
vamos a poner esto otra vez
vamos a poner otra vez
las finanzas
voy a poner más dinero
porque
si quiero tocar mucho el peluche
una cosa que podríamos hacer
por un lado
es poner un console log
de esta forma
tenemos el console log
y vamos a poner tocar peluche
tocar peluche
así cada vez que se ejecute
lo de tocar peluche
voy a saber que se está ejecutando
y luego
vamos a ejecutar aquí
el tocar el peluche
le damos al enter
vale
tenemos tocar peluche
o sea que es lo que había aquí
dentro del console log
y si miramos las finanzas
900
para que quede más claro
en lugar del console log
que he puesto así
vamos a poner un
una flechita
vale
para que se diferencie
un poco del propio nombre
voy a poner
tocar el peluche
cuesta 100 euros
vamos a poner esto
vale
para que se note claramente
así que
vamos a limpiar esto
ejecutamos
ves
tocar el peluche
cuesta 100 euros
vale
ahora ya sé
que se está ejecutando
pero todavía
no
no
no soy capaz
de saber
vale
si me has quitado 100 euros
pero perdona
cuánto me quedaba
como cuando vas al banco
y luego quieres saber
cuando has sacado el dinero
quieres saber cuánto dinero
te queda
me gustaría que esta función
aparte de tocar el peluche
me diga cuánto dinero
es el que me queda
en las finanzas
así que vamos a cambiar
esta función
esta función
lo que vamos a hacer ahora
es que vale
va a volver a quitarle
los 100 euros
pero vamos a devolver algo
necesitamos decirle
vale
pues tienes que hacer un retón
esta función
va a devolver un valor
y con la palabra clave
retón
le vamos a decir
que lo que te queda devolver
pues tiene que devolver
las finanzas
aquí podríamos devolver
lo que queramos
podríamos decirle
que tocar peluche
puede ser true
¿por qué?
porque queremos decir
vale
cuando toco el peluche
quiero saber que lo he tocado
vale
pues un retón true
me podría decir
que he tocado al peluche
o podría devolver las finanzas
¿por qué?
porque quiero saber
que una vez que toco el peluche
quiero saber cuánto dinero me queda
o podría decir
bueno
pues quiero saber
cuánto me ha costado
me ha costado 100 euros
tocar el peluche
esto depende un poco
de la necesidad que tengas
cada función
cada método
puede devolver
diferentes tipos de datos
porque tienen necesidades distintas
en este caso queremos justamente
devolver las finanzas
porque creo que tiene más sentido
así que vamos a devolver las finanzas
¿vale?
ahora
tocamos el peluche
pobre peluche
lo tengo ya un poco sobao
y cuando tocamos el peluche
fíjate que tocar el peluche
me cuesta 100 euros
el peluche más caro de la historia
lo vamos a sobar un poquito aquí
¿ok?
y dice
vale
te quedan 800
vale
si volvemos a tocar el peluche
el peluche pobre
me quedan 700
sigamos tocando el peluche
el peluche el pobre
ya lo tengo ahí a tope
pobre peluche
me quedan 500
y de esta forma
hemos hecho una función
que tiene un conjunto
de instrucciones
reutilizable
que podemos
seguir llamando
tantas veces
como queramos
y lo que está haciendo es
sin nosotros
necesidad de saber
lo que hace por dentro
podemos tocar el peluche
hace la magia
que tenga que hacer
da un resultado
y ya lo tenemos
así que ya tenemos
al peluche tocado
las instrucciones ejecutadas
y nuestra computadora
contenta
ahora bien
resulta
que alguien
nos ha pedido algo
y nos ha dicho
oye
esto de tocar el peluche
muy bien
estás tocando mucho el peluche
y muy fuerte
pero
el peluche
va cambiando el precio
de lo que cuesta
o sea
tocar el peluche
cuesta 100 euros
no siempre
por ejemplo
el coste
se lo vamos a pasar
como parámetro
para pasarle
un parámetro
le tenemos que indicar aquí
entre paréntesis
le tenemos que pasar
el parámetro
que queramos
con un nombre
le podemos poner
la etiqueta
que queramos
en este caso
como le quiero pasar
como parámetro
por parámetro
le quiero pasar
el coste
lo que me va a costar
le vamos a poner
el nombre de coste
porque tiene sentido
pone coste
de tocar
al peluche
pero creo que esto
es demasiado bestia
así que vamos a poner
el coste
¿vale?
ahora
como le voy a pasar
el coste
vamos a hacer algo
voy a volver a poner aquí
el return
que ha desaparecido
de las finanzas
el coste
ahora
se lo vamos a pasar
por parámetro
por lo tanto
lo vamos a utilizar aquí
y aquí
este string
si nos acordamos
al principio
hemos enseñado
cómo podemos
incrustar valores
así que vamos a utilizar
las comillas estas
que son acentos invertidos
¿vale?
y vamos a incrustar
el valor
que tiene
el coste
de esta forma
ahora
nos aseguramos
de mostrar en el console.log
la información correcta
en lugar de poner siempre
el 100
lo que vamos a hacer
es poder pasarle
lo que le vamos a pasar
como parámetro
ahora
¿de dónde sale este parámetro?
¿cómo vamos a poder
tener este coste?
¿y cómo va a funcionar?
al final
esto como si le pasáramos
no es exactamente lo mismo
pero piensa
lo mismo que estamos haciendo
con las variables
¿no?
que le poníamos una etiqueta
y cada vez que queríamos
volver a recuperar
ese espacio de memoria
que teníamos
utilizamos esa etiqueta
aquí vamos a hacer lo mismo
lo que estamos diciendo
al tocar el peluche
le estamos diciendo
vale
tengo la etiqueta
coste
así que me vas a pasar
cuando me pases
en la primera posición
de tus parámetros
esto
va a llegar aquí
y yo me voy a referir
a él como coste
esto es lo que hay
así que ahora
si pongo
tocar peluche
le puedo pasar
cuál es el coste
¿ves?
ya me dice que la función
recibe un parámetro
y le vamos a pasar
el coste
así que le vamos a decir
que ahora cuesta 20 euros
ha bajado un poco
ha bajado un poco
la caché
porque no veas
ahora
una cosa muy importante
en los lenguajes de programación
es la semántica
y es muy importante
que diferencies
estos dos conceptos
uno
el parámetro
y otro
el argumento
son dos cosas diferentes
uno son
los parámetros
que recibe una función
y luego serían
los argumentos
los argumentos
al final es el valor
que realmente
le estamos pasando
¿vale?
entonces tendríamos aquí
el parámetro
coste
y le estaríamos pasando
el argumento
20
¿vale?
para el parámetro
coste
una cosa son los parámetros
digamos
los que tienen la etiqueta
y otros serían
los argumentos
que le estamos pasando
¿vale?
esa es la diferenciación
entre parámetro
y argumento
ahora
lo que tenemos aquí ya
son los argumentos
lo tenemos aquí
le estamos pasando
20
lo recibirá
como parámetro
aquí
tenemos el coste
perfecto
no hay ningún tipo de problema
vamos a ver
si funciona
perfecto
tocar el peluche
cuesta 20 euros
muy bien
y por eso ahora
nos ha quitado
solo 20 euros
en lugar de quitarnos los 100
y ahora cada vez
que le cambiemos
lo que le pasamos
50
pues ahora son 50
fijaos
con esta simplificación
lo que hemos hecho
de tocar
lo que estamos haciendo
justamente en esta función
es reutilizar
la lógica
de que cada vez
que tocamos el peluche
que esto ya podría ser
comprar un producto
por ejemplo
cada vez que queramos
comprar un producto
pasarle el coste
que tiene ese producto
y poder hacer el console log
restarlo de las finanzas
hemos hecho
un pequeño programa
que es un conjunto
de instrucciones
que le dice a la computadora
lo que tiene que hacer
y lo podemos reutilizar
y parametrizar
igual que parametrizamos
la lavadora
la nevera
y el microondas
al final
no hay mucha diferencia
al respecto
así que
aparte de esto
¿qué pasa?
pues que si ahora
yo pongo tocar el peluche
y no le pasó nada
¿qué va a pasar con esto?
¿esto va a funcionar
o no va a funcionar?
porque ahora
no le voy a pasar
ningún coste
no le estoy pasando
cuánto cuesta
tocar el peluche
así que
pam
vale
han pasado diferentes cosas
por un lado
podemos ver
que aquí
tocar el peluche
cuesta undefined
y por otro lado
vemos que nos ha devuelto
none
¿qué significa none?
none
significa
not a number
¿y por qué ocurre esto?
esto ocurre
porque hemos intentado
hacer una operación
incorrecta
hemos intentado
restarle a un número
undefined
y cuando intentamos
a un número
restarle con una operación
aritmética
el valor de undefined
que hemos visto antes
pues no tiene ningún sentido
imagínate
¿tiene algún sentido
que vayas al supermercado
a comprar undefined
número de rollos de papel?
no
por lo tanto
si alguien te dijese
vale
tengo dos rollos de papel
ve a comprar undefined
¿cuánto rollo de papel tengo?
dirías
no es un número
o sea
sea lo que sea
ya no es un número
pues esto es exactamente lo mismo
lo que ha pasado
es que javascript
no ha sido capaz
de hacer esta operación
no hemos hecho
ningún tipo
de chequeo aquí
para decir
ostras
debería evitar
que se ejecutase
sin coste
¿y cómo hemos visto
que podríamos hacer esto?
para hacer esto
podemos utilizar
una estructura de control
cuando
tendríamos que mirar
si
el coste
es
undefined
¿no?
pues podríamos mirar
que tiene que
tiene que
cuando sea diferente
undefined
pues entonces
sí que puedes ejecutar
o podríamos hacer
algo totalmente diferente
y mirar que el coste
sí que sea un número
eso lo miraremos
más adelante
con un operador
que nos permite hacerlo
pero ahora lo importante
no es enseñarte tanto
la estructura de control
que ya la hemos visto antes
sino enseñarte
que a los parámetros
le puedes decir
que tengan un valor
por defecto
de forma que
si nadie informa
ese valor
al menos
tenga un valor por defecto
en nuestro caso
vamos a decir
que el coste
tiene un valor
por defecto
de 100
de esta forma
cada vez que
nosotros llamemos
al tocar peluche
si no le pasamos
ningún argumento
que tenga
el valor que esperamos
le vamos a decir
bueno
vamos a poner
que si nadie nos dice
un coste
el valor por defecto
iba a tener
es 100
¿vale?
así que vamos a hacer esto
lo vamos a poner aquí
el valor por defecto
de 100
vamos a
resetear nuestras finanzas
vamos a decir
que tenemos otra vez
1000 euros
voy a poner esto
por arriba
para que lo veáis
¿vale?
vamos a poner
tocar peluche
y lo voy a ejecutar
tal cual
y ahora podemos ver
que tocar el peluche
cuesta 100 euros
lo hemos restado
y nos ha devuelto
los 900
y todo esto
todo esto
aunque no le estamos
pasando como argumento
nada
no le estamos pasando
el coste
pero ¿qué pasa?
que la propia función
tiene una forma
de decir
vale
si no me estás
informando
de cuál es el valor
que tendría esto
yo le voy a poner
este por defecto
y se lo hemos dicho
nosotros
justamente
obviamente
queremos que sea
un número
para que pueda
hacer bien
la operación
y que todo
siga funcionando
exactamente
como esperábamos
así que esta sería
nuestra primera función
parametrizada
que además tiene
un retón
para devolver un output
y tiene un valor
por defecto
para evitar
que en el caso
de que nadie
nos informe de nada
pues siga funcionando
como esperamos
aunque sea
con un valor
de 100 euros
que es bastante caro
bueno amigos
¿qué tal?
¿os ha gustado
la clase?
¿me podéis
me podéis
dar feedback
por discord
en el caso
que hay algo
que habéis
echado falta
algo que me ha saltado
algo que gustaría
de otra forma
yo que sé
creo que hemos estado
dos horas
espero que os haya gustado
porque he intentado
ir
a veces a lo mejor
he sido un poco pesado
pero quería
para la gente
que está desde cero
para que nadie me diga
no es que no
estás explicando
desde cero
lo he explicado
desde cero
para que yo creo
que cualquier persona
lo pueda entender
y lo pueda replicar
sobre todo
que podáis abrir
las herramientas de desarrollo
y lo podáis replicar
sin ningún tipo de problema
esto al final
lo que quiero hacer
lo que habéis visto
lo voy a volver
a regrabar
pero como
en secciones
más cortas
y lo voy a subir
a aprendiendo
javascript.dev
entonces
si habéis podido entender
lo que se ha expuesto
ah bueno
está de loco
la explicación
bueno me alegro un montón
me alegro
me alegro
seguiremos
porque mi idea
mi idea va a ser
si os ha gustado
volveremos a hacer
porque mi idea es
hacer primero
las clases aquí
ver el feedback
que hay al respecto
y luego grabarlas
y ponerlos
en aprende
javascript
enseñas muy bien
gracias
muchas gracias
que majo
muchas gracias
vale pues
os recuerdo dos cositas
vale
os recuerdo dos cositas
aparte de que podéis ir
al canal de discord
mira pongo el discord
por si queréis aprender
programación
si estás aprendiendo
programación
si queréis seguir
mejorando en programación
lo que queráis
mira discord.gg
barra midudev
ahí tenemos una comunidad
de
bueno
26.000 personas ya
26.000 personas
hay 4.164 personas
en línea
y es una comunidad
súper bonita
que la gente
se ayuda un montón
y hay una comunidad
de chicas
también que se ayuda
o sea que si eres chica
pues que sepas que ahí
hay bastante chicas también
no se te hace agotador
tener que grabar
y volver a explicar
lo mismo