YouTube2Text

Aprende JavaScript - Curso Completo desde Cero — Transcript

by freeCodeCamp Español · 77,530 words · 12,111 segments · language en · Watch on YouTube

Full transcript

  1. 0:00hola bienvenido bienvenida a este curso
  2. 0:02de iab sketch soy estefanía y en las
  3. 0:04próximas horas aprenderás paso a paso
  4. 0:07cómo programar en javascript el curso es
  5. 0:10perfecto para ti si quieres aprender a
  6. 0:12programar o si quieres repasar tus
  7. 0:14conocimientos veremos los aspectos
  8. 0:16principales de este lenguaje de
  9. 0:18programación paso a paso con ejemplos y
  10. 0:20ejercicios los temas están basados en el
  11. 0:23currículum de freak orcam así que si
  12. 0:26deseas practicar tus conocimientos
  13. 0:27puedes hacer clic en el enlace que está
  14. 0:30en la descripción y resolver ejercicios
  15. 0:32adicionales interactivos así que
  16. 0:35comencemos
  17. 0:39como puedes instalar javascript en tu
  18. 0:41dispositivo en realidad no están las
  19. 0:44llaves script en tu dispositivo como
  20. 0:47instalar y hasta el tono otros lenguajes
  21. 0:48de programación sino que javascript se
  22. 0:51ejecuta en los browsers
  23. 0:56en el browser que usas para acceder a
  24. 0:58internet como por ejemplo google chrome
  25. 1:00todos los browsers web modernos ejecutan
  26. 1:04código de javascript así que puedes
  27. 1:07ejecutar el código de javascript en una
  28. 1:09gran variedad de dispositivos y de
  29. 1:11sistemas operativos
  30. 1:12veamos algunas opciones para ejecutar tu
  31. 1:15código algunas de las opciones incluyen
  32. 1:17descargar editores de código por ejemplo
  33. 1:21una alternativa buenísima es 10 code
  34. 1:25pujol estudio code una herramienta que
  35. 1:27te va a permitir escribir tu código de
  36. 1:29javascript y luego vas a poder
  37. 1:31ejecutarla en un browser lo primero que
  38. 1:34debes hacer
  39. 1:35para poder escribir y ejecutar tu código
  40. 1:39de javascript es crear un archivo
  41. 1:42index.hr ml este tipo de archivo html
  42. 1:46cuando se combina con esto que tenemos
  43. 1:49aquí nos va a permitir ejecutar el
  44. 1:51código en el browser como creas un
  45. 1:53archivo en 10 con haces clic en find you
  46. 1:56file un archivo nuevo
  47. 1:59vas a ver algo parecido a esto y luego
  48. 2:02los guardas
  49. 2:05seis bajas o seis y le asignas un nombre
  50. 2:09que debe terminar con punto h tm l eso
  51. 2:14define el tipo de archivo que estás
  52. 2:16creando
  53. 2:17html normalmente se usa para desarrollo
  54. 2:20web en este caso nosotros lo vamos a
  55. 2:22usar para poder escribir nuestro código
  56. 2:24de javascript y ejecutarlo al hacer clic
  57. 2:27sobre el archivo dentro de ese archivo
  58. 2:30debes escribir esto que tenemos aquí dos
  59. 2:33etiquetas que se llaman etiquetas script
  60. 2:35ellas le dicen al browser que este
  61. 2:39código que tenemos aquí en el medio
  62. 2:42entre esas etiquetas
  63. 2:43corresponde a código de javascript así
  64. 2:46que debe ejecutarlo como un código de
  65. 2:48javascript en este caso esta línea va a
  66. 2:52mostrar el mensaje hola mundo en lo que
  67. 2:54nosotros llamamos la consola que es
  68. 2:57donde vamos a ver el resultado de
  69. 2:59nuestro código gracias a esta función
  70. 3:01que tenemos aquí una vez que tienes tu
  71. 3:04archivo
  72. 3:06index.html no necesariamente el nombre
  73. 3:08tiene que ser index pero normalmente es
  74. 3:10un estándar usado comúnmente en
  75. 3:13desarrollo web hace doble clic en mi
  76. 3:15caso yo tengo google chrome hace doble
  77. 3:17clic y luego para ver el resultado de
  78. 3:21ese código hay dos opciones o usas el
  79. 3:24atajo del teclado
  80. 3:32aquí puedes ver un panel y aquí vas a
  81. 3:34ver tu mensaje el resultado de tu código
  82. 3:37si haces clic en control y giras la
  83. 3:40ruedita del mouse puedes ver el mensaje
  84. 3:43con una letra más grande estas son las
  85. 3:46herramientas de desarrolladores de camps
  86. 3:48y allí podemos ver el resultado de
  87. 3:50nuestro código otra forma de abrir este
  88. 3:53panel es hacer clic derecho luego hacer
  89. 3:56clic en inspector y aquí vemos cançó y
  90. 3:59vemos nuevamente el mensaje hola mundo
  91. 4:02esas son alternativas en las que tienes
  92. 4:03que instalar el editor de código en tu
  93. 4:06dispositivo pero otra alternativa
  94. 4:09buenísima el editor de código que
  95. 4:11tenemos en frica simplemente ingresas a
  96. 4:13la página de frisco el cam punto org sly
  97. 4:16en español y haces clic aquí empieza es
  98. 4:19gratis luego de esto vas a hacer clic
  99. 4:22aquí en la certificación de algoritmos
  100. 4:24de javascript y estructuras de datos vas
  101. 4:27a entrar aquí y donde dice cursos en
  102. 4:29javascript básico puedes hacer clic en
  103. 4:32cualquiera de estos retos nosotros
  104. 4:34necesitamos usar este panel que tenemos
  105. 4:37aquí blanquito que es donde podemos
  106. 4:39escribir nuestro código y el resultado
  107. 4:42se va a mostrar aquí abajo cuando lo
  108. 4:44escribamos por ejemplo puedes ver con su
  109. 4:46punto lo hola mundo aquí ves el
  110. 4:49resultado hola mundo aquí tenemos la
  111. 4:52descripción del ejercicio que
  112. 4:53corresponde pero si solo que debemos
  113. 4:55usarlo como un editor de código podemos
  114. 4:58arrastrar esta parte hacia la izquierda
  115. 5:01y ya tenemos nuestro editor si queremos
  116. 5:05aumentar el tamaño de la letra podemos
  117. 5:07aquí y aquí podemos ver el resultado en
  118. 5:10la consola
  119. 5:11este es el editor de código que yo voy a
  120. 5:13usar durante el curso puedes usar
  121. 5:16cualquiera de estas herramientas todas
  122. 5:18son buenísimas y te van a permitir
  123. 5:20escribir y ejecutar tu código de ya
  124. 5:23busquets ya estás muy cerca de comenzar
  125. 5:25a aprender javascript así que pasemos a
  126. 5:29nuestro primer tema del curso
  127. 5:33comenzamos con nuestro primer tema del
  128. 5:35curso
  129. 5:36lo primero que veremos sobre javascript
  130. 5:38van a ser los comentarios que es un
  131. 5:40comentario un comentario es una parte de
  132. 5:43nuestro código que en realidad no es
  133. 5:45código cuando el programa se ejecuta
  134. 5:48simplemente se ignoran y ellos sirven
  135. 5:51para darnos precisamente comentarios o
  136. 5:54datos sobre el código para nosotros y
  137. 5:56para otros desarrolladores normalmente
  138. 5:59nuevos comentarios explicamos un poquito
  139. 6:00más sobre la lógica del código sobre lo
  140. 6:04que alguna línea representa un bloque de
  141. 6:06código en javascript podemos crear un
  142. 6:09comentario de una línea con este par de
  143. 6:11símbolos una doble barra puedes ver que
  144. 6:14es su color cambia a verde y aquí
  145. 6:17podemos escribir comentarios de una
  146. 6:19línea esto es simplemente lo que
  147. 6:22nosotros queramos escribir para
  148. 6:24describir nuestro código este par de
  149. 6:26símbolos las barras inclinadas
  150. 6:28convierten todo el resto de la línea en
  151. 6:30un comentario así que todo esto va a ser
  152. 6:33ignorado y solo se va a tomar como un
  153. 6:35comentario si nosotros escribimos código
  154. 6:38por ejemplo digamos esta línea de código
  155. 6:42que vas a aprender en un próximo tema en
  156. 6:44unos minutos esta parte de la línea si
  157. 6:47se consideraría código y se va a
  158. 6:49ejecutar cuando ejecuta el programa pero
  159. 6:52esta parte no se va a ejecutar y no se
  160. 6:55va a tomar como parte del código
  161. 6:57simplemente se va a ignorar también
  162. 6:59podemos escribir comentarios de varias
  163. 7:01líneas y cómo lo podemos hacer bueno
  164. 7:03abrimos el comentario con una barra
  165. 7:06seguido de un asterisco y allí podemos
  166. 7:09escribir lo que queramos para describir
  167. 7:11nuestro código por ejemplo este es un
  168. 7:13comentario de varias
  169. 7:18líneas para cerrar el comentario y
  170. 7:21decirle al programa que ya allí terminó
  171. 7:24nuestro comentario y queremos empezar a
  172. 7:25escribir código escribimos este par de
  173. 7:28símbolos en el orden opuesto primero el
  174. 7:30asterisco y luego la barra
  175. 7:33y puedes ver que antes teníamos como un
  176. 7:35pequeño error aquí que desaparece cuando
  177. 7:37cerramos el comentario también este
  178. 7:40comentario puede tener cualquier número
  179. 7:41de líneas lo importante es que abramos
  180. 7:44el comentario con estos dos símbolos y
  181. 7:45los cerremos posteriormente puede estar
  182. 7:48en la misma línea puede estar en una
  183. 7:49línea diferente y todo lo que está en el
  184. 7:52medio se va a considerar como un
  185. 7:53comentario y se va a ignorar genial
  186. 7:56pasemos a nuestro siguiente tema ya
  187. 7:58vamos a empezar a ver cómo escribir
  188. 8:00código en javascript
  189. 8:04en ya ves que tenemos que trabajar con
  190. 8:07valores y esos valores tienen un tipo
  191. 8:10específico de datos cada uno de ellos
  192. 8:12dependiendo de su propósito dentro del
  193. 8:15código incluyendo and find no no
  194. 8:19significa nulo en español lo podemos ver
  195. 8:22cuando un objeto en el código es nulo no
  196. 8:25existe donde find lo vamos a ver
  197. 8:28frecuentemente en el curso y normalmente
  198. 8:31lo encontramos cuando no existe un valor
  199. 8:34asignado
  200. 8:35julián es un tipo de datos que en
  201. 8:38español lo denominamos buljan o los
  202. 8:41valores de verdad verdadero y falso true
  203. 8:44y fowles en inglés strange es el tipo de
  204. 8:47dato que usamos para representar cadenas
  205. 8:50de caracteres
  206. 8:51tiempo este tipo de datos no lo vamos a
  207. 8:54usar durante el curso pero si te invito
  208. 8:57si tienes curiosidad a investigar más
  209. 8:58sobre este tipo de dato en la
  210. 9:00documentación number significa el número
  211. 9:03en español se usa para representar un
  212. 9:05número en nuestro código y object se usa
  213. 9:08para representar un objeto un objeto es
  214. 9:11una estructura que nos va a permitir
  215. 9:13relacionar propiedades y funciones bajo
  216. 9:16una misma estructura que llamamos objeto
  217. 9:18bien vamos a comenzar hablando sobre el
  218. 9:21concepto de variable veámoslo aquí una
  219. 9:25variable es como una cajita donde
  220. 9:27podemos guardar un valor en la realidad
  221. 9:31una variable lo que hace es crear un
  222. 9:33espacio la memoria del dispositivo para
  223. 9:36que guardemos un valor específico en ese
  224. 9:38lugar de memoria como lo podemos crear
  225. 9:41ya busquets usamos la palabra clave para
  226. 9:45luego escribimos el nombre de la
  227. 9:47variable en este caso podría ser mi
  228. 9:50variable oa un número
  229. 9:54durante el curso no vamos a incluir
  230. 9:57acentos en el código que esto lo vamos a
  231. 10:01hacer a propósito porque normalmente
  232. 10:03intentamos no introducir caracteres que
  233. 10:06no sean estándar el inglés en nuestros
  234. 10:08proyectos para evitar cualquier tipo de
  235. 10:10problema que pueda haber ahora nuestro
  236. 10:13ejemplo va a ser var mi variable y a esa
  237. 10:17variable le vamos a asignar un valor lo
  238. 10:19hacemos con este símbolo que tenemos
  239. 10:21aquí y de igual esto se llama el
  240. 10:23operador de asignación
  241. 10:25asigna un valor a esta variable
  242. 10:28digamos que queremos asignar este valor
  243. 10:31recall camps como puedes ver está en
  244. 10:33otro color porque lo rodeamos con
  245. 10:35comillas cuando rodeamos una secuencia
  246. 10:38de letras o de caracteres entre comillas
  247. 10:41estamos creando una cadena de caracteres
  248. 10:44que es otro tipo de datos uno de los
  249. 10:47tipos de datos que acabamos de ver
  250. 10:49ese valor lo vamos a asignar a la
  251. 10:52variable y por lo tanto como tenemos ya
  252. 10:55la variable creada en nuestro programa
  253. 10:57podemos acceder a ella y usar su valor
  254. 11:00en el programa por ejemplo podemos
  255. 11:03mostrarla en algo que llamamos la
  256. 11:05consola para mostrar ese valor y poder
  257. 11:08verlo ver que la variable en verdad
  258. 11:10tiene este valor podemos llamar a esta
  259. 11:13función console que en español significa
  260. 11:16consola seguida de un punto y lo que
  261. 11:19esto nos va a permitir mostrar el valor
  262. 11:22que pasemos entre paréntesis y también
  263. 11:26ella va a escribir es importante
  264. 11:27resaltar que estas líneas deberían
  265. 11:29terminar en punto y coma si abrimos aquí
  266. 11:32la consola esto lo que vamos a denominar
  267. 11:35la consola que va a ser el lugar donde
  268. 11:38vamos a ver el resultado de nuestro
  269. 11:40código por ejemplo aquí estoy mostrando
  270. 11:42el valor de mi variable y podemos ver
  271. 11:45ese valor aquí en la consola se
  272. 11:47actualiza automáticamente
  273. 11:49el valor de mis variables es free col
  274. 11:51cam en este momento en este punto del
  275. 11:54código de la ejecución del programa ese
  276. 11:57valor puede cambiar
  277. 12:00digamos que ahora en lugar de una cadena
  278. 12:03de caracteres queremos asignarle un
  279. 12:05número entero a esa variable escribimos
  280. 12:09el nombre de la variable seguido de un
  281. 12:11signo igual y el valor nuevo que
  282. 12:13queremos asignar
  283. 12:15nuevamente podemos mostrar ese valor
  284. 12:17para confirmar que se actualizó
  285. 12:20vemos el valor inicial bricor camps y
  286. 12:23luego 16 que es el nuevo valor de la
  287. 12:25variable así podemos asignar cualquier
  288. 12:28valor que queramos a la variable por
  289. 12:31ejemplo un número negativo por ejemplo
  290. 12:34un valor de verdad ya que significa
  291. 12:37verdadero en español false que significa
  292. 12:40falso en español o cualquier otro tipo
  293. 12:42de valor con el cual queramos trabajar
  294. 12:46también podemos asignarle un nombre
  295. 12:48descriptivo a la variable por ejemplo si
  296. 12:52queremos crear una variable que contenga
  297. 12:55un nombre digamos mi nombre estefanía el
  298. 13:00nombre de esta variable debería ser
  299. 13:03descriptivo de su valor de lo que
  300. 13:05representa ese valor porque este nombre
  301. 13:09de la variable es el que vamos a usar en
  302. 13:11todo nuestro programa donde necesitemos
  303. 13:13usar este valor y si por ejemplo
  304. 13:16asignamos un nombre que no sea
  305. 13:18descriptivo por ejemplo o equis hoya y
  306. 13:22usamos esta variable en la línea digamos
  307. 13:25una línea 500 del programa no vamos a
  308. 13:29saber a qué nos estamos refiriendo que
  309. 13:31representa este valor por lo tanto
  310. 13:34siempre se recomienda ser descriptivo
  311. 13:36otra cosa importante es que en llaves
  312. 13:39que usamos esta convención para los
  313. 13:42nombres de las variables cuando tienen
  314. 13:44más de una palabra la primera letra de
  315. 13:48cada palabra comienza con mayúscula y la
  316. 13:51primera letra en general comienza con
  317. 13:53minúscula esta convención se llama como
  318. 13:57case
  319. 13:58en inglés como case porque se asemeja a
  320. 14:02las jorobas de un camello pero recuerda
  321. 14:04que la primera letra es minúscula y
  322. 14:06después para cada palabra la primera
  323. 14:09letra es mayúscula sin espacios esto no
  324. 14:11puede estar separado por un espacio
  325. 14:13porque si no tendríamos un error
  326. 14:16bien también tenemos otras alternativas
  327. 14:20para definir esta variable en lugar de
  328. 14:23pagar podemos usar la palabra clave let
  329. 14:26o la palabra clave const son tres
  330. 14:29alternativas pero vamos a hablar más
  331. 14:32sobre sus diferencias durante el curso a
  332. 14:34medida que aprendas más conceptos y cómo
  333. 14:36se usan las variables en programación
  334. 14:40genial
  335. 14:41si quieres actualizar este valor a tu
  336. 14:43nombre y vas a ver cómo se muestra en la
  337. 14:45consola pasemos a nuestro siguiente tema
  338. 14:51ok vamos a hacer un repaso rápido de
  339. 14:54cómo podemos asignar un valor a una
  340. 14:57variable esta línea es válida en java 7
  341. 15:00estamos creando la variable a en nuestro
  342. 15:03programa usando la palabra clave par y
  343. 15:06después tenemos var
  344. 15:08igualados puedes ver que hay una
  345. 15:11diferencia entre estas dos líneas en
  346. 15:13esta no estamos asignando ningún valor y
  347. 15:16aquí estamos asignando le el valor a la
  348. 15:19variable me la estamos creando y a la
  349. 15:22misma vez le estamos asignando un valor
  350. 15:25qué pasa si nosotros queremos mostrar la
  351. 15:28variable
  352. 15:29y mostrar la variable b en este punto en
  353. 15:33estas líneas del programa hasta este
  354. 15:35momento puedes ver que no tiene un valor
  355. 15:38asignado así que podemos predecir que
  356. 15:41esto va a resultar en un error pero con
  357. 15:44la variable b si podemos trabajar porque
  358. 15:48tiene un valor así que podemos mostrarla
  359. 15:51en la consola si mostramos estos valores
  360. 15:53en la consola podemos ver que en lugar
  361. 15:55de un error tenemos un valor que se
  362. 15:57denomina and spain recuerdas que
  363. 16:00anteriormente vimos los tipos de datos
  364. 16:02que pueden usar en java esker y uno de
  365. 16:04esos eras on the fine and find es el
  366. 16:07valor que se asigna por defecto a una
  367. 16:09variable cuando no le asignamos un valor
  368. 16:11solo la estamos creando eso lo vamos a
  369. 16:14ver más adelante con más detalle en sólo
  370. 16:17unos minutos cuando veamos cómo declarar
  371. 16:19una variable pero aquí estamos
  372. 16:21trabajando con una variable p que si
  373. 16:23tiene un valor asignado y por eso
  374. 16:26tenemos el valor 2 aquí
  375. 16:29genial ya sabes que las variables tienen
  376. 16:31un valor que se asigna por defecto que
  377. 16:33se llama audi find que nos dice que la
  378. 16:35variable todavía no tiene un valor
  379. 16:37asignado ahora vamos a cerrar la consola
  380. 16:39y vamos a ver cómo podemos asignarle un
  381. 16:42valor a la variable y ya la tenemos aquí
  382. 16:45creada ya esta es parte de nuestro
  383. 16:48programa pero no tiene un valor todavía
  384. 16:50es donde find el val el valor será dios
  385. 16:53y como lo asignamos con este signo igual
  386. 16:56que se denomina el operador de
  387. 16:58asignación déjame escribir el comentario
  388. 17:01aquí para que lo veas visualmente
  389. 17:04ese es el signo igual el operador de
  390. 17:06asignación en javascript que asigna el
  391. 17:08valor que está a la derecha a la
  392. 17:10variable que está a la izquierda
  393. 17:12si nosotros tratamos de mostrar el valor
  394. 17:15de esta variable luego de asignarle el
  395. 17:18valor vamos aquí a quitar esta línea ya
  396. 17:21no necesitamos trabajar con b solo vamos
  397. 17:24a mostrar el valor de a antes de
  398. 17:26asignarle un valor y el valor de luego
  399. 17:29de la asignación debería tener un valor
  400. 17:32ahora si abrimos la consola vemos que
  401. 17:35antes el valor de un default y ahora el
  402. 17:38valor es 10 y le asignamos este valor a
  403. 17:41la variable y podemos trabajar con ella
  404. 17:43en nuestro programa
  405. 17:48bien ahora veamos cómo puedes asignar el
  406. 17:51valor de una variable a otra variable si
  407. 17:55definimos una variable a con el valor 5
  408. 17:59creamos otra variable b y vamos a
  409. 18:02tenerla con punto y coma pero esta vez
  410. 18:04en lugar de escribir un valor en este
  411. 18:06lugar preciso de la línea vamos a
  412. 18:09escribir el nombre de la variable que
  413. 18:11definimos anteriormente la variable a
  414. 18:14esa variable tenía el valor 5 y como
  415. 18:18podemos trabajar con esa variable y
  416. 18:20usarla en nuestro programa también
  417. 18:21podemos asignar la a otra variable en
  418. 18:24este caso vamos a asignar a la variable
  419. 18:26be en realidad estamos asignando en su
  420. 18:29valor estamos asignando 5 a b así que
  421. 18:33vamos a comprobar todo esto que estamos
  422. 18:35diciendo
  423. 18:36usando con su punto lo que vamos a
  424. 18:39mostrar el valor de a y después vamos a
  425. 18:41mostrar el valor de p
  426. 18:43si abrimos la consola vemos aquí los dos
  427. 18:46números 5 y 5 ambos tienen el mismo
  428. 18:49valor porque 5 inicialmente era el valor
  429. 18:52de a luego lo asignamos a b y ambos
  430. 18:55tienen el mismo valor
  431. 18:57también existe otra versión alternativa
  432. 19:00de cómo podemos asignar el valor de una
  433. 19:02variable a otra y otra vez declaramos la
  434. 19:05variable a y le asignamos un valor
  435. 19:06tenemos la misma línea pero esta vez
  436. 19:08vamos a cambiar la segunda línea en
  437. 19:11lugar de asignarle un valor directamente
  438. 19:13vamos solamente a crear ese nombre en
  439. 19:15nuestro programa de esta forma usamos la
  440. 19:18palabra clave pagar el nombre de la
  441. 19:20variable y luego punto y coma y qué es
  442. 19:23lo que vamos a hacer en lugar de
  443. 19:25asignarlo directamente en la misma línea
  444. 19:27podemos asignarlo en otra línea distinta
  445. 19:31ya una vez que las hemos creado en el
  446. 19:34programa podemos trabajar con ellas en
  447. 19:36cualquier línea que necesitemos así que
  448. 19:38podemos asignar el valor de a a la
  449. 19:40variable ve nuevamente si mostramos el
  450. 19:43valor de a y mostramos el valor de b
  451. 19:46abrimos aquí la consola podemos ver los
  452. 19:48dos valores 5 y 5 así que el efecto fue
  453. 19:52exactamente el mismo podemos asignarlo
  454. 19:54en una línea distinta o podemos
  455. 19:56asignarlo directamente aquí genial ya
  456. 19:59sabes cómo asignar el valor de una
  457. 20:00variable a otra sabes que así que
  458. 20:03comencemos con nuestro siguiente tema
  459. 20:09ahora que ya sabes cómo funciona todo
  460. 20:11este proceso de crear variables
  461. 20:13declararlas y asignarles valores vamos a
  462. 20:16repasar la terminología técnica antes de
  463. 20:18seguir con nuestro siguiente tema del
  464. 20:20curso lo primero que vamos a hacer es
  465. 20:22declarar una variable x pero no sólo
  466. 20:25estamos declarando declarar significa
  467. 20:27solamente crear el nombre en nuestro
  468. 20:29programa que sería algo así lo vamos a
  469. 20:33ver más adelante sería algo así sino que
  470. 20:35también le estamos asignando un valor en
  471. 20:37el mismo momento que la estamos
  472. 20:39declarando cuando nosotros asignamos un
  473. 20:43valor a la variable la estamos inicial
  474. 20:45izando
  475. 20:46inicial izando la variable o inicializar
  476. 20:52la variable en este caso estamos inicial
  477. 20:54izando la variable x con el valor 9 la
  478. 20:58estamos creando ya la misma vez estamos
  479. 21:00asignando un valor por ejemplo podemos
  480. 21:03tener esta variable mi idioma español y
  481. 21:08punto y como al final de la línea de
  482. 21:10aquí tenemos una cadena de caracteres y
  483. 21:12como puedes observar también esto es muy
  484. 21:13importante en javascript nosotros
  485. 21:16seguimos una nomenclatura que se
  486. 21:18denomina kabul que es
  487. 21:21si la palabra que estamos escribiendo el
  488. 21:24nombre de la variable tiene más de una
  489. 21:25palabra la primera palabra comienza con
  490. 21:29minúscula y después cada una de las
  491. 21:31palabras inicia con mayúscula entonces
  492. 21:34visualmente estamos separando las
  493. 21:35palabras con las mayúsculas y esa es una
  494. 21:38nomenclatura estándar que usamos por
  495. 21:40convención en javascript no
  496. 21:42necesariamente necesitas usar o sea
  497. 21:44funcionalmente separar las palabras con
  498. 21:47un andrés cold con un guión bajo va a
  499. 21:49funcionar pero normalmente en javascript
  500. 21:52usamos esta convención genial recuerda
  501. 21:56que también para definir una variable
  502. 21:58puedes usar las palabras let y con esto
  503. 22:00las vamos a ver en más detalle más
  504. 22:02adelante en el curso así que pasemos a
  505. 22:05nuestro siguiente tema
  506. 22:11ahora vamos a ver otro término
  507. 22:12importante en programación que debes
  508. 22:15saber es de una variable no inicializa
  509. 22:18da
  510. 22:19este es el término que usamos para
  511. 22:21referirnos a una variable que todavía no
  512. 22:23tiene un valor asignado si nosotros
  513. 22:25declaramos una variable aquí y creamos
  514. 22:29ese nombre en nuestro programa le
  515. 22:31asignamos un espacio en memoria
  516. 22:33esa variable no ha sido inicializa da
  517. 22:36porque no tiene un valor
  518. 22:38recuerda que el valor asignado es andy y
  519. 22:41find luego vamos a verificar el valor de
  520. 22:45amd
  521. 22:46aquí podemos ver que el valor es andy
  522. 22:48find porque no hemos asignado un valor
  523. 22:50no está inicializa da esa variable
  524. 22:53entonces vamos a asignarle un valor el
  525. 22:56valor de a base de 56 una vez que ya le
  526. 22:59asignamos el valor esta variable podemos
  527. 23:02mostrar el valor en la consola y aquí
  528. 23:05vemos el número 56 genial ya podemos
  529. 23:08comenzar con nuestro siguiente tema ya
  530. 23:10sabes declarar variables como asignarles
  531. 23:12valores y sabes la diferencia entre
  532. 23:14variables inicializa das y variables no
  533. 23:17inicializa das
  534. 23:21bien ahora veamos una característica muy
  535. 23:23importante de javascript que debes saber
  536. 23:25cuando estás escribiendo tu código sabes
  537. 23:28que es un lenguaje de programación que
  538. 23:30es sensible a las mayúsculas y las
  539. 23:32minúsculas una mayúscula no es
  540. 23:34equivalente a una minúscula en un nombre
  541. 23:36que tú crees en el código ya vas a ver a
  542. 23:39qué me refiero con esto debes tener
  543. 23:41mucho mucho cuidado porque puede ser la
  544. 23:44diferencia entre tener un error en el
  545. 23:45código y que el código funcione
  546. 23:47correctamente
  547. 23:48si nosotros definimos una variable con
  548. 23:51la palabra clave bar y le asignamos un
  549. 23:54nombre en este caso va a ser mi variable
  550. 23:56y también le asignamos un valor 5 o sea
  551. 23:59que está inicializa da la variable vamos
  552. 24:02a ver qué pasó si nosotros tratamos de
  553. 24:04referirnos a esa variable en nuestro
  554. 24:06programa con otra combinación de
  555. 24:08mayúsculas de minúsculas
  556. 24:09inicialmente puedes pensar que si
  557. 24:12escribimos mi variable con otra
  558. 24:13combinación de mayúsculas y minúsculas
  559. 24:15se puede reconocer pero en este caso no
  560. 24:19es así sino si nosotros aquí escribimos
  561. 24:23ese mismo nombre todo en mayúsculas qué
  562. 24:27es lo que vamos a tener un error si
  563. 24:29vemos aquí en la consola tenemos
  564. 24:31reference el error de referencia mi
  565. 24:35variable que es el nombre que usamos
  566. 24:37aquí y es not different significa que
  567. 24:40esa variable no está definida en el
  568. 24:42programa porque porque no hay ningún
  569. 24:44nombre con esa combinación de mayúsculas
  570. 24:46y minúsculas definida esta combinación
  571. 24:49específica es la que hemos definido
  572. 24:51veamos otro ejemplo si tratamos de
  573. 24:54cambiar la combinación digamos comenzar
  574. 24:56con una mayúscula y que el resto de las
  575. 24:57letras sean minúsculas
  576. 24:59también vamos a tener el mismo error
  577. 25:02vamos a comentar esta línea
  578. 25:05error de referencia mi variable que es
  579. 25:08ahora este nombre que estamos usando
  580. 25:10aquí en conxunto log y es notifight no
  581. 25:13está definida esta variable en nuestro
  582. 25:15programa
  583. 25:16comentemos esta línea y vamos a ver otra
  584. 25:20combinación tú también puedes intentarlo
  585. 25:22se está siguiendo el curso de forma
  586. 25:24interactiva con el editor de código
  587. 25:25prueba cualquier combinación por ejemplo
  588. 25:28me come pequeña variable esto también
  589. 25:32resultará en un error si abrimos la
  590. 25:34consola aquí vemos error de referencia
  591. 25:36ni variable no está definida pero quizás
  592. 25:40también te preguntes si escribir la
  593. 25:42variable todo en minúscula si funciona
  594. 25:45en quizás bueno vamos a ver qué pasa
  595. 25:48esto también va a resultar en un error
  596. 25:51tiene que ser la combinación exacta de
  597. 25:53mayúsculas y minúsculas aquí puedes ver
  598. 25:55error de referencia mi variable en
  599. 25:58minúscula no está definida genial ya
  600. 26:01sabemos que el nombre de la variable
  601. 26:02tiene que ser exactamente como lo
  602. 26:04escribimos en nuestro programa así que
  603. 26:07vamos a copiar y pegar este nombre
  604. 26:09para mostrarlo en la consola aquí
  605. 26:12finalmente podemos ver el valor de la
  606. 26:14variable que es 5
  607. 26:16esa es la variable que nosotros
  608. 26:17definimos y es la única que va a
  609. 26:19reconocer el programa con su convención
  610. 26:21su combinación específica de mayúsculas
  611. 26:23y minúsculas y esto es lo que en inglés
  612. 26:25se denomina case sensitive es una forma
  613. 26:29de referirnos a que es sensible a
  614. 26:31mayúsculas y minúsculas en los nombres
  615. 26:33del programa
  616. 26:38bien ya podemos tachar variables en
  617. 26:40javascript de nuestra lista de temas
  618. 26:42pendientes así que vamos a comenzar a
  619. 26:45ver las operaciones aritméticas en
  620. 26:47javascript
  621. 26:49así que vamos a comenzar primero veremos
  622. 26:53la suma cómo podemos sumar dos números
  623. 26:56en ya busquets primero que todo lo más
  624. 26:59útil es definir o declarar una variable
  625. 27:02para guardar el valor de esa suma para
  626. 27:05que podamos utilizarla en nuestro
  627. 27:07programa sino si solamente la mostramos
  628. 27:09en la consola se va a perder y no la
  629. 27:11podemos usar después como podemos hacer
  630. 27:14esto primero declaramos la variable como
  631. 27:17tenemos aquí luego con el operador de
  632. 27:19asignación
  633. 27:21vamos a asignar el resultado de la suma
  634. 27:25por ejemplo 7 + 12 usamos el símbolo de
  635. 27:30suma ese mismo símbolo es el que se usa
  636. 27:32para sumar dos valores en java es que
  637. 27:35normalmente también se recomienda dejar
  638. 27:37un espacio a cada lado del operador para
  639. 27:40que sea más fácil de leer el código si
  640. 27:43no dejamos estos espacios igual va a
  641. 27:45funcionar pero va a ser más difícil de
  642. 27:46leer así que ya que tenemos el valor de
  643. 27:50la suma podemos mostrar la vamos a ver
  644. 27:52cuál es el resultado con con su punto lo
  645. 27:55que si abrimos la consola aquí vemos el
  646. 27:57valor 19 que es exactamente el resultado
  647. 28:00de 7 + 12
  648. 28:06ahora veamos cómo puedes restar un
  649. 28:07número de otro en javascript
  650. 28:11normalmente asignamos el resultado a una
  651. 28:13variable así que vamos a declarar la
  652. 28:15aquí y vamos a inicializar la con un
  653. 28:18valor pero cual valor va a ser el
  654. 28:20resultado de restar
  655. 28:2215 menos 5 para eso usamos el guión que
  656. 28:26es el símbolo de restar símbolo del
  657. 28:28resto también se usa en house que en
  658. 28:32este caso vamos a tener un resultado
  659. 28:34positivo
  660. 28:35y podemos mostrarlo en la consola resta
  661. 28:40tenemos aquí el valor 10 15 5 10 ahora
  662. 28:45vamos a ver si podemos actualizar el
  663. 28:47valor de esta variable a un valor
  664. 28:49negativo en este caso vamos a invertir
  665. 28:51el orden de los operan dos de los
  666. 28:54valores que usamos en la operación vamos
  667. 28:57a restar 5 menos 15 en este caso el
  668. 29:01resultado va a ser negativo vamos a
  669. 29:03mostrar el valor actualizado de la
  670. 29:06variable resta aquí asignamos un valor
  671. 29:09inicial pero aquí estamos cambiando ese
  672. 29:11valor
  673. 29:12inicialmente era 10 porque es que
  674. 29:14restamos 15 menos 5 y después actualizó
  675. 29:17a menos 10 en esta línea esta línea la
  676. 29:19actualiza y aquí se muestra el valor
  677. 29:23genial ahora confirmamos que el
  678. 29:25resultado puede ser 0 restamos 15 menos
  679. 29:2915 el resultado va a ser cero pero
  680. 29:33comprobemos esto una vez más y si vemos
  681. 29:37la consola
  682. 29:3810 -
  683. 29:401000 es el que tenemos acá el resultado
  684. 29:42de 15 menos 15
  685. 29:48también podemos multiplicar dos números
  686. 29:50en java es que vamos a ver cómo podemos
  687. 29:52hacerlo cuál es el operador primero
  688. 29:55definimos una variable producto para
  689. 29:57guardar el resultado y luego vamos a
  690. 30:00hacer la operación vamos a multiplicar 5
  691. 30:02por 3 el operador que usamos para
  692. 30:05multiplicar es este que tenemos aquí el
  693. 30:08asterisco
  694. 30:09siempre a cada operador aritmético se
  695. 30:11recomienda rodearlo con un espacio a
  696. 30:14cada lado para que sea más fácil leer
  697. 30:16esa expresión esa secuencia de valores y
  698. 30:20operadores aquí multiplicamos 5 por 3 y
  699. 30:24luego vamos a mostrar el resultado
  700. 30:26producto
  701. 30:28y vemos el valor 15 que tenemos por acá
  702. 30:31exactamente lo que esperábamos luego
  703. 30:34podemos actualizar ese valor vamos a
  704. 30:37actualizar el valor de la variable
  705. 30:39producto al resultado de multiplicar por
  706. 30:41ejemplo 9 por 0
  707. 30:43sabemos matemáticamente que todo número
  708. 30:46x 0 a 0
  709. 30:48así que si abrimos la consola aquí
  710. 30:50podemos ver que el segundo resultado fue
  711. 30:52de 0 también podemos tener operaciones
  712. 30:55en las cuales el resultado es negativo
  713. 30:58vamos a ver menos 5 por 6 bien aquí
  714. 31:02tenemos esto menos 5 por 6 debería ser
  715. 31:04menos 30 asignamos ese resultado la
  716. 31:07variable producto y la mostramos
  717. 31:11aquí podemos ver los -30 es el tercer
  718. 31:14valor que mostramos en la consola el
  719. 31:17resultado del producto el signo correcto
  720. 31:20se va a conservar dependiendo de las
  721. 31:21operaciones matemáticas que correspondan
  722. 31:24aquí puedes verlo el tercer número que
  723. 31:26tenemos aquí es 30 que es este número el
  724. 31:30resultado de este producto de dos
  725. 31:32números negativos es positivo genial ya
  726. 31:35sabes cómo multiplicar dos números en
  727. 31:37javascript
  728. 31:42y finalmente para cubrir las cuatro
  729. 31:44operaciones aritméticas básicas veamos
  730. 31:47cómo puedes dividir un número entre otro
  731. 31:49en javascript bien primero vamos a
  732. 31:52definir la variable consciente y le
  733. 31:55vamos a asignar el resultado de una
  734. 31:57división así que vamos a dividir los
  735. 32:00números 20 y 220 entre 2 el resultado es
  736. 32:04díaz y este es el valor que vamos a
  737. 32:06guardar en la variable cociente con su
  738. 32:09punto loc
  739. 32:11consciente vamos a mostrar este
  740. 32:13resultado vemos que es un número entero
  741. 32:15r el valor es 10 bien luego podemos
  742. 32:19actualizar el valor de ese cociente
  743. 32:21digamos que el resultado no es un número
  744. 32:23entero sino un número decimal también
  745. 32:26podemos manejar este caso en javascript
  746. 32:28podemos dividir 17 entre 31 y mostrar
  747. 32:32ese resultado consciente aquí puedes ver
  748. 32:35que el resultado tiene muchos muchos
  749. 32:38muchos decimales para poder representar
  750. 32:39esa fracción pero el número de decimales
  751. 32:42es finito porque la computadora puede
  752. 32:45guardar un número finito de decimales el
  753. 32:48número final es el resultado de
  754. 32:50redondear una secuencia de números que
  755. 32:53estaría por acá ese no pero no es
  756. 32:56exactamente este que tenemos acá esta es
  757. 32:58una aproximación y finalmente vamos a
  758. 33:01ver este caso que seguro que te debes
  759. 33:03estar preguntando qué va a pasar si
  760. 33:05intentamos dividir entre 0 lo cual no
  761. 33:08está definido matemáticamente vamos a
  762. 33:11tener algo que es ciertamente inesperado
  763. 33:15lenguaje de programación es algo que sea
  764. 33:17tan intuitivo uno pensaría inicialmente
  765. 33:20que habría un error pero vamos a ver
  766. 33:22cuando vemos el valor que se ha asignado
  767. 33:25a la variable cociente vemos infinity
  768. 33:28inferir significa infinito equivalente
  769. 33:32infinito en español porque estamos
  770. 33:35dividiendo entre 0 entonces
  771. 33:36jobsket en vez de dar un error generar
  772. 33:39un error retorna este valor que
  773. 33:41representa el infinito
  774. 33:47también puedes crear números decimales
  775. 33:50en javascript y ellos van a ser muy
  776. 33:53útiles para representar este tipo de
  777. 33:55número de nuestro programa veamos un
  778. 33:58ejemplo podemos definir una variable que
  779. 34:01se llame mi número decimal y para crear
  780. 34:04el número decimales en el programa
  781. 34:06simplemente escribes tu número con un
  782. 34:09punto ese punto que separa la parte
  783. 34:12entera de la parte decimal del número
  784. 34:15nos dice inmediatamente que estamos
  785. 34:18trabajando con un número decimal en el
  786. 34:20programa veamos un ejemplo con más
  787. 34:22contexto por ejemplo quisiera
  788. 34:24representar un peso en un programa
  789. 34:27digamos 78 puntos 34 kilos ese peso lo
  790. 34:32puede representar usando un número
  791. 34:34decimal
  792. 34:35inmediatamente cuando veas el punto aquí
  793. 34:37separando la parte entera de la parte
  794. 34:39decimal estás trabajando con un número
  795. 34:42decimal en javascript
  796. 34:44bien ya sabes cómo crear números
  797. 34:46decimales en javascript ahora veamos
  798. 34:49cómo puedes realizar las operaciones
  799. 34:51aritméticas básicas con estos valores
  800. 34:58también puedes operar con los números
  801. 35:00decimales de igual forma que opera o
  802. 35:03realiza operaciones aritméticas con los
  803. 35:05números enteros
  804. 35:06veamos cómo puedes multiplicar dos
  805. 35:08números decimales en javascript
  806. 35:10vamos a definir o declarar nuestra
  807. 35:12variable y multiplicamos por ejemplo 3.4
  808. 35:16x 10.4
  809. 35:18veamos el resultado de este producto
  810. 35:20vamos a mostrarlo en la consola aquí
  811. 35:23podemos ver el resultado
  812. 35:2535.36 es el resultado de este producto
  813. 35:29multiplicamos dos valores decimales y el
  814. 35:31resultado es un número decimal ahora
  815. 35:34podemos actualizar ese variable para
  816. 35:36hacer distintos tipos de operaciones
  817. 35:38para que veas cómo podemos operar con
  818. 35:41este tipo de datos podemos multiplicar
  819. 35:44por ejemplo un número decimal por un
  820. 35:46número entero 2.4 por 4 y eso también
  821. 35:50nos va a retornar un número décima aquí
  822. 35:54podemos ver que el resultado es 9.6
  823. 35:57vamos a ir ir comentando estas líneas
  824. 36:00para sólo mostrar el producto que
  825. 36:03estamos mostrando en el momento con el
  826. 36:05que estamos trabajando
  827. 36:07podemos invertir el orden también en el
  828. 36:09primer factor podría ser un número
  829. 36:11entero y el segundo un número decimal y
  830. 36:14así mostramos el producto en este caso
  831. 36:18podemos ver el redondeo que ocurre este
  832. 36:21producto no se puede representar como un
  833. 36:24número decimal con finitos decimales o
  834. 36:27la computadora tiene que aproximar ese
  835. 36:29valor entonces como no lo puede
  836. 36:31representar 100% de forma exacta lo
  837. 36:34representa con cierto número de
  838. 36:36decimales y en este caso vemos que es un
  839. 36:374 seguido en muchos ceros y un 6 al
  840. 36:40final en teoría el resultado si lo
  841. 36:43hacemos manualmente sería
  842. 36:4553.4 pero la computadora no puede
  843. 36:48representarlo de forma exacta así que
  844. 36:50representa una aproximación
  845. 36:52también podemos multiplicar por cero
  846. 36:56digamos que queremos multiplicar 3.6 por
  847. 36:58cero esta operación es completamente
  848. 37:01válida así que el producto si comentamos
  849. 37:04aquí esto y sólo ejecutamos esta línea
  850. 37:07sería 0 también el 0 se puede
  851. 37:10representar como un número décima
  852. 37:13es equivalente en este caso son dos
  853. 37:15tipos distintos de datos pero el valor
  854. 37:18es el mismo
  855. 37:20y también podemos tener un producto que
  856. 37:23sea un resultado negativo 5.7 x 3.4
  857. 37:31aquí comentamos esta línea y finalmente
  858. 37:34aquí tenemos aquí tenemos el resultado
  859. 37:36menos 19.38 negativo porque uno de los
  860. 37:40factores es negativos
  861. 37:47otra operación aritmética que podemos
  862. 37:49realizar con los números decimales en
  863. 37:51javascript es dividir los números
  864. 37:53decimales así que vamos a ver cómo
  865. 37:55puedes hacerlo tenemos un cociente de
  866. 37:57números decimales y aquí podemos dividir
  867. 38:00por ejemplo 5.0 entre 2.0
  868. 38:04ahora puedes pensar algo específico
  869. 38:07porque yo estaré interesado o interesada
  870. 38:10en representar este valor con un punto
  871. 38:13cero si en verdad no existe el decimal
  872. 38:15no hay un decimal yo puedo escribir esto
  873. 38:17así como un 2 y el resultado es
  874. 38:20exactamente el mismo tienes razón pero
  875. 38:22la diferencia del tipo de datos que
  876. 38:24estamos usando por ejemplo aquí este
  877. 38:27dato se representa como un número
  878. 38:28decimal un flow pero este dato es un
  879. 38:32entero
  880. 38:33entonces se representan de forma
  881. 38:35distinta en el programa vamos a ver si
  882. 38:38cambiar ese tipo de datos cambia algo en
  883. 38:41el resultado vamos a mostrar el cociente
  884. 38:43vemos que si dividimos los dos flautas
  885. 38:47los dos números decimales el resultado
  886. 38:49es 2.5
  887. 38:50pero si dividimos los dos enteros en
  888. 38:53resultados también es 2.5 así que en
  889. 38:56este caso es equivalente
  890. 38:57ahora actualizamos esta variable al
  891. 39:00cociente entre dos puntos 3 y 6.7
  892. 39:04estamos dividiendo dos números decimales
  893. 39:06que seguramente van a resultar en un
  894. 39:09número decimal
  895. 39:11redondeado porque no va a poder ser
  896. 39:13representado de forma exacta vamos a ver
  897. 39:17comentó esta línea para que solo se
  898. 39:20muestre esta línea aquí podemos ver la
  899. 39:23aproximación de este número es un número
  900. 39:25con muchísimos muchísimos decimales y
  901. 39:28este 3 seguramente es el resultado de un
  902. 39:30redondeo también podemos intentar ver
  903. 39:33qué ocurre si dividimos un número
  904. 39:35decimal entre 0.0
  905. 39:38cambiará en algo el resultado vamos a
  906. 39:41ver recuerda que cuando deberíamos entre
  907. 39:430 el valor asignado era infinito o
  908. 39:46infinito y no no hay cambio el valor es
  909. 39:49infinito también las reglas de los
  910. 39:52signos se van a preservar en la división
  911. 39:59ahora veamos cómo puedes obtener el
  912. 40:01resto de una división en ya ves que esta
  913. 40:04operación es particularmente importante
  914. 40:06cuando queremos verificar si un número
  915. 40:08es par o impar vemos aquí una variable
  916. 40:12que se va a denominar resto como podemos
  917. 40:15obtener el resto de dividir 15 entre 5
  918. 40:19bueno con este operador el símbolo de
  919. 40:21porcentaje es el operador que nos
  920. 40:24permite obtener el resto de la división
  921. 40:27como vamos a obtener ese resto si
  922. 40:30dividimos 15 entre 5 el cociente estrés
  923. 40:33porque 3 por 5 es 15 pero el resto que
  924. 40:37es lo que nos interesa en esta operación
  925. 40:39va a ser cero porque nos sobró nada en
  926. 40:42la división entonces el resultado
  927. 40:44debería ser cero vamos a ver una consola
  928. 40:48aquí vemos el valor cero
  929. 40:51vamos a actualizar esta variable para
  930. 40:54obtener todos los restos de 5 dividido
  931. 40:56entre 1 entre 2 entre 3 entre 4 y entre
  932. 40:595 y vemos cómo se va actualizando ese
  933. 41:02valor 5 entre
  934. 41:0515 y aquí lo tenemos vamos a comentar
  935. 41:08esta línea aquí tenemos el ser ahora si
  936. 41:12actualizamos esto a 5 entre 2 y buscamos
  937. 41:16el resto 5 entre 2 es 2
  938. 41:20y del resto tendríamos uno si no
  939. 41:23queremos empezar a agregar decimales el
  940. 41:25resultado debe en realidad sería 2.5
  941. 41:28pero si sólo queremos llegar a la parte
  942. 41:31entera del cociente el resto sería 1 y
  943. 41:34esto lo que tenemos aquí entre 3 el
  944. 41:38resto sería dos porque el cociente sería
  945. 41:421 y nos faltarían todos para llegar a 5
  946. 41:45entre 4 el resto sería 1 porque nos
  947. 41:49faltaría 1 para llegar a 5 y en 35 el
  948. 41:52resto sería cero porque el cociente
  949. 41:55sería 1
  950. 42:01bien ya cubrimos los tipos de datos
  951. 42:03principales sabes cómo realizar las
  952. 42:06operaciones aritméticas con números
  953. 42:07enteros y decimales así que vamos a ver
  954. 42:10cómo puedes empezar a modificar el valor
  955. 42:13de una variable ya busquets vamos a ver
  956. 42:16una alternativa que no es asignar un
  957. 42:18nuevo valor directamente sino
  958. 42:20incrementar su valor actual vamos a
  959. 42:23definir una variable que se va a llamar
  960. 42:25libros comprados
  961. 42:27representa la cantidad de libros
  962. 42:29comprados por una persona en cierto
  963. 42:31periodo de tiempo digamos que la persona
  964. 42:33de verdad le gusta leer y compro 105
  965. 42:36libros en ese periodo aquí tenemos el
  966. 42:39valor 105 bien ya sabemos que
  967. 42:43inicialmente su valor es 105
  968. 42:45nuestra primera opción para incrementar
  969. 42:47ese valor a 106 en caso de que la
  970. 42:50persona decida comprar otro libro nuevo
  971. 42:52es esta que tenemos aquí esta es la
  972. 42:55primera opción vamos a colocar opción 1
  973. 43:00podemos escribir el nombre de la
  974. 43:02variable y asignarle su mismo valor + 1
  975. 43:07qué es lo que hace esta línea esta línea
  976. 43:10se evalúa primero de este lado lado
  977. 43:13derecho se analiza que nosotros decimos
  978. 43:16técnicamente se evalúa cuando resulta en
  979. 43:19un valor específico se evalúa ese lado
  980. 43:21derecho la expresión y ese valor
  981. 43:24resultante se asigna a esta variable
  982. 43:28aquí estamos tomando el valor actual de
  983. 43:30la variable que 105 le estamos sumando 1
  984. 43:34y a ese valor lo estamos asignando con
  985. 43:37este operador a la variable libros
  986. 43:39comprados son independientes ok primero
  987. 43:43tomamos el valor aquí el valor actual y
  988. 43:45luego se asigna a esta variable luego de
  989. 43:49hacer esto incrementar la en 1 vamos a
  990. 43:52mostrar su valor aquí puedes ver
  991. 43:55inicialmente el valor era 105 pero luego
  992. 43:59de esta línea donde incrementamos el
  993. 44:01valor de libros comprados y lo mostramos
  994. 44:03nuevamente tenemos 106 bien ya podemos
  995. 44:06incrementar la variable el valor de la
  996. 44:08variable pero hay otra opción que es
  997. 44:11todavía más concisa y es en general la
  998. 44:14que nosotros tendemos a usar en
  999. 44:16javascript cuando queremos incrementar
  1000. 44:18el valor en uno solo funciona para
  1001. 44:20incrementarlo en uno que que es lo que
  1002. 44:23usamos para incrementar en uno
  1003. 44:25escribimos el nombre de la variable y en
  1004. 44:27lugar de escribir esta línea completa lo
  1005. 44:30que hacemos es escribir dos signos más
  1006. 44:32seguido de un punto y coma
  1007. 44:35estos dos signos más lo que hacen es
  1008. 44:37incrementar el valor de la variable en
  1009. 44:39uno y lo asignan a la variable
  1010. 44:42toma el valor actual le suma 1 y lo
  1011. 44:45asigna a la variable básicamente esto de
  1012. 44:48forma más compacto y conciso y más fácil
  1013. 44:50de leer luego de hacer esto podemos
  1014. 44:54mostrar el valor en la consola
  1015. 44:57y lo vemos aquí
  1016. 44:59305 se incrementó a 106 con esta línea y
  1017. 45:03luego se incrementó a 107 con esta línea
  1018. 45:06ambas líneas tuvieron el mismo efecto
  1019. 45:09sobre la variable incrementaron su valor
  1020. 45:11actual el 1 genial ya sabes cómo
  1021. 45:15incrementar el valor de una variable en
  1022. 45:171 ya estás avanzando bastante en
  1023. 45:19javascript ya sabes cómo trabajar con
  1024. 45:21variables y operadores
  1025. 45:27también puedes reducir el valor de una
  1026. 45:30variable en javascript
  1027. 45:32veamos cómo puedes reducir ese valor el
  1028. 45:34valor actual de una variable en uno
  1029. 45:37vamos a crear una variable llamada
  1030. 45:40número de estudiantes recuerda que no
  1031. 45:44incluimos el acento aquí para no
  1032. 45:46introducir caracteres que no sean
  1033. 45:48estándar en inglés esta variable va a
  1034. 45:52tener como valor
  1035. 45:53256 digamos que estamos creando un curso
  1036. 45:57y este curso tiene 256 estudiantes
  1037. 46:00registrados
  1038. 46:01vamos a mostrar ese valor en la consola
  1039. 46:04aquí lo podemos ver
  1040. 46:06256 como podemos reducir el valor actual
  1041. 46:10de esta variable en 1
  1042. 46:13lo que tenemos que hacer es asignar el
  1043. 46:16nuevo valor a la variable así que
  1044. 46:18escribimos el nombre de la variable
  1045. 46:20seguido del signo igual y escribimos
  1046. 46:23esto que tenemos aquí que es muy
  1047. 46:25parecido a como incrementamos el valor
  1048. 46:28de la variable en uno tomamos el valor
  1049. 46:31actual de la variable le restamos uno y
  1050. 46:35ese resultado lo asignamos a la variable
  1051. 46:39nuevamente
  1052. 46:40digamos que una estudiante se retiró
  1053. 46:44ahora veamos el valor actualizado
  1054. 46:48abramos la consola y aquí lo vemos de
  1055. 46:51256 pasamos a tener
  1056. 46:54255 estudiantes en el curso pero hay una
  1057. 46:57forma mucho más concisa de escribir esta
  1058. 47:01misma línea
  1059. 47:02simplemente escribimos el nombre de la
  1060. 47:04variable seguido de dos signos menos
  1061. 47:10para incrementarla y usábamos dos signos
  1062. 47:13más ahora usamos dos signos menos esto
  1063. 47:18le dice javascript que queremos reducir
  1064. 47:20el valor de la variable en uno y asignar
  1065. 47:24ese resultado a la misma variable vamos
  1066. 47:27a ver el valor actualizado a ver si el
  1067. 47:30efecto es exactamente el mismo y aquí lo
  1068. 47:33podemos ver
  1069. 47:34256 se reduce 255 por esta línea y luego
  1070. 47:39esta línea hace el mismo efecto reduce
  1071. 47:43en 1 el valor actual a
  1072. 47:45254 genial ya sabes cómo reducir el
  1073. 47:49valor de una variable en 1
  1074. 47:55bien ya podemos incrementar el valor de
  1075. 47:58nuestra variable en 1 y reducirla en 1
  1076. 48:01pero qué pasa si nosotros necesitamos
  1077. 48:04reducirla o incrementar la en otro valor
  1078. 48:07que no sea 1
  1079. 48:09en este caso vamos a definir una
  1080. 48:11variable llamada a con un valor inicial
  1081. 48:1323
  1082. 48:15digamos que queremos incrementar el
  1083. 48:18valor de a en 5 en vez de 23 ahora
  1084. 48:22queremos que el valor sea 28 si
  1085. 48:25escribimos esta línea como normalmente
  1086. 48:27la hemos escrito hasta este momento
  1087. 48:29escribiríamos algo así
  1088. 48:32es igual a 5
  1089. 48:35estamos tomando el valor actual de a le
  1090. 48:38estamos sumando un valor y el resultado
  1091. 48:40lo estamos asignando a la variable esto
  1092. 48:44va a funcionar si nosotros mostramos el
  1093. 48:46valor de a en la pantalla vemos que el
  1094. 48:49valor es 28 el valor es 28 porque
  1095. 48:53funcionó a esta línea de actuar y pero
  1096. 48:56hay una forma más concisa mucho más
  1097. 48:58concisa de escribirla que es la que
  1098. 49:00normalmente usamos en lugar de escribir
  1099. 49:03todo esto lo que hacemos es tomamos la
  1100. 49:05variable y tomamos el valor y todo esto
  1101. 49:10lo vamos a eliminar
  1102. 49:11acuerdate variable y valor y luego
  1103. 49:14decimos que es lo que quiero hacerle esa
  1104. 49:16variable
  1105. 49:17quiero aumentarla en 5 y luego quiero
  1106. 49:21asignarle ese valor a la variable el
  1107. 49:24resultado
  1108. 49:25el operador de asignación compuesta que
  1109. 49:27usamos para una suma para adición
  1110. 49:30esta sintaxis lo que nos dice es
  1111. 49:33añade 5 al valor actual y asignarlo a
  1112. 49:37esa variable es equivalente a hacer esto
  1113. 49:41es igual a más 5
  1114. 49:44pero como puedes ver es más concisa y
  1115. 49:46más fácil de leer vamos a borrar esta
  1116. 49:49línea y hoy confirmemos que el resultado
  1117. 49:52es el mismo el resultado es el mismo 28
  1118. 49:56se puede sumar cualquier cantidad usando
  1119. 49:59está sintaxis no necesariamente 5 o un
  1120. 50:02número entero veamos un ejemplo un
  1121. 50:04poquito más elaborado si tenemos un
  1122. 50:06total de ventas digamos que un local
  1123. 50:08específico vendió 13 mil 567 punto 34
  1124. 50:12dólares en un día
  1125. 50:14podemos mostrar ese valor y luego
  1126. 50:17mostrar el valor actualizado de las
  1127. 50:19ventas digamos que tuvimos una venta de
  1128. 50:22último minuto que queremos agregar al
  1129. 50:25total lo que hacemos es escribir el
  1130. 50:28nombre de la variable seguido de el
  1131. 50:31operador que vimos aquí lo podemos
  1132. 50:33separar con una línea para verlo mejor
  1133. 50:34el nombre de la variable seguido del
  1134. 50:37operador y luego el monto que queremos
  1135. 50:40agregar al total por ejemplo tuvimos una
  1136. 50:42venta buenísima de 345 puntos 67 dólares
  1137. 50:46a último minuto muy bueno para el
  1138. 50:49negocio entonces lo que hacemos lo que
  1139. 50:51podemos hacer para ver que el resultado
  1140. 50:53se haya actualizado es mostrarlo en la
  1141. 50:56consola la variable y ese valor si
  1142. 50:59abrimos la consola podemos ver el
  1143. 51:02resultado que actualizado sumamos este
  1144. 51:04monto este valor al valor inicial con
  1145. 51:08este operador más igual estamos
  1146. 51:10incrementando el valor de la variable en
  1147. 51:13este valor que tenemos acá
  1148. 51:20así como podemos incrementar el valor de
  1149. 51:22una variable en otro valor específico
  1150. 51:24podemos reducir el valor de una variable
  1151. 51:28ya vas a ver cómo lo vamos a hacer aquí
  1152. 51:30tenemos un ejemplo con la variable b
  1153. 51:33inicialmente su valor es 23 pero
  1154. 51:35queremos reducir ese valor en 3 como lo
  1155. 51:39podemos hacer bueno con la sintaxis
  1156. 51:41anterior la normal la que hemos usado
  1157. 51:44hasta ahora de asignar un valor a una
  1158. 51:46variable podemos usar esto que tenemos
  1159. 51:48acá el valor actual debe menos 3 y
  1160. 51:53asignamos ese resultado a b si mostramos
  1161. 51:56el resultado el valor actualizado de la
  1162. 51:59variable p podemos verlo aquí en la
  1163. 52:01consola
  1164. 52:02el resultado es 20 que es exactamente 23
  1165. 52:05menos 3 esto funciona pero tenemos una
  1166. 52:08forma más concisa de revisar esta
  1167. 52:11operación de escribir la nuestro código
  1168. 52:13tomamos el nombre de la variable y el
  1169. 52:16valor con el cual queremos actualizar el
  1170. 52:19valor actual de saberí variable
  1171. 52:21estos tres elementos el operador de
  1172. 52:23asignación el nombre de la variable y el
  1173. 52:26signo menos los vamos a borrar y luego
  1174. 52:31vamos a escribir el signo menos y el
  1175. 52:33signo igual eso nos dice que vamos a
  1176. 52:36restar el valor 3 y luego vamos a
  1177. 52:39asignar ese resultado a la misma
  1178. 52:41variable p
  1179. 52:42básicamente estamos solo reduciendo el
  1180. 52:45valor de b en 3
  1181. 52:47nuevamente mostramos el resultado en la
  1182. 52:49consola aquí podemos ver el valor 2020
  1183. 52:53que es exactamente lo que esperábamos es
  1184. 52:55equivalente a la sintaxis anterior se
  1185. 52:58puede restar cualquier cantidad
  1186. 53:01veamos un ejemplo similar al del tema
  1187. 53:04anterior en este caso en vez del total
  1188. 53:06de ventas para estar un poco más felices
  1189. 53:08vamos a decir que tenemos un total de
  1190. 53:11deudas pero ya vas a ver por qué digo
  1191. 53:12felices digamos que tienes una deuda de
  1192. 53:152 mil 446 dólares cómo podemos reducir
  1193. 53:19esa deuda en
  1194. 53:22345 porque digamos que realizaste un
  1195. 53:24trabajo extra y pudiste pagar parte de
  1196. 53:27esa deuda lo que hacemos es escribir
  1197. 53:30menos igual y 345 el monto por el cual
  1198. 53:36queremos reducir la deuda total vamos a
  1199. 53:39mostrar el valor de edad de deuda antes
  1200. 53:41de hacer esa actualización y el valor
  1201. 53:43después de haber hecho la actualización
  1202. 53:45siempre recuerda colocar el punto y la
  1203. 53:48coma al final de estas líneas
  1204. 53:51vamos a ver el resultado en la consola
  1205. 53:54inicialmente vemos
  1206. 53:562.446 que es el valor inicial de la
  1207. 53:58total de la deuda y finalmente después
  1208. 54:01de haber hecho esta actualización aquí
  1209. 54:04mostramos el valor 2101 así que esta
  1210. 54:08sintaxis funciona como esperábamos
  1211. 54:09cuando estés listo lista continuemos con
  1212. 54:12la siguiente parte del curso
  1213. 54:20podemos usar la misma sintaxis de
  1214. 54:22asignación compuesta para realizar
  1215. 54:24también una multiplicación con el valor
  1216. 54:27actual de una variable por ejemplo vamos
  1217. 54:29a definir una variable ce con el valor
  1218. 54:32inicial 23 y vamos a multiplicar ese
  1219. 54:35valor inicial por 2 esto es lo que
  1220. 54:38tendríamos inicialmente si no usáramos
  1221. 54:40el nuevo operador
  1222. 54:42tomaríamos el valor inicial de ce el
  1223. 54:45valor actual de cee lo multiplicamos por
  1224. 54:472 y a ese resultado de esta expresión lo
  1225. 54:51asignaremos a la variable ce nuevamente
  1226. 54:54si mostramos el valor actualizado en la
  1227. 54:58consola
  1228. 54:59podemos ver este resultado 46 pero como
  1229. 55:02podemos escribir esto de forma más
  1230. 55:04concisa igual como hemos hecho hasta
  1231. 55:07ahora primero escribimos el operador que
  1232. 55:09representa la operación que queremos
  1233. 55:11realizar y luego asignamos ese resultado
  1234. 55:14a la variable aquí estamos diciendo toma
  1235. 55:17el valor actual de la variable se
  1236. 55:18multiplica por dos y luego asignas el
  1237. 55:21valor a la variable
  1238. 55:23si mostramos resultado en la consola
  1239. 55:26podemos ver el valor 46 que es el doble
  1240. 55:29que 23 vamos a ver un ejemplo con más
  1241. 55:32contexto también por ejemplo si tenemos
  1242. 55:35un salario digamos que ganamos 45 mil
  1243. 55:38dólares al año no suena mal no entonces
  1244. 55:42vamos a mostrar ese salario antes del
  1245. 55:45cambio y digamos que ya nos va a
  1246. 55:47quintuplicar nuestro salario lo podemos
  1247. 55:50hacer con este operador multiplicamos el
  1248. 55:52salario por 5 y luego asignamos este
  1249. 55:56resultado la variable salario
  1250. 55:59vamos a ver el resultado en la consola
  1251. 56:02vemos el valor inicial del salario
  1252. 56:0445.000 y el valor actualizado que es 225
  1253. 56:08menos el efecto del operador fue
  1254. 56:11esperado
  1255. 56:15y ahora finalmente para cubrir las
  1256. 56:18cuatro operaciones principales que
  1257. 56:20podemos realizar con asignación
  1258. 56:22compuesto veamos la división tenemos la
  1259. 56:25variable t a la cual vamos a asignarle
  1260. 56:28el valor 39 y que queremos hacer con esa
  1261. 56:31variable queremos dividirla entre 3 el
  1262. 56:34resultado sería 13 si mostramos el
  1263. 56:37resultado en la consola podemos ver el
  1264. 56:40número 13 pero la forma más concisa de
  1265. 56:43escribir esta operación sería borrar
  1266. 56:45estos tres elementos dividimos el valor
  1267. 56:48de de entre 3 y lo asignamos nuevamente
  1268. 56:51a 3
  1269. 56:53ahora si vemos el resultado en la
  1270. 56:54consola
  1271. 56:56vemos el valor 13 así que esto es
  1272. 56:58equivalente a la línea que teníamos
  1273. 56:59previamente
  1274. 57:01como otro ejemplo vamos a decir que
  1275. 57:04tenemos lo contrario del ejemplo
  1276. 57:06anterior estamos ganando 45.000 dólares
  1277. 57:08anuales y hay que hacer recorte del
  1278. 57:11presupuesto en la empresa o en la
  1279. 57:13organización donde trabajamos y el
  1280. 57:15salario se reduce a la mitad aquí
  1281. 57:18podemos ver los dos valores de 45.000
  1282. 57:21dólares vamos a pasar a ganar 22 mil 500
  1283. 57:23dólares
  1284. 57:24así que ya sabes cómo puedes dividir el
  1285. 57:28valor de una variable entre otro número
  1286. 57:31usando este operador que es más compacto
  1287. 57:34ya sabes cómo realizar las cuatro
  1288. 57:36operaciones principales que podemos usar
  1289. 57:38con la asignación compuesta ahora vamos
  1290. 57:41a comenzar a trabajar con cadenas de
  1291. 57:43caracteres así que te veo en el próximo
  1292. 57:45tema
  1293. 57:51vamos a trabajar con las cadenas de
  1294. 57:53caracteres usamos cadenas de caracteres
  1295. 57:55para representar texto en nuestro código
  1296. 57:58por ejemplo si queremos representar un
  1297. 58:01nombre
  1298. 58:02podemos crear una cadena de caracteres
  1299. 58:05que tenemos acá y la podemos asignar a
  1300. 58:08una variable para poder usarla en
  1301. 58:11nuestro programa las cadenas de
  1302. 58:13caracteres se definen o se crean en el
  1303. 58:15programa rodeando las con comillas éstas
  1304. 58:18pueden ser comillas dobles o comillas
  1305. 58:21simples ambas funciones hay una ligera
  1306. 58:24diferencia o restricción que tenemos
  1307. 58:26cuando usamos una versión a otra pero ya
  1308. 58:28lo vas a ver en tan solo unos minutos
  1309. 58:30cuando lleguemos a esa parte del tema y
  1310. 58:33todos los caracteres que estén en el
  1311. 58:35medio dentro de las comillas son
  1312. 58:38considerados parte de la cadena de
  1313. 58:40caracteres incluyendo los espacios este
  1314. 58:44espacio tiene un lugar específico en la
  1315. 58:46cadena y se considera como otro carácter
  1316. 58:49también cualquier símbolo que nosotros
  1317. 58:52podamos escribir con el teclado también
  1318. 58:54se considera un carácter
  1319. 58:57cualquier letra cualquier número
  1320. 58:59cualquier símbolo por ejemplo un guión
  1321. 59:02bajo suma resta pierde sus propiedades
  1322. 59:05especiales en el lenguaje por ejemplo
  1323. 59:08aquí no tenemos operador suma ni para
  1324. 59:10los restos sino que son sólo símbolos
  1325. 59:12podemos definir otra aquí que diga
  1326. 59:14apellido alan turing aunque ya sabes
  1327. 59:18cómo crear y definir cadenas de
  1328. 59:20caracteres recuerda que es prácticamente
  1329. 59:23equivalente definirlas con comillas
  1330. 59:25dobles o comillas simples lo importante
  1331. 59:27es que seas consistente no puedes
  1332. 59:30comenzar con una comilla simple y
  1333. 59:32terminar con una comilla doble porque
  1334. 59:35vas a tener un error por ejemplo aquí se
  1335. 59:37han terminado string literal eso
  1336. 59:40significa en español literal de cadena
  1337. 59:42de caracteres quien no ha terminado aquí
  1338. 59:44podemos ver el mensaje del error este es
  1339. 59:47el mensaje que vamos a obtener esta
  1340. 59:50parte nos dice el tipo de error que está
  1341. 59:52ocurriendo en este caso un error de
  1342. 59:54sintaxis
  1343. 59:55sintaxis significa sintaxis y error
  1344. 59:58significa error esta parte nos describe
  1345. 1:00:02qué es lo que está pasando aunque
  1346. 1:00:05pereira significa que no ha culminado no
  1347. 1:00:07ha sido cerrada una constante de cadenas
  1348. 1:00:10de caracteres constante es constante y
  1349. 1:00:13string es cadenas de caracteres la
  1350. 1:00:15cadena no ha sido terminada y aquí nos
  1351. 1:00:19muestra con esta flechita cuál es la
  1352. 1:00:21línea que está presentando el problema
  1353. 1:00:23en línea 2 donde definimos apellidos y
  1354. 1:00:26aquí tenemos con un pequeño indicador
  1355. 1:00:28que nos dice que aquí hay un problema en
  1356. 1:00:30esta cadena porque la cadena no ha sido
  1357. 1:00:33terminada no ha terminado inicia aquí
  1358. 1:00:35con la comida simple pero no termina
  1359. 1:00:38porque no tenemos otra comilla simple
  1360. 1:00:41que la cierre las comillas dobles no se
  1361. 1:00:43consideran como que están cerrando la
  1362. 1:00:45cadena porque hay que ser consistente
  1363. 1:00:47con sus comillas simples o comillas
  1364. 1:00:50dobles nunca mezclarlas cambiamos la
  1365. 1:00:52comida y vemos que el error que estaba
  1366. 1:00:54aquí en rojo desaparece
  1367. 1:01:01en el tema anterior aprendiste que es
  1368. 1:01:03prácticamente equivalente definir una
  1369. 1:01:06cadena de caracteres con comillas dobles
  1370. 1:01:08o comillas simples pero hay un solo caso
  1371. 1:01:11para cada una en el que pueda ser
  1372. 1:01:13problemático cuál comilla escoger
  1373. 1:01:16vamos a ver si definimos una variable
  1374. 1:01:19llamada mi cadena y le asignamos una
  1375. 1:01:21cadena de caracteres con comillas dobles
  1376. 1:01:24vamos a escribir esta cadena
  1377. 1:01:27soy una cadena de caracteres con
  1378. 1:01:31comillas aquí ya inmediatamente puedes
  1379. 1:01:34ver que se nos presenta un error porque
  1380. 1:01:38porque estamos intentando incluir dentro
  1381. 1:01:40de la cadena unas comillas dobles que
  1382. 1:01:44son exactamente el mismo tipo de
  1383. 1:01:45comillas con el que empezamos la cadena
  1384. 1:01:48y la cerramos
  1385. 1:01:49esto no está permitido porque porque
  1386. 1:01:52javascript lo que interpreta es que la
  1387. 1:01:55cadena comienza aquí en las primeras
  1388. 1:01:57comillas y cierra o termina en las
  1389. 1:02:00segundas comillas que consigue y esas no
  1390. 1:02:03necesariamente son las comillas que
  1391. 1:02:04nosotros queremos si son del mismo tipo
  1392. 1:02:07esta parte del texto no se cuenta como
  1393. 1:02:10parte de la cadena de caracteres cómo
  1394. 1:02:13podemos solucionar este problema hay
  1395. 1:02:15varias formas pero la primera que vamos
  1396. 1:02:18a ver en este caso va a ser usar un
  1397. 1:02:21símbolo que se usa para escapar comillas
  1398. 1:02:24en cadenas escapar es una traducción
  1399. 1:02:28literal en inglés se dice es skype
  1400. 1:02:31en el contexto real sería como omitir
  1401. 1:02:33las comillas como considerar las partes
  1402. 1:02:36de la cadena y no como un carácter
  1403. 1:02:38especial que tiene una función dentro de
  1404. 1:02:40la cadena sino que es un carácter más en
  1405. 1:02:42la cadena de caracteres eso lo logramos
  1406. 1:02:44con la barra invertida esta barra que
  1407. 1:02:47tenemos aquí que va de izquierda a
  1408. 1:02:50derecha
  1409. 1:02:51solo tenemos que colocar una barra
  1410. 1:02:53invertida antes de cada una de las
  1411. 1:02:56comillas que queremos que se considere
  1412. 1:02:58parte de la cadena si nosotros tratamos
  1413. 1:03:02de mostrar la cadena en la consola vas a
  1414. 1:03:05ver cómo se muestra soy una cadena de
  1415. 1:03:09caracteres con comillas y puedes ver que
  1416. 1:03:11las comillas fueron incluidas bien ya
  1417. 1:03:14sabes cómo escapar las comillas en una
  1418. 1:03:16cadena con la barra invertida antes de
  1419. 1:03:19las comillas
  1420. 1:03:26también puedes definir cadenas de
  1421. 1:03:28caracteres con comillas simples vamos a
  1422. 1:03:31ver un ejemplo que nos va a permitir
  1423. 1:03:33escribir la cadena de una forma más
  1424. 1:03:36concisas vas a ver que va a ser mucho
  1425. 1:03:38más fácil de leer lo primero que vamos a
  1426. 1:03:40hacer es declarar una variable llamada
  1427. 1:03:42mimética y que va a ocurrir si yo trato
  1428. 1:03:45de asignarle una cadena de caracteres a
  1429. 1:03:47esta variable que contiene comillas
  1430. 1:03:50dobles y la defino con comillas dobles
  1431. 1:03:52va a pasar esto cuál es mi meta es
  1432. 1:03:54aprender a programar con freak o work
  1433. 1:03:57and si agregamos aquí las comillas
  1434. 1:04:00dobles como viste en el tema anterior
  1435. 1:04:02vamos a tener un error pero podemos
  1436. 1:04:04solucionarlo rápidamente con estas
  1437. 1:04:07barras que van a permitirnos escapar las
  1438. 1:04:10comillas dobles y nos va a permitir que
  1439. 1:04:13ellas aparezcan como parte de la cadena
  1440. 1:04:15pero esto hace que la cadena sea más
  1441. 1:04:17difícil de leer porque le estamos
  1442. 1:04:19agregando caracteres que en realidad no
  1443. 1:04:21van a mostrarse en el resultado cómo
  1444. 1:04:23podemos adaptar esto lo que necesitamos
  1445. 1:04:26hacer bueno lo que podemos hacer es
  1446. 1:04:28primero vamos a borrar estas barras
  1447. 1:04:31invertidas que ya no las vamos
  1448. 1:04:33y qué es lo que vamos a hacer en vez de
  1449. 1:04:35definir la cadena con comillas dobles
  1450. 1:04:38vamos a definirla con comillas simples
  1451. 1:04:40aquí las reemplazamos y vemos que el
  1452. 1:04:43error desapareció si usamos el otro tipo
  1453. 1:04:46de comillas para definir la cadena por
  1454. 1:04:48ejemplo comillas simples aquí podemos
  1455. 1:04:51usar las comillas dobles dentro de la
  1456. 1:04:53cadena eso sí está permitido en
  1457. 1:04:56javascript y de igual forma también
  1458. 1:04:58podemos definir la cadena con comillas
  1459. 1:05:00dobles y dentro de la cadena usar
  1460. 1:05:03comillas simples y ellas se van a
  1461. 1:05:06mostrar en el resultado veamos el
  1462. 1:05:09resultado con con su punto lo que vemos
  1463. 1:05:13aquí que tenemos nuestras comillas
  1464. 1:05:15simples cuál es tu meta aprender a
  1465. 1:05:17programar con free your cam vemos aquí
  1466. 1:05:19las comillas simples y también podemos
  1467. 1:05:21ver el resultado si cambiamos
  1468. 1:05:25esta combinación a comillas simples para
  1469. 1:05:27definir la cadena y comillas dobles
  1470. 1:05:29dentro de la cadena ahora aquí vemos las
  1471. 1:05:32comillas dobles rodeando la palabra
  1472. 1:05:34africor camps compara esta nueva versión
  1473. 1:05:37de la cadena con la versión anterior
  1474. 1:05:40vamos la barra invertida es mucho más
  1475. 1:05:42fácil de leer y todos los caracteres que
  1476. 1:05:44se van a mostrar son los que son parte
  1477. 1:05:46de la cadena genial ya sabes cómo
  1478. 1:05:48definir cadenas de caracteres con
  1479. 1:05:51comillas simples y dobles
  1480. 1:05:57ahora veamos algo que se denomina una
  1481. 1:05:59secuencia de escape tenemos varias
  1482. 1:06:03secuencias de escape que podemos usar en
  1483. 1:06:04javascript las secuencias de escape son
  1484. 1:06:07una combinación de caracteres que no se
  1485. 1:06:10representan a sí mismos en una cadena de
  1486. 1:06:13caracteres aquí tenemos una tabla que
  1487. 1:06:15nos muestra algunas de esas secuencias
  1488. 1:06:17de escape que podemos usar por ejemplo
  1489. 1:06:19cuando nosotros usamos una barra
  1490. 1:06:21invertida seguida de una letra n esa va
  1491. 1:06:25de invertir de la letra n no se van a
  1492. 1:06:27mostrar como tal en la cadena sino que
  1493. 1:06:30se van a traducir a una línea nueva en
  1494. 1:06:33la cadena o en el output en la
  1495. 1:06:34presentación de nuestro código vamos a
  1496. 1:06:37ver algunos ejemplos aquí tenemos lo que
  1497. 1:06:39he visto en los temas anteriores
  1498. 1:06:41comillas simples y comillas dobles si
  1499. 1:06:44queremos escribir una comida simple en
  1500. 1:06:46una cadena que está definida con
  1501. 1:06:48comillas simples tenemos que usar esta
  1502. 1:06:50combinación de caracteres esta secuencia
  1503. 1:06:52de escape una barra invertida seguida de
  1504. 1:06:55la comida simple lo mismo con la comilla
  1505. 1:06:58doble vamos a ver un ejemplo más sobre
  1506. 1:07:00este tema para empezar a practicar cómo
  1507. 1:07:02usar las secuencias de escape por
  1508. 1:07:04ejemplo si usamos con su blog y queremos
  1509. 1:07:07mostrar una cadena que diga
  1510. 1:07:11estoy aprendiendo
  1511. 1:07:13javascript si queremos que ya esté
  1512. 1:07:16rodeado por comillas dobles no vamos a
  1513. 1:07:19poder si no le agregamos una barra
  1514. 1:07:21invertida antes de la comida nos va a
  1515. 1:07:24dar un error una vez que agregamos esa
  1516. 1:07:26barra invertida ya estamos creando lo
  1517. 1:07:29que denominamos una secuencia de escape
  1518. 1:07:31exactamente lo que estamos viendo
  1519. 1:07:33ahorita si abrimos la consola aquí
  1520. 1:07:35podemos ver el resultado estoy
  1521. 1:07:37aprendiendo javascript y se muestran las
  1522. 1:07:39comillas dobles pero puedes ver que no
  1523. 1:07:42se muestra la barra invertida eso es
  1524. 1:07:44exactamente el principio de una
  1525. 1:07:45secuencia de escape no vas a ver la
  1526. 1:07:48barra invertida sino que vas a ver el
  1527. 1:07:50carácter que se interpreta de esa
  1528. 1:07:52secuencia de caracteres que es una
  1529. 1:07:53comilla doble ahora lo mismo aplica para
  1530. 1:07:56la comillas simple que ya lo vimos en el
  1531. 1:07:58tema anterior vamos a ver ahora cómo
  1532. 1:08:00puedes incluir una barra invertida para
  1533. 1:08:04incluir una barra invertida en la cadena
  1534. 1:08:07de caracteres como la barra invertida ya
  1535. 1:08:09es un carácter especial que tiene una
  1536. 1:08:11función dentro de la cadena
  1537. 1:08:13tenemos que usar 2 barras invertidas
  1538. 1:08:16para que se muestre una barra invertida
  1539. 1:08:19digamos de esta forma
  1540. 1:08:23y aquí puedes ver el resultado la barra
  1541. 1:08:25invertida se muestra si solamente
  1542. 1:08:27hubiéramos escrito una sola barra
  1543. 1:08:29invertida puedes ver que en nada se
  1544. 1:08:32mostraría en ese lugar de la cadena
  1545. 1:08:33porque la barra invertida tiene una
  1546. 1:08:36función especial para las cadenas de
  1547. 1:08:37caracteres y para quitarle esa función a
  1548. 1:08:40special escribimos dos barras invertidas
  1549. 1:08:43otra secuencia de escape muy muy
  1550. 1:08:46utilizada que seguramente la vas a
  1551. 1:08:47utilizar en tus proyectos es la barra
  1552. 1:08:50invertida seguida de una n ésta
  1553. 1:08:52representa una línea nueva en la cadena
  1554. 1:08:54vamos a ver un ejemplo con esta
  1555. 1:08:57secuencia de escape que es muy muy
  1556. 1:08:58utilizada digamos que quiero mostrar la
  1557. 1:09:02palabra javascript en otra línea estoy
  1558. 1:09:05aprendiendo podemos colocar dos puntos
  1559. 1:09:08por ejemplo y queremos que javascript se
  1560. 1:09:10muestre en otra línea si veamos el
  1561. 1:09:13resultado en la consola vemos aquí que
  1562. 1:09:16dice estoy aprendiendo
  1563. 1:09:18javascript puedes ver que ya va a
  1564. 1:09:20escribir te está en otra línea y haces
  1565. 1:09:22el principio de las secuencias de escape
  1566. 1:09:24no aparece por sí misma sino que se
  1567. 1:09:26traduce en caracteres web o elementos
  1568. 1:09:29especiales aquí podemos ver un espacio
  1569. 1:09:32adicional porque aquí tenemos un espacio
  1570. 1:09:34adicional antes de ya busquets si
  1571. 1:09:37eliminamos ese espacio ya vemos que el
  1572. 1:09:40espacio se elimina del resultado general
  1573. 1:09:44también tenemos muchos otros ejemplos de
  1574. 1:09:46secuencias de escape
  1575. 1:09:48aquí tenemos algunos en la tabla retorno
  1576. 1:09:50de carro que en inglés se denomina que
  1577. 1:09:52ritcher tabulación saab en inglés
  1578. 1:09:57retroceso estaba invertida seguido una
  1579. 1:10:00vez salto de página para invertida efe y
  1580. 1:10:03muchos otros más si te interesa aprender
  1581. 1:10:06más sobre secuencias de escape puedes
  1582. 1:10:08conseguirlas en la documentación de
  1583. 1:10:09javascript
  1584. 1:10:17sabes que también podemos unir cadenas
  1585. 1:10:20de caracteres a veces esto puede ser muy
  1586. 1:10:22útil cuando necesitamos formar una sola
  1587. 1:10:25cadena a partir de varias cadenas y
  1588. 1:10:28podemos hacerlo con el operador de suma
  1589. 1:10:31el operador más sorprendentemente si el
  1590. 1:10:34operador de suma se puede usar para
  1591. 1:10:36operar con otros tipos de datos además
  1592. 1:10:38de los números podemos usarlo para unir
  1593. 1:10:42o concatenar cadenas de caracteres
  1594. 1:10:43veamos un ejemplo
  1595. 1:10:45vamos a referirnos al nombre completo de
  1596. 1:10:48una persona como la combinación de su
  1597. 1:10:50nombre y su apellido para este ejemplo
  1598. 1:10:53entonces en este caso digamos que
  1599. 1:10:55queremos unir el nombre de la persona
  1600. 1:10:58con su apellido touraine y cuál es el
  1601. 1:11:01resultado de esta línea bueno vamos a
  1602. 1:11:03tener una cadena de caracteres que
  1603. 1:11:07resulta de la unión de estas dos cadenas
  1604. 1:11:09alan turing vamos a mostrar el resultado
  1605. 1:11:12en la consola
  1606. 1:11:14aquí puedes ver el resultado pero hay
  1607. 1:11:17algo muy particular que seguramente
  1608. 1:11:19estás notando no hay un espacio entre
  1609. 1:11:22las cadenas están pegadas no hay
  1610. 1:11:25separación entre las cadenas cómo
  1611. 1:11:27podemos agregar ese espacio bueno lo que
  1612. 1:11:29podemos hacer es agregar el espacio a
  1613. 1:11:32cualquiera de las cadenas podemos
  1614. 1:11:34agregarlo al final de la primera cadena
  1615. 1:11:37y aquí puedes ver que el espacio se
  1616. 1:11:39agregó al resultado podemos agregarlo al
  1617. 1:11:43principio es la segunda cadena como
  1618. 1:11:45puedes ver aquí tenemos touring y aquí
  1619. 1:11:49podemos ver el espacio es equivalente la
  1620. 1:11:52cadena resultante lo que va a hacer es
  1621. 1:11:54tomar estos caracteres y combinarlos con
  1622. 1:11:56estos caracteres que tenemos aquí
  1623. 1:11:58incluyendo el espacio recuerda que en
  1624. 1:12:01las cadenas de caracteres el espacio es
  1625. 1:12:04muy importante porque está también tiene
  1626. 1:12:06su propio lugar dentro de la cadena y se
  1627. 1:12:08cuenta como un carácter más otra
  1628. 1:12:11alternativa si no queremos agregar el
  1629. 1:12:13espacio a ninguna de las dos cadenas lo
  1630. 1:12:15que podemos hacer
  1631. 1:12:16es en lugar de agregar el espacio
  1632. 1:12:18concatenar un espacio entre ambas
  1633. 1:12:23aquí lo podemos ver a alan se mantiene
  1634. 1:12:26intacto tenemos la misma cadena y turín
  1635. 1:12:29también no agregamos ningún espacio lo
  1636. 1:12:31que estamos haciendo aquí es concatenar
  1637. 1:12:33estas dos cadenas con dos operaciones
  1638. 1:12:36con el operador de suma a un espacio
  1639. 1:12:39aquí esto está diciendo toma la cadena a
  1640. 1:12:42adam y añádele en este espacio y luego
  1641. 1:12:46agrega esta cadena al final del
  1642. 1:12:48resultado y eso lo que vamos a tener
  1643. 1:12:50como el nombre completo
  1644. 1:12:57también puedes construir cadenas con
  1645. 1:12:59variables como lo podemos hacer con el
  1646. 1:13:02mismo operador que usábamos para
  1647. 1:13:04concatenar las cadenas pero ahora
  1648. 1:13:06también vamos a incluir una variable que
  1649. 1:13:09contiene a una cadena por ejemplo si
  1650. 1:13:12tenemos una variable que contiene un
  1651. 1:13:14verbo que representa un verbo por
  1652. 1:13:16ejemplo programar podemos usar esta
  1653. 1:13:19variable para concatenar las cadenas y
  1654. 1:13:22generar un mensaje por ejemplo estoy
  1655. 1:13:26aprendiendo a agregamos un espacio para
  1656. 1:13:31que haya una separación y así es que las
  1657. 1:13:34concatena mos con el operador de suma
  1658. 1:13:36aplica dos cadenas de caracteres
  1659. 1:13:39decimos estoy aprendiendo a y como
  1660. 1:13:42tenemos un espacio en las cadenas van a
  1661. 1:13:44estar separadas y el verbo que es esta
  1662. 1:13:47variable va a ser reemplazada con la
  1663. 1:13:49cadena programa si mostramos el mensaje
  1664. 1:13:52en la consola aquí podemos ver lo estoy
  1665. 1:13:56aprendiendo a programar la primera
  1666. 1:13:58cadena llega hasta este espacio y la
  1667. 1:14:00segunda cadena comienza después del
  1668. 1:14:03espacio también podemos concatenar esta
  1669. 1:14:06variable que contiene una cadena en
  1670. 1:14:09cualquier punto de la cadena en
  1671. 1:14:11cualquier punto del mensaje de la nueva
  1672. 1:14:13cadena donde la necesitemos para ello
  1673. 1:14:17solamente
  1674. 1:14:18escribimos el operador de suma para
  1675. 1:14:20seguir concatenando más cadenas
  1676. 1:14:23y describimos la cadena que necesitamos
  1677. 1:14:25agregar en este caso es con frijol que
  1678. 1:14:28siempre debes recordar incluir el
  1679. 1:14:30espacio porque cuando usamos el operador
  1680. 1:14:33más el operador que concatena cadenas el
  1681. 1:14:36espacio no se asume si no van a estar
  1682. 1:14:38todas sin separación y aquí puedes ver
  1683. 1:14:41el resultado estoy aprendiendo a
  1684. 1:14:43programar con frito el campo tenemos
  1685. 1:14:45tres partes para formar esta cadena bien
  1686. 1:14:50ya sabes construir cadenas con variables
  1687. 1:14:52esto es muy muy útil cuando quieres
  1688. 1:14:55personalizar el valor de una cadena
  1689. 1:14:57porque puedes simplemente tomar el valor
  1690. 1:14:59de una variable y va a aparecer como el
  1691. 1:15:01mensaje o como un resultado que puedes
  1692. 1:15:03usar en tu programa
  1693. 1:15:10también puedes usar una sintaxis un
  1694. 1:15:12operador que aprendiste en los temas
  1695. 1:15:15anteriores para concatenar
  1696. 1:15:17cadenas de caracteres que están
  1697. 1:15:19asignadas a variables veamos como puedes
  1698. 1:15:22hacerlo si nosotros tenemos una variable
  1699. 1:15:25que contiene una cadena que va a
  1700. 1:15:27representar un mensaje completo pero
  1701. 1:15:30nosotros queremos ir armando esa cadena
  1702. 1:15:32poco a poco y le vamos a agregar la
  1703. 1:15:34parte final del mensaje en el programa
  1704. 1:15:38estoy aprendiendo a programar vamos a
  1705. 1:15:42usar el mismo ejemplo del tema anterior
  1706. 1:15:43estoy aprendiendo a programar dejamos un
  1707. 1:15:46espacio aquí y digamos que la parte
  1708. 1:15:49final la tenemos guardada o asignada en
  1709. 1:15:53otra variable
  1710. 1:15:54esto podría ser en una situación real
  1711. 1:15:56por ejemplo que esa parte del mensaje
  1712. 1:15:58sea personalizada para el usuario o que
  1713. 1:16:02el usuario tenga que ingresar algún
  1714. 1:16:03valor para tener la cadena completa eso
  1715. 1:16:06serían algunos casos más realistas de
  1716. 1:16:09cuando podrías usar este operador
  1717. 1:16:12entonces tenemos esta cadena y la
  1718. 1:16:14tenemos dividido en dos partes esta es
  1719. 1:16:16la cadena que queremos que contenga el
  1720. 1:16:18mensaje completo y esto es sólo la parte
  1721. 1:16:21final
  1722. 1:16:23qué es lo que vamos a hacer vamos a
  1723. 1:16:24mostrar el mensaje completo
  1724. 1:16:27antes de concatenar la parte final y
  1725. 1:16:31luego vamos a concatenar la parte final
  1726. 1:16:33simplemente lo que vamos a usar con este
  1727. 1:16:36operador va a ser el nombre de la
  1728. 1:16:39variable que queremos concatenar tenemos
  1729. 1:16:42dos variables esa es la diferencia con
  1730. 1:16:44los temas anteriores en lugar de estar
  1731. 1:16:46trabajando directamente con la cadena
  1732. 1:16:49aquí estamos guardando la en una
  1733. 1:16:52variable primero y luego usando la
  1734. 1:16:54variable aquí esto va a tomar la cadena
  1735. 1:16:58actual de esta variable el mensaje
  1736. 1:17:01completo y va a agregar la parte final a
  1737. 1:17:04esa cadena va a concatenar las
  1738. 1:17:08aquí podemos ver las dos etapas del
  1739. 1:17:10mensaje estoy aprendiendo a programar
  1740. 1:17:12fue el resultado de esta línea antes de
  1741. 1:17:15hacer el proceso de concatenación y aquí
  1742. 1:17:18vemos el mensaje completo una vez que ya
  1743. 1:17:21está actualizado estoy a pensar
  1744. 1:17:23programar con free core camps la parte
  1745. 1:17:26final se agregó al final del mensaje
  1746. 1:17:28completo bien ya sabes cómo formar
  1747. 1:17:31cadenas concatenando otras cadenas que
  1748. 1:17:34están guardadas o asignadas a una
  1749. 1:17:37variable buen trabajo hasta ahora ya has
  1750. 1:17:39aprendido bastante sobre los distintos
  1751. 1:17:41tipos de datos de javascript así que
  1752. 1:17:43continuemos ya o script es un lenguaje
  1753. 1:17:45de programación asombroso y poderoso que
  1754. 1:17:47puedes usar para muchas aplicaciones
  1755. 1:17:49distintas así que cuando estés listo
  1756. 1:17:52lista comencemos con nuestro siguiente
  1757. 1:17:53tema
  1758. 1:18:01vamos a ver cómo puedes realizar una
  1759. 1:18:03operación que es extremadamente común en
  1760. 1:18:06programación encontrar la longitud de
  1761. 1:18:09una cadena la longitud del tamaño es
  1762. 1:18:11simplemente cuántos caracteres tiene una
  1763. 1:18:14cadena de caracteres
  1764. 1:18:15incluyendo espacios y cualquier símbolo
  1765. 1:18:18que pueda contener vamos a ver algunos
  1766. 1:18:20ejemplos si declaramos la variable en mi
  1767. 1:18:23cadena vamos a asignar distintos valores
  1768. 1:18:26por ejemplo la cadena puede estar
  1769. 1:18:29formada por un solo carácter cualquier
  1770. 1:18:31carácter esto puede ser un símbolo puede
  1771. 1:18:33ser un espacio puede ser una letra y
  1772. 1:18:36digamos que nuestro programa necesitamos
  1773. 1:18:38saber cuántos caracteres contiene esa
  1774. 1:18:40cadena lo que podemos hacer es escribir
  1775. 1:18:43el nombre de la variable
  1776. 1:18:46y en donde necesitemos usar ese valor en
  1777. 1:18:50la longitud escribimos un punto
  1778. 1:18:53inmediatamente después del nombre de la
  1779. 1:18:55cadena no puede haber ningún espacio que
  1780. 1:18:57tenemos el punto y después escribimos
  1781. 1:19:00lane line en inglés significa longitud
  1782. 1:19:03esta propiedad de la cadena nos va a
  1783. 1:19:06permitir saber cuántos caracteres
  1784. 1:19:08contienen
  1785. 1:19:10vamos a ver en la consola a ver cuál es
  1786. 1:19:12el resultado
  1787. 1:19:13el resultado es 1 y eso es correcto
  1788. 1:19:16porque esta cadena contiene un solo
  1789. 1:19:18carácter
  1790. 1:19:20ahora qué pasa si nosotros actualizamos
  1791. 1:19:22esta cadena a la cadena ave por ejemplo
  1792. 1:19:25ya lo tenemos dos caracteres y vemos el
  1793. 1:19:29resultado 2 aquí para la propiedad le
  1794. 1:19:32ahora puedes preguntarte también si los
  1795. 1:19:34espacios se cuentan si yo agrego un
  1796. 1:19:37espacio entre estas letras hay tres
  1797. 1:19:40caracteres bueno veamos en la consola y
  1798. 1:19:43aquí podemos ver que si hay tres
  1799. 1:19:45caracteres la longitud de la cadena es
  1800. 1:19:48tres también cuenta si agregamos el
  1801. 1:19:51espacio al principio o al final aquí
  1802. 1:19:53puedes ver que el resultado sigue siendo
  1803. 1:19:55tres con el espacio al principio y sigue
  1804. 1:19:57siendo tres si colocamos el espacio al
  1805. 1:19:59final ahora vamos a ver otro ejemplo
  1806. 1:20:01otra cadena cuantos caracteres tiene
  1807. 1:20:04esta cadena pero no necesariamente
  1808. 1:20:06sabemos a simple vista cuántos
  1809. 1:20:08caracteres tiene así que vamos a
  1810. 1:20:10necesitar usar esta propiedad y
  1811. 1:20:12normalmente en los programas vas a
  1812. 1:20:14necesitar usar esta propiedad para
  1813. 1:20:17trabajar con ese valor si vemos en la
  1814. 1:20:20consola podemos ver que el javascript
  1815. 1:20:22tiene 10 caracteres en este caso son 10
  1816. 1:20:24letras qué te parece si también
  1817. 1:20:27incluimos algunos símbolos en nuestro
  1818. 1:20:28ejemplo estoy aprendiendo a programar en
  1819. 1:20:31este caso tenemos signos de exclamación
  1820. 1:20:35esta cadena tiene 31 caracteres
  1821. 1:20:38incluyendo sino exclamación puedes ver
  1822. 1:20:40que si quitamos alguno de esos signos de
  1823. 1:20:42exclamación la longitud va a disminuir
  1824. 1:20:45aquí puedes ver que ahora es 30 y si
  1825. 1:20:48quitamos los dos es 29 así que si están
  1826. 1:20:50contando también cualquier otro símbolo
  1827. 1:20:53que podamos incluir en la cadena cuenta
  1828. 1:20:56por ejemplo un arroba
  1829. 1:20:59un hashtag unam per sant cualquier
  1830. 1:21:03símbolo que esté en la cadena cuenta
  1831. 1:21:05para su longitud
  1832. 1:21:07bien ya aprendiste algo muy muy
  1833. 1:21:09importante en programación cómo obtener
  1834. 1:21:11la longitud o tamaño de una cadena de
  1835. 1:21:13caracteres
  1836. 1:21:20vamos a ver la notación de corchetes en
  1837. 1:21:23ya ves que esta es una notación que nos
  1838. 1:21:26permite acceder a los caracteres
  1839. 1:21:28individuales de una cadena veamos cómo
  1840. 1:21:32puedes acceder al primer carácter de una
  1841. 1:21:34cadena vamos a definir una variable que
  1842. 1:21:37se llama lenguaje de programación
  1843. 1:21:39y le vamos a asignar la cadena de
  1844. 1:21:42caracteres javascript
  1845. 1:21:45esa cadena de caracteres tiene una
  1846. 1:21:47estructura interna que nos va a permitir
  1847. 1:21:49acceder a sus caracteres
  1848. 1:21:52veamos un pequeño diagrama está aquí
  1849. 1:21:55esta es la cadena y estos son los
  1850. 1:21:58índices la cadena de caracteres
  1851. 1:22:01contiene estos caracteres estoy dejando
  1852. 1:22:04una separación para que puedas verlos
  1853. 1:22:06mejor
  1854. 1:22:08cada uno de sus caracteres de la cadena
  1855. 1:22:12tiene un índice asociado que es un
  1856. 1:22:14número entero que comienza en cero y se
  1857. 1:22:17incrementa en uno para cada carácter
  1858. 1:22:19hacia la fecha el primer carácter de la
  1859. 1:22:23cadena está ubicado en el índice cero y
  1860. 1:22:26podemos usar ese índice para acceder a
  1861. 1:22:28ese carácter
  1862. 1:22:29vamos a usar con su punto log para
  1863. 1:22:31mostrar este carácter escribimos el
  1864. 1:22:34nombre de la variable que contiene la
  1865. 1:22:37cadena y luego escribimos un par de
  1866. 1:22:39corchetes
  1867. 1:22:41inmediatamente después de ese nombre
  1868. 1:22:43ningún espacio inmediatamente después
  1869. 1:22:45del nombre y dentro de los corchetes
  1870. 1:22:48escribimos el índice del carácter que
  1871. 1:22:51queremos acceder en este caso es cero
  1872. 1:22:53porque queremos acceder al primer
  1873. 1:22:55carácter es importante que recuerdes que
  1874. 1:22:59el primer índice de cero no es uno como
  1875. 1:23:03normalmente pensaríamos y esto es muy
  1876. 1:23:05común en computación comenzar a contar
  1877. 1:23:07en la secuencia desde cero
  1878. 1:23:10bien abramos la consola y aquí podemos
  1879. 1:23:13ver el primer carácter j
  1880. 1:23:16bien ya sabes cómo acceder al primer
  1881. 1:23:18carácter escribes el nombre de la de la
  1882. 1:23:21variable luego un par de corchetes y
  1883. 1:23:24dentro de los corchetes el índice que en
  1884. 1:23:26este caso es cero para el primer
  1885. 1:23:29carácter en los próximos temas vas a
  1886. 1:23:32practicar cómo puedes acceder a los
  1887. 1:23:34otros caracteres de la cadena ya sabes
  1888. 1:23:36acceder al primero genial continuemos
  1889. 1:23:44ya sabes cómo acceder al primer carácter
  1890. 1:23:47de una cadena y en esta parte del curso
  1891. 1:23:50vamos a ver algo muy muy importante
  1892. 1:23:52sobre las cadenas vamos a hablar sobre
  1893. 1:23:55la inmutabilidad de las cadenas de
  1894. 1:23:57caracteres que implica que sean
  1895. 1:23:59inmutables mutable significa que se
  1896. 1:24:01pueden cambiar e inmutables significa
  1897. 1:24:04que no se pueden cambiar y es
  1898. 1:24:06exactamente eso una vez que nosotros
  1899. 1:24:08definimos una cadena de caracteres en el
  1900. 1:24:11programa no podemos cambiar sus
  1901. 1:24:13elementos individuales sus caracteres
  1902. 1:24:15vamos a ilustrar esto con un ejemplo si
  1903. 1:24:18decimos mi cadena y escribimos aquí en
  1904. 1:24:21una cadena de caracteres y en lugar de
  1905. 1:24:23hola mundo
  1906. 1:24:25digamos que escribimos hola mundo una
  1907. 1:24:27letra que luego vamos a querer cambiar
  1908. 1:24:31digamos que luego queremos cambiar esa
  1909. 1:24:35cadena solo ese carácter podemos
  1910. 1:24:38mostrarlas para confirmar su valor
  1911. 1:24:40anterior y luego podemos tratar de
  1912. 1:24:43cambiar el carácter en el índice cero
  1913. 1:24:46para ello escribiríamos el nombre de la
  1914. 1:24:48variable seguido de corchetes y dentro
  1915. 1:24:51de los corchetes del índice en este caso
  1916. 1:24:54es el índice de cero porque el primer
  1917. 1:24:56carácter de la cadena
  1918. 1:24:58luego aquí asignamos la letra que
  1919. 1:25:02queremos
  1920. 1:25:03cambios que también es una cadena de
  1921. 1:25:05caracteres pero qué es lo que va a
  1922. 1:25:07ocurrir cuando lleguemos a esta línea
  1923. 1:25:09durante la ejecución del programa va a
  1924. 1:25:11haber un error porque las cadenas son
  1925. 1:25:13inmutables no puedes cambiar los
  1926. 1:25:15caracteres individuales de la cadena lo
  1927. 1:25:18que puedes hacer es reasignar la cadena
  1928. 1:25:20completa vamos a abrir la consola para
  1929. 1:25:22que veas el error aquí ves el resultado
  1930. 1:25:26de esta línea donde mostramos la cadena
  1931. 1:25:29antes de llegar a esta línea que tenemos
  1932. 1:25:31acá que trata de reasignar el carácter
  1933. 1:25:33luego vemos este error tal error
  1934. 1:25:37significa error de tipo esto ocurre
  1935. 1:25:40cuando te hacemos alguna operación que
  1936. 1:25:41no está permitida con un tipo de datos
  1937. 1:25:44específicos que estamos trabajando y que
  1938. 1:25:46dice en esta parte del error dice que no
  1939. 1:25:49saben no se puede asignar el valor a una
  1940. 1:25:54propiedad que solo se puede leer esto lo
  1941. 1:25:57que significa hervir
  1942. 1:25:59sólo se puede acceder a ese valor y no
  1943. 1:26:01se puede cambiar la propiedad es cero de
  1944. 1:26:05la cadena de caracteres hola mundo
  1945. 1:26:08lo que sí podemos hacer es cambiar el
  1946. 1:26:10valor de la cadena completamente a otra
  1947. 1:26:13cadena nota que aquí no estamos tratando
  1948. 1:26:16de cambiar un índice en específico sino
  1949. 1:26:18que resignamos completamente el valor de
  1950. 1:26:20la variable vamos a mostrar la cadena
  1951. 1:26:23antes del cambio y después del cambio y
  1952. 1:26:27vamos a abrir la consola aquí puedes ver
  1953. 1:26:29que el cambio fue efectivo pasamos de
  1954. 1:26:32hall a punto a hola mundo porque
  1955. 1:26:35reasignamos la cadena completa no puedes
  1956. 1:26:38cambiar ningún carácter individual de
  1957. 1:26:40esta cadena aquí es porque son
  1958. 1:26:42inmutables
  1959. 1:26:50vamos a retomar el tema anterior que
  1960. 1:26:52estábamos viendo es cómo usar la
  1961. 1:26:54anotación de corchetes para acceder a
  1962. 1:26:57los caracteres individuales de una
  1963. 1:26:59cadena porque no solamente puedes
  1964. 1:27:01acceder al primer carácter de la cadena
  1965. 1:27:03puedes acceder a cualquier carácter de
  1966. 1:27:06la cadena comenzando a contar desde cero
  1967. 1:27:08veamos un ejemplo aquí tenemos mi cadena
  1968. 1:27:11y le asignamos el valor ya busquets
  1969. 1:27:14nuevamente vamos a hacer el diagrama que
  1970. 1:27:17hicimos en el tema anterior
  1971. 1:27:24podemos ver el índice que corresponde a
  1972. 1:27:27cada uno de esos caracteres por ejemplo
  1973. 1:27:30el índice 4 corresponde al carácter s el
  1974. 1:27:33índice 7 corresponde al carácter i y así
  1975. 1:27:36sucesivamente
  1976. 1:27:37incrementando de a uno por cada carácter
  1977. 1:27:40en la cadena cómo podemos acceder a cada
  1978. 1:27:43uno de ellos usando sus índices y la
  1979. 1:27:46anotación que ya aprendiste en el tema
  1980. 1:27:47anterior escribimos en nos de la
  1981. 1:27:50variable mi cadena en este caso y entre
  1982. 1:27:53corchetes escribimos el índice y esta
  1983. 1:27:56expresión que tenemos aquí va a evaluar
  1984. 1:27:59al carácter correspondiente en este caso
  1985. 1:28:02va a ser la letra j pero también por
  1986. 1:28:05ejemplo si copiamos y pegamos aquí y el
  1987. 1:28:08único cambio que hacemos es el índice lo
  1988. 1:28:11cambiamos a 1 ahora la letra o el
  1989. 1:28:14carácter va a ser la letra a si lo
  1990. 1:28:17cambiamos nuevamente a 2 ahora la letra
  1991. 1:28:19va a ser p y así sucesivamente
  1992. 1:28:24los índices de esta cadena de caracteres
  1993. 1:28:26llegan hasta el número 9 vamos a ver el
  1994. 1:28:29resultado de todas estas líneas de
  1995. 1:28:31código que muestran los caracteres aquí
  1996. 1:28:34lo podemos ver cada uno de los
  1997. 1:28:36caracteres de la cadena fue mostrado en
  1998. 1:28:38una línea separada en su propia línea j
  1999. 1:28:41ave usando los índices correspondientes
  2000. 1:28:44así como estamos mostrando el carácter
  2001. 1:28:47en la consola podemos usar cualquiera de
  2002. 1:28:49estos caracteres caracteres en nuestro
  2003. 1:28:51programa bien ahora vamos a ver qué pasa
  2004. 1:28:54si nosotros usamos un índice que está
  2005. 1:28:56fuera de los límites permitidos por
  2006. 1:28:59ejemplo si escribimos aquí 10 ya aquí no
  2007. 1:29:03tenemos ningún carácter que corresponde
  2008. 1:29:06al índice 10 en esta cadena así que
  2009. 1:29:09veamos qué pasa
  2010. 1:29:11lo que tenemos aquí es el valor anti
  2011. 1:29:14fine no tenemos un error como podríamos
  2012. 1:29:16pensar inicialmente sino que lo que
  2013. 1:29:19tenemos es el valor anti find aunque es
  2014. 1:29:22el valor retornado si usamos un índice
  2015. 1:29:24que no es válido si usamos un índice
  2016. 1:29:26negativo por ejemplo
  2017. 1:29:29-3 también tenemos el valor and i find
  2018. 1:29:33si usamos un índice
  2019. 1:29:35decimal también veamos qué pasa
  2020. 1:29:40también vemos el valor anti find esto lo
  2021. 1:29:43que podemos esperar en javascript
  2022. 1:29:47bien ya sabes cómo acceder a cada uno de
  2023. 1:29:49los caracteres caracteres de una cadena
  2024. 1:29:51usando sus índices para practicar puedes
  2025. 1:29:54escoger otra cadena de caracteres por
  2026. 1:29:56ejemplo
  2027. 1:29:57programar y hacer este mismo día grammy
  2028. 1:30:01está así te vas acostumbrando
  2029. 1:30:02a la estructura general de las cadenas
  2030. 1:30:06de caracteres ves programar comenzamos
  2031. 1:30:09desde cero y cada uno de los caracteres
  2032. 1:30:11tiene su propio índice aumentando de uno
  2033. 1:30:13en uno a medida que nos movemos hacia la
  2034. 1:30:16derecha al siguiente carácter bien
  2035. 1:30:19pasemos a nuestro siguiente tema
  2036. 1:30:28también puedes usar la notación de
  2037. 1:30:30corchetes para encontrar o para acceder
  2038. 1:30:33al último carácter de una cadena
  2039. 1:30:35recuerda que antes de los temas
  2040. 1:30:37anteriores accedemos al primer carácter
  2041. 1:30:40de la cadena luego pudimos acceder a
  2042. 1:30:42cada uno de los otros caracteres pero
  2043. 1:30:45qué pasa si solo queremos acceder al
  2044. 1:30:47último carácter y en verdad no sabemos
  2045. 1:30:50explícitamente cuál es el último índice
  2046. 1:30:52cuando hicimos el ejemplo con javascript
  2047. 1:30:55o hicimos un diagrama y allí colocamos
  2048. 1:30:57cada uno de los índices pero no siempre
  2049. 1:30:59vas a poder hacer eso y eso no es
  2050. 1:31:01práctico lo que queremos es automatizar
  2051. 1:31:04lo para que funcione para cualquier
  2052. 1:31:06cadena y de cualquier tamaño o longitud
  2053. 1:31:09así que vamos a ver cómo lo podemos
  2054. 1:31:11hacer primero vamos a declarar una
  2055. 1:31:13variable llamada mi cadena
  2056. 1:31:16bien y vamos a analizar el ejemplo de la
  2057. 1:31:19cadena javascript
  2058. 1:31:21el último índice siempre es la longitud
  2059. 1:31:26de la cadena menos 1 porque comenzamos a
  2060. 1:31:30contar desde cero
  2061. 1:31:33el último índice siempre es la longitud
  2062. 1:31:36de la cadena menos 1 porque se comienza
  2063. 1:31:38a contar desde cero ahorita vamos a ver
  2064. 1:31:40el diagrama de jobsket y vas a darte
  2065. 1:31:42cuenta que en realidad el último índice
  2066. 1:31:45es la longitud menos 1 porque no estamos
  2067. 1:31:47comenzando a contar desde 1 sino desde 0
  2068. 1:31:50mi cadena punto lines es 10 porque tiene
  2069. 1:31:5510 caracteres 1 2 3 4 5 6 7 8 9 y 10 por
  2070. 1:32:01lo tanto el último índice es 9
  2071. 1:32:10podemos ver aquí que en lo último 26 9
  2072. 1:32:12que es la longitud de la cadena o el
  2073. 1:32:15tamaño de la cadena menos 1 porque
  2074. 1:32:17comenzamos a contar desde cero
  2075. 1:32:20bien ya tenemos esto visualmente pero
  2076. 1:32:22cómo podemos representarlo de una forma
  2077. 1:32:24general que aplique a cualquier cadena
  2078. 1:32:27porque digamos que no necesariamente la
  2079. 1:32:29cadena tiene que ser llaves que no
  2080. 1:32:31necesariamente es 9 lo que vamos a hacer
  2081. 1:32:33es asignarle ese valor javascript que
  2082. 1:32:36puede ser cualquier cadena y para
  2083. 1:32:38acceder al último elemento lo que
  2084. 1:32:41hacemos es esto ponemos mi cadena punto
  2085. 1:32:43name menos 1 este va a ser nuestro
  2086. 1:32:47índice para acceder al carácter tomamos
  2087. 1:32:50la longitud de la cadena que puede ser
  2088. 1:32:53cualquier cadena estamos usando la
  2089. 1:32:55variable para poder reemplazar su valor
  2090. 1:32:57si yo cambio este valor por ejemplo a
  2091. 1:33:00payton que es otro lenguaje de
  2092. 1:33:02programación
  2093. 1:33:03este valor se va a actualizar el tamaño
  2094. 1:33:06va a ser actualizado y por lo tanto el
  2095. 1:33:08resultado del índice también se va a
  2096. 1:33:11actualizar
  2097. 1:33:11así que esto va a funcionar
  2098. 1:33:13correctamente nota que aquí estamos
  2099. 1:33:15escribiendo la expresión dentro de los
  2100. 1:33:18corchetes los corchetes que usamos para
  2101. 1:33:21escribir el índice en lugar de escribir
  2102. 1:33:23por ejemplo cero o nueve o seis o cinco
  2103. 1:33:28directamente lo que estamos haciendo es
  2104. 1:33:30escribir una expresión que se va a
  2105. 1:33:32evaluar cuando el código se ejecute y
  2106. 1:33:35ese valor resultante va a ser
  2107. 1:33:37reemplazado como el índice ahora veamos
  2108. 1:33:40que tenemos en la consola vemos la letra
  2109. 1:33:43t que efectivamente es la última letra
  2110. 1:33:45de la cadena javascript
  2111. 1:33:48ahora si cambiamos este valor a digamos
  2112. 1:33:50python
  2113. 1:33:53aquí podemos ver que la última letra es
  2114. 1:33:56la que se muestra la n
  2115. 1:33:57digamos también una cadena con un solo
  2116. 1:34:00caracter podemos ver la letra que
  2117. 1:34:03también funciona porque su longitud es
  2118. 1:34:06uno cuando le restamos uno nos queda el
  2119. 1:34:09índice cero que es el índice del primer
  2120. 1:34:11carácter
  2121. 1:34:12genial ya sabes cómo acceder al último
  2122. 1:34:14carácter de una cadena de caracteres
  2123. 1:34:17recuerda es la longitud de la cadena
  2124. 1:34:20menos 1
  2125. 1:34:28y finalmente para ya cubrir
  2126. 1:34:30completamente el tema de cómo podemos
  2127. 1:34:32usar la anotación de corchetes para
  2128. 1:34:34acceder a los caracteres de una cadena
  2129. 1:34:36si nosotros llegamos al final de la
  2130. 1:34:38cadena y queremos el penúltimo del
  2131. 1:34:41antepenúltimo carácter o el carácter que
  2132. 1:34:43está antes del antepenúltimo también
  2133. 1:34:46tenemos una forma de hacerlo de una
  2134. 1:34:48forma que podemos contar desde el final
  2135. 1:34:50de la cadena hacia el principio para
  2136. 1:34:53tener el carácter específico vamos a ver
  2137. 1:34:56esto vemos mi cadena y vamos a asignarle
  2138. 1:35:00un valor mi cadena es ya busquets y
  2139. 1:35:05vamos a analizar el patrón aquí vamos a
  2140. 1:35:07hacerlo vamos a analizarlo con un
  2141. 1:35:09comentario
  2142. 1:35:10decimos el penúltimo índice
  2143. 1:35:15es la longitud menos 2 aquí tenemos el
  2144. 1:35:19último carácter para acceder al
  2145. 1:35:21penúltimo índice el penúltimo carácter
  2146. 1:35:23la letra p tenemos que restar 2 en lugar
  2147. 1:35:26de 1
  2148. 1:35:27porque comenzamos
  2149. 1:35:31a contar desde cero
  2150. 1:35:34entonces el último carácter estaría en
  2151. 1:35:36el índice de la longitud menos 1 y así
  2152. 1:35:39estaríamos uno para cada carácter
  2153. 1:35:41siguiente de derecha a la izquierda éste
  2154. 1:35:44sería menos 2 - 3 - 4 menos 5 y puedes
  2155. 1:35:49ver que coincide con el número del
  2156. 1:35:51carácter de derecha a izquierda menos
  2157. 1:35:53dos menos tres menos 4 y menos 5 y así
  2158. 1:35:57sucesivamente en este caso para este
  2159. 1:36:00ejemplo mi cadena puntos line es 10
  2160. 1:36:03porque javascript tiene 10 caracteres
  2161. 1:36:05por lo tanto el penúltimo índice es 8
  2162. 1:36:11que lo tenemos acá
  2163. 1:36:13podemos ver el diagrama que hicimos
  2164. 1:36:16anteriormente y aquí vemos que el
  2165. 1:36:18penúltimo índice es 8 la longitud de la
  2166. 1:36:21cadena 10 menos 2 así podemos analizar
  2167. 1:36:25este patrón y conseguir una forma
  2168. 1:36:27general de referir y referirnos a
  2169. 1:36:29cualquier carácter de derecha a
  2170. 1:36:31izquierda
  2171. 1:36:31como lo podemos hacer veamos vamos a
  2172. 1:36:35mostrar el resultado en la consola y
  2173. 1:36:37decimos mi cadena mi cadena punto lane
  2174. 1:36:41menos 2 en este caso porque queremos el
  2175. 1:36:45segundo carácter de derecha a izquierda
  2176. 1:36:47si quisiéramos el tercer carácter
  2177. 1:36:49estaríamos 3 y así sucesivamente
  2178. 1:36:52veamos el resultado de restar 2 vemos el
  2179. 1:36:56carácter p que tenemos aquí el segundo
  2180. 1:36:59carácter de derecha a izquierda si
  2181. 1:37:01restamos 3 nos vamos más hacia la
  2182. 1:37:03izquierda el tercer carácter de derecha
  2183. 1:37:06a izquierda
  2184. 1:37:07si restamos 4 llegamos a r y así
  2185. 1:37:10sucesivamente puedes probar todos los
  2186. 1:37:13números válidos para estos índices
  2187. 1:37:14también en lugar de escribir el número
  2188. 1:37:17aquí de forma explícita podríamos
  2189. 1:37:21declarar una variable n aquí la podemos
  2190. 1:37:25declarar por ejemplo aquí arriba y aquí
  2191. 1:37:27le asignamos el valor que hemos usa y
  2192. 1:37:30eso sería una forma de poder actualizar
  2193. 1:37:32ambos valores como queramos en un solo
  2194. 1:37:36lugar sin tener que cambiar el valor
  2195. 1:37:37directamente en la expresión si vuelvo a
  2196. 1:37:40cambiar estos dos el resultado es lo que
  2197. 1:37:42esperábamos que es p y aquí tenemos una
  2198. 1:37:44expresión general para obtener el
  2199. 1:37:46enésimo carácter de derecha a izquierda
  2200. 1:37:48en la cadena bien pasemos a nuestro
  2201. 1:37:51siguiente tema ya cubrimos cómo puedes
  2202. 1:37:53acceder a los caracteres de una cadena
  2203. 1:37:55de izquierda a derecha y de derecha a
  2204. 1:37:57izquierda
  2205. 1:37:58así que continuemos con nuestro próximo
  2206. 1:38:00tema
  2207. 1:38:06ahora comenzamos nuestro primer mini
  2208. 1:38:08proyecto en este proyecto vamos a
  2209. 1:38:11implementar nuestra versión de un juego
  2210. 1:38:14muy popular que se llama en inglés matt
  2211. 1:38:16lips se traduce como historias locas o
  2212. 1:38:19en nuestra versión la vamos a llamar
  2213. 1:38:21como palabras en blanco que vamos a
  2214. 1:38:24hacer vamos a practicar como concatenar
  2215. 1:38:26cadenas de caracteres las cadenas que
  2216. 1:38:28tenemos aquí tenemos cuatro cadenas que
  2217. 1:38:30representan cuatro elementos distintos
  2218. 1:38:33de una oración
  2219. 1:38:34sustantivo adjetivo verbo y adverbios
  2220. 1:38:37perro negro corrió rápidamente nuestro
  2221. 1:38:41objetivo en este juego es concatenar las
  2222. 1:38:43cadenas para crear una cadena que
  2223. 1:38:45muestre un mensaje puedes cambiar el
  2224. 1:38:47valor de las variables entonces podría
  2225. 1:38:49ser en vez de perro o cualquier otro
  2226. 1:38:51sustantivo que quieras
  2227. 1:38:52cualquier otro adjetivo verbo o adverbio
  2228. 1:38:55por ejemplo el perro negro corrió
  2229. 1:38:58rápidamente a la tienda pero como puedes
  2230. 1:39:01notar no todas las palabras de la
  2231. 1:39:04oración están incluidas por ejemplo él
  2232. 1:39:06no es parte de ninguna variable
  2233. 1:39:10no es parte de ninguna de estas cadenas
  2234. 1:39:12de caracteres así que vamos a tener que
  2235. 1:39:16concatenar muchas cadenas para formar
  2236. 1:39:18nuestra oración final este es otro
  2237. 1:39:20ejemplo que podrías hacer la bicicleta
  2238. 1:39:22pequeña voló a la tienda lentamente no
  2239. 1:39:25necesariamente tiene que tener sentido y
  2240. 1:39:27por eso es que el juego original también
  2241. 1:39:29se llama historias locas puedes hacer
  2242. 1:39:32cualquier oración graciosa también por
  2243. 1:39:34eso que se llama historias locas
  2244. 1:39:36entonces vamos a comenzar lo que tenemos
  2245. 1:39:39que hacer es aquí
  2246. 1:39:41reemplazar esas comillas en blanco esa
  2247. 1:39:44cadena vacía por una secuencia de
  2248. 1:39:47cadenas concatenadas que van a resultar
  2249. 1:39:50en nuestro mensaje final si queremos
  2250. 1:39:52hacer por ejemplo esta primera oración
  2251. 1:39:55qué es lo que necesitamos
  2252. 1:39:59y luego tenemos perros pero perro ya la
  2253. 1:40:02tenemos asignada a nuestro variable mi
  2254. 1:40:05sustantivo
  2255. 1:40:07así que
  2256. 1:40:10decimos aquí mi sustantivo y como no
  2257. 1:40:13queremos que estén pegadas queremos que
  2258. 1:40:16estén separadas tenemos que agregar un
  2259. 1:40:18espacio podemos agregar el espacio
  2260. 1:40:22individualmente de esta forma podemos
  2261. 1:40:24agregarlo al final de la primera cadena
  2262. 1:40:26en este caso y siempre recordar el
  2263. 1:40:30operador más que nos permite concatenar
  2264. 1:40:32las el perro luego tenemos el adjetivo
  2265. 1:40:36negro
  2266. 1:40:37corrió tenemos el verbo
  2267. 1:40:41y el adverbio rápidamente
  2268. 1:40:45y luego completamos esta parte de la
  2269. 1:40:48oración
  2270. 1:40:49a la tienda puedes ver que la línea
  2271. 1:40:52continúa aquí abajo porque estamos
  2272. 1:40:54usando el editor de ficus camps también
  2273. 1:40:56en otros editores la línea continuaría
  2274. 1:40:58ver de forma horizontal y si quieres la
  2275. 1:41:00puedes dividir en varias líneas
  2276. 1:41:02bien así que ya tenemos nuestra cadena
  2277. 1:41:05resultante y podemos mostrarla en la
  2278. 1:41:07consola veamos qué es lo que tenemos
  2279. 1:41:09aquí aquí vemos un detalle que tenemos
  2280. 1:41:12que corregir vemos el perro negro corrió
  2281. 1:41:15rápidamente a la tienda no estamos
  2282. 1:41:18incluyendo espacios entre las palabras
  2283. 1:41:20entre el adjetivo / el verbo y el
  2284. 1:41:22adverbio y la otra parte de la cadera
  2285. 1:41:25así que vamos a hacerlo
  2286. 1:41:28para agregar el espacio
  2287. 1:41:31simplemente escribimos una cadena que
  2288. 1:41:33contiene un espacio y la conca tenemos
  2289. 1:41:36con ambas cadenas
  2290. 1:41:38así separamos el sustantivo del adjetivo
  2291. 1:41:40con un espacio luego otro espacio para
  2292. 1:41:44la cadena antes del verbo
  2293. 1:41:47otro espacio para el adverbio y aquí
  2294. 1:41:51antes de la letra podemos agregar un
  2295. 1:41:54espacio también
  2296. 1:41:55y cuál va a ser el resultado el perro
  2297. 1:41:58negro corrió rápidamente a la tienda
  2298. 1:42:01podemos también agregar un punto al
  2299. 1:42:03final genial ya tenemos el primer
  2300. 1:42:05ejemplo creado y podéis ver como siempre
  2301. 1:42:08hay que estar pendiente de los espacios
  2302. 1:42:10no podemos simplemente concatenar las
  2303. 1:42:12cadenas porque el espacio no se asume se
  2304. 1:42:15van a concatenar pegadas o sin ninguna
  2305. 1:42:17separación
  2306. 1:42:18tu meta es sustituir o reemplazar esta
  2307. 1:42:21parte del código para crear esta oración
  2308. 1:42:25la bicicleta pequeña voló a la tienda
  2309. 1:42:28lentamente para eso vas a tener que
  2310. 1:42:31actualizar estas variables el sustantivo
  2311. 1:42:34en lugar de perro ahora va a ser
  2312. 1:42:35bicicleta el adjetivo en lugar de negro
  2313. 1:42:38va a ser pequeña el verbo en lugar de
  2314. 1:42:41corrió va a ser bolo y el adverbio en
  2315. 1:42:45lugar de rápidamente va a ser lentamente
  2316. 1:42:49aquí también tenemos que agregar una
  2317. 1:42:51palabra la ok
  2318. 1:42:54así que
  2319. 1:42:56tómate unos segundos o unos minutos para
  2320. 1:42:59hacer estas modificaciones concatena las
  2321. 1:43:01cadenas y formas de esta oración cuando
  2322. 1:43:04estés listo o lista vuelve para ver cómo
  2323. 1:43:07podemos crear esta oración
  2324. 1:43:10bien el primer cambio que tenemos que
  2325. 1:43:13hacer es borrar la oración anterior aquí
  2326. 1:43:16vamos a tener un error hasta que
  2327. 1:43:19creemos con que tenemos las cadenas pero
  2328. 1:43:21lo primero que tenemos que hacer es
  2329. 1:43:23cambiar estos valores en vez de perro
  2330. 1:43:26ahora tendremos bicicletas en vez de
  2331. 1:43:28adjetivos ahora vamos a tener pequeña el
  2332. 1:43:32verbo en vez de corrió va a ser bolo y
  2333. 1:43:35el adverbio va a ser lentamente
  2334. 1:43:38bien ya tenemos por lo menos los
  2335. 1:43:40componentes principales de nuestra
  2336. 1:43:42oración cómo podemos crear esta oración
  2337. 1:43:45aquí abajo
  2338. 1:43:47no está ninguna de nuestras variables
  2339. 1:43:49así que la necesitamos para concatenar
  2340. 1:43:51la bicicleta si es el sustantivo
  2341. 1:43:54y luego tenemos el adjetivo pero
  2342. 1:43:58recuerda que tenemos que separarlos con
  2343. 1:44:00un espacio luego el verbo pero
  2344. 1:44:02necesitamos el espacio también mi verbo
  2345. 1:44:06lo escribimos a la tienda
  2346. 1:44:09y podemos agregar el espacio al final y
  2347. 1:44:12luego y luego mi adverbio que es
  2348. 1:44:17lentamente aquí al final tenemos un
  2349. 1:44:20espacio en la cadena no se ve claramente
  2350. 1:44:22aquí porque el editor baja las comillas
  2351. 1:44:25a la otra línea pero antes de esas
  2352. 1:44:27comillas aquí tenemos un espacio
  2353. 1:44:30bien así que vamos a ver el resultado a
  2354. 1:44:33ver si tenemos que hacer algún cambio
  2355. 1:44:35jaja aquí tenemos que hacer un pequeño
  2356. 1:44:37cambio voló a la tienda tenemos que
  2357. 1:44:40separar el valor y la letra a lo que
  2358. 1:44:42tenemos que hacer nada más es agregar un
  2359. 1:44:44espacio aquí antes de la a y ya vemos el
  2360. 1:44:47resultado la bicicleta pequeña voló a la
  2361. 1:44:50tienda lentamente y podemos agregar un
  2362. 1:44:53punto al final de la cadena lo que
  2363. 1:44:56tenemos es que concatenar una cadena que
  2364. 1:44:58contenga sólo un punto
  2365. 1:45:00y vemos el resultado modificado con el
  2366. 1:45:03punto genial ya completaste tu primer
  2367. 1:45:06mini proyecto en javascript y ya
  2368. 1:45:08prácticas te como concatenar cadenas de
  2369. 1:45:10caracteres recuerda siempre estar
  2370. 1:45:12pendiente de los espacios y de los
  2371. 1:45:14símbolos que son necesarios al principio
  2372. 1:45:16y al final de la cadena buen trabajo
  2373. 1:45:19vamos a seguir con nuestro siguiente
  2374. 1:45:21tema
  2375. 1:45:27ahora veremos otro tipo de dato muy
  2376. 1:45:29importante que puedes usar en javascript
  2377. 1:45:32los arreglos los arreglos son las
  2378. 1:45:35estructuras de datos que nos permiten
  2379. 1:45:37almacenar múltiples valores en una misma
  2380. 1:45:40estructura ya vas a ver son muy
  2381. 1:45:42parecidos a lo que nosotros
  2382. 1:45:44consideraríamos como una lista vamos a
  2383. 1:45:47definir una variable que se va a llamar
  2384. 1:45:49mi arreglo y a esa variable le vamos a
  2385. 1:45:52asignar un arreglo para crear un arreglo
  2386. 1:45:56escribimos corchetes y dentro de los
  2387. 1:45:59corchetes tendríamos los elementos de
  2388. 1:46:02ese arreglo
  2389. 1:46:04por ejemplo yo y 24 tenemos una cadena
  2390. 1:46:08de caracteres y un número los elementos
  2391. 1:46:12del arreglo están en una secuencia
  2392. 1:46:14específica cada uno tiene su lugar en
  2393. 1:46:17esa secuencia y la secuencia está en un
  2394. 1:46:19orden específico así como podríamos
  2395. 1:46:22acceder a los caracteres de una cadena
  2396. 1:46:24con sus índices también vamos a poder
  2397. 1:46:27acceder a cada uno de estos elementos
  2398. 1:46:30con su índice correspondiente vamos a
  2399. 1:46:33mostrar el arreglo y la consola a ver
  2400. 1:46:36que obtenemos vemos exactamente los dos
  2401. 1:46:39valores que están almacenados en el
  2402. 1:46:42arreglo y puedes ver que vamos a poder
  2403. 1:46:44acceder a esa estructura completa a
  2404. 1:46:47través de la variable mi arreglo esa es
  2405. 1:46:50la ventaja podemos agrupar valores bajo
  2406. 1:46:52una misma estructura
  2407. 1:46:54veamos otro ejemplo de un arreglo si
  2408. 1:46:58queremos crear una lista de los
  2409. 1:46:59estudiantes en un curso
  2410. 1:47:02sus nombres podemos guardar todos esos
  2411. 1:47:06nombres en una misma estructura en
  2412. 1:47:09nuestro programa
  2413. 1:47:11digamos que la llamamos estudiantes
  2414. 1:47:13llamamos a este arreglo estudiantes
  2415. 1:47:16simplemente creamos el arreglo con
  2416. 1:47:18corchetes y escribimos los elementos que
  2417. 1:47:21queremos agrupar cada elemento debe
  2418. 1:47:25estar separado del otro por una coma y
  2419. 1:47:27por un espacio después de la coma el
  2420. 1:47:30espacio se recomienda para que el código
  2421. 1:47:32sea más fácil de leer si mostramos ese
  2422. 1:47:35arreglo
  2423. 1:47:38estudiantes aquí lo podemos ver tenemos
  2424. 1:47:41los cuatro elementos agrupados en una
  2425. 1:47:43misma estructura
  2426. 1:47:45otro ejemplo podría ser notas de un
  2427. 1:47:47examen
  2428. 1:47:48digamos 95 67 89 y 56 como cuatro
  2429. 1:47:55exámenes y un estudiante saco esas
  2430. 1:47:57cuatro notas en cada uno de los exámenes
  2431. 1:47:59en una escala entre 1 y 100 también
  2432. 1:48:02podemos agrupar esas notas bajo una
  2433. 1:48:05misma estructura de datos en nuestro
  2434. 1:48:07programa aquí la tenemos
  2435. 1:48:09así que ya ves como los arreglos pueden
  2436. 1:48:12ser muy poderosos para trabajar con
  2437. 1:48:15valores relacionados en este caso
  2438. 1:48:17teníamos nombres de estudiantes en este
  2439. 1:48:20caso notas y en este caso digamos que
  2440. 1:48:23podría ser un arreglo que es guarda el
  2441. 1:48:26nombre del bona y su edad en las
  2442. 1:48:28próximas partes del curso vas a aprender
  2443. 1:48:30más sobre cómo puedes trabajar con los
  2444. 1:48:33arreglos en javascript así que
  2445. 1:48:35continuemos
  2446. 1:48:41algo muy interesante sobre los arreglos
  2447. 1:48:43es que pueden contener cualquier tipo de
  2448. 1:48:46datos incluyendo otros arreglos si
  2449. 1:48:49seguimos con nuestro ejemplo de la lista
  2450. 1:48:51de estudiantes ahora podemos representar
  2451. 1:48:53más sobre cada estudiante si han y damos
  2452. 1:48:56los arreglos aquí tenemos un arreglo
  2453. 1:48:59principal que estamos creando como los
  2454. 1:49:01que trabajamos en el tema anterior vemos
  2455. 1:49:03cuatro números elementos separados por
  2456. 1:49:05coma y un espacio ahora si esos
  2457. 1:49:08elementos en lugar de ser enteros o
  2458. 1:49:10cadenas de caracteres fuesen arreglos es
  2459. 1:49:14lo que llamamos un arreglo anidado aquí
  2460. 1:49:17puedes ver tenemos un par de corchetes y
  2461. 1:49:21otro par de corchetes separados por una
  2462. 1:49:24coma y un espacio y dentro de estos
  2463. 1:49:26arreglos podemos colocar los datos que
  2464. 1:49:28necesitemos por ejemplo no ahora tuvo
  2465. 1:49:32una nota del 97 en la materia y si no
  2466. 1:49:35tuvo una nota del 78 en la materia así
  2467. 1:49:38estamos creando elementos individuales
  2468. 1:49:40del arreglo principal aquí podemos decir
  2469. 1:49:44en el primer arreglo el primer elemento
  2470. 1:49:47estamos guardando la data del estudiante
  2471. 1:49:51en hora que detuvo una nota de 97 y en
  2472. 1:49:54el segundo reg lo tenemos allí no cuya
  2473. 1:49:57nota fue en 78
  2474. 1:49:59cada uno de estos arreglos puede ser
  2475. 1:50:01utilizado de forma individual pero los
  2476. 1:50:03estamos guardando en una estructura más
  2477. 1:50:05grande que los contiene a todos y
  2478. 1:50:08podemos usar esta variable para acceder
  2479. 1:50:10a esos valores si mostramos estos
  2480. 1:50:13valores puedes ver que se muestran los
  2481. 1:50:15arreglos anidados aquí tenemos el
  2482. 1:50:18arreglo principal que es toda la
  2483. 1:50:20estructura puedes ver los corchetes que
  2484. 1:50:23los rodean y luego dentro de esa
  2485. 1:50:25estructura de datos tenemos dos arreglos
  2486. 1:50:27con sus correspondientes valores bien
  2487. 1:50:30ahora veamos otro ejemplo
  2488. 1:50:33digamos que yo quiero hacer una lista de
  2489. 1:50:35precios tengo un inventario y quiero
  2490. 1:50:39crear un arreglo sencillo para los tipos
  2491. 1:50:42de elementos que vendo metiendo
  2492. 1:50:45lista de precios
  2493. 1:50:47creamos un arreglo que va a contener una
  2494. 1:50:50secuencia de arreglos el arreglo
  2495. 1:50:53principal va a tener un arreglo por cada
  2496. 1:50:56elemento cada artículo que yo vendo por
  2497. 1:50:59ejemplo camisa su precio es cinco puntos
  2498. 1:51:0267 y el código en el almacén es ese 134
  2499. 1:51:08mes así estoy agrupando todos los datos
  2500. 1:51:11relacionados a las camisas para mi
  2501. 1:51:14contexto en el mismo arreglo y aún así
  2502. 1:51:17es parte de un arreglo principal que me
  2503. 1:51:20da la data para la lista de precios o
  2504. 1:51:23lista de productos vamos a cambiarle el
  2505. 1:51:25nombre esta variable lista de productos
  2506. 1:51:27luego digamos que vendemos celulares
  2507. 1:51:30estos celulares cuestan 250 dólares y
  2508. 1:51:33tienen el código en el almacén de ese
  2509. 1:51:36356 también vendemos zapatos es una
  2510. 1:51:40tienda muy variada vende camisas
  2511. 1:51:41celulares y zapatos
  2512. 1:51:4436.7 digamos que cuestan en promedio el
  2513. 1:51:47código es 6 7 8
  2514. 1:51:50luego en el próximo tema vas a ver cómo
  2515. 1:51:53podemos acceder a cada uno de esos
  2516. 1:51:55arreglos internos los arreglos anidados
  2517. 1:51:57si mostramos la lista de productos en la
  2518. 1:52:00consola vamos a comentar esta línea para
  2519. 1:52:03que solo se vea este valor puedes ver
  2520. 1:52:06este resultado tenemos un arreglo
  2521. 1:52:09principal que contiene tres arreglos
  2522. 1:52:11anidados bien y también para mostrarte
  2523. 1:52:14que no solo podemos trabajar con enteros
  2524. 1:52:16y con cadenas de caracteres podemos
  2525. 1:52:19crear un arreglo con arreglos anidados
  2526. 1:52:22que contengan solo números decimales por
  2527. 1:52:25ejemplo si tenemos un experimento
  2528. 1:52:27realizamos un experimento y recolectamos
  2529. 1:52:29los datos digamos que para cada tipo de
  2530. 1:52:32experimento vamos a recolectar tres
  2531. 1:52:35datos tres veces vamos a repetir cada
  2532. 1:52:37tipo de experimentos entonces podemos
  2533. 1:52:40crear un arreglo de esta forma
  2534. 1:52:43un arreglo que contiene un arreglo
  2535. 1:52:45anidado para cada tipo de experimento
  2536. 1:52:48con sus tres resultados
  2537. 1:52:505.6 3.4 7.8 esto podría ser minutos que
  2538. 1:52:54tome realizar un experimento podría ser
  2539. 1:52:57algún resultado de una medida pero lo
  2540. 1:52:59importante es que los estamos agrupando
  2541. 1:53:01y podemos acceder a ellos como una
  2542. 1:53:03estructura de datos una agrupación de
  2543. 1:53:05datos relacionados con su punto los
  2544. 1:53:08decimos datos y comentamos
  2545. 1:53:11esta línea anterior y aquí podemos ver
  2546. 1:53:14el resultado en el bien ya sabes cómo
  2547. 1:53:18definir un arreglo con arreglos anidados
  2548. 1:53:20y para qué se usa así que pasemos a
  2549. 1:53:23nuestro siguiente tema hay mucho más que
  2550. 1:53:25ver sobre arreglos así que continuemos
  2551. 1:53:34una vez que ya definiste tu arreglo en
  2552. 1:53:36el programa es muy importante saber cómo
  2553. 1:53:39acceder a sus elementos porque para eso
  2554. 1:53:41que estamos creando el arreglo para
  2555. 1:53:43poder agrupar los elementos y luego
  2556. 1:53:45utilizarlos usarlos en el programa
  2557. 1:53:48vamos a definir una variable mi arreglo
  2558. 1:53:51recuerda que es con corchetes que
  2559. 1:53:54definimos un arreglo y este arreglo va a
  2560. 1:53:56tener tres elementos diez veinte y
  2561. 1:53:59treinta y tres números aquí voy a
  2562. 1:54:02escribir un comentario para que hagamos
  2563. 1:54:03un diagrama mixta que es parecido al que
  2564. 1:54:06hicimos con la cadena javascript con sus
  2565. 1:54:09índices aquí vemos el arreglo y aquí
  2566. 1:54:12vamos a ver el índice que corresponde a
  2567. 1:54:14cada uno de esos elementos igual que en
  2568. 1:54:16las cadenas de caracteres teníamos un
  2569. 1:54:18índice para cada carácter aquí vamos a
  2570. 1:54:21tener para un arreglo un índice para
  2571. 1:54:23cada elemento
  2572. 1:54:24comenzando desde el cero igual que en
  2573. 1:54:27las cadenas comenzamos a contar desde
  2574. 1:54:29cero en lugar de 1 así que el primer
  2575. 1:54:32elemento está en la posición en el
  2576. 1:54:34índice 0 el segundo elemento está en el
  2577. 1:54:36índice 1 el tercer elemento está en el
  2578. 1:54:39índice 2 y así sucesivamente para cada
  2579. 1:54:42uno de los elementos que tengamos en el
  2580. 1:54:44arreglo
  2581. 1:54:45así que cómo podemos acceder a estos
  2582. 1:54:48elementos vamos a mostrarlos en la
  2583. 1:54:50consola de esta forma escribimos el
  2584. 1:54:54nombre de la variable que contiene el
  2585. 1:54:55arreglo me arreglo y dentro de corchetes
  2586. 1:54:59igual que indexa vamos cadenas de
  2587. 1:55:01caracteres vamos a escribir el índice
  2588. 1:55:04del elemento
  2589. 1:55:06en este caso como es el índice 0 vamos a
  2590. 1:55:09tener el elemento 10 que lo tenemos acá
  2591. 1:55:11en el índice 0 si escribimos el índice 1
  2592. 1:55:16podemos acceder al elemento 20 que
  2593. 1:55:19tenemos acá si escribimos el índice
  2594. 1:55:22todos podemos acceder al elemento 30 que
  2595. 1:55:26tenemos aquí
  2596. 1:55:27así que ya podemos acceder a los tres
  2597. 1:55:30elementos del arreglo veamos en la
  2598. 1:55:32consola aquí puedes ver cómo tenemos los
  2599. 1:55:35tres elementos 10 20 y 30 en ese orden
  2600. 1:55:39con los índices 0 1 y 2 si tuviéramos un
  2601. 1:55:42cuarto elemento por ejemplo 40 el índice
  2602. 1:55:45sería 3 y pudiéramos acceder a ese
  2603. 1:55:47elemento con el índice 3 porque es
  2604. 1:55:50importante acceder a estos elementos
  2605. 1:55:51porque podemos usarlos en el programa
  2606. 1:55:54por ejemplo si queremos sumarlos y
  2607. 1:55:57decimos aquí suma podemos hacerlo hay
  2608. 1:56:00otras formas más eficientes de hacerlo
  2609. 1:56:02pero esto es un ejemplo de cómo se puede
  2610. 1:56:03usar podemos tomar cada uno de ellos mi
  2611. 1:56:08arreglo
  2612. 1:56:10101 y mi arreglo 2
  2613. 1:56:14estamos tomando cada uno de sus valores
  2614. 1:56:17en el índice cero en el índice 1 y en el
  2615. 1:56:20índice 2 y los estamos sumando y el
  2616. 1:56:23resultado lo estamos asignando a la
  2617. 1:56:25variable suma luego podemos mostrar ese
  2618. 1:56:29valor en la consola primero deberíamos
  2619. 1:56:32comentar estas líneas para no ver los
  2620. 1:56:35resultados anteriores y el resultado nos
  2621. 1:56:38va a mostrar la suma de los tres
  2622. 1:56:40elementos que es 60 así es como podemos
  2623. 1:56:44usar los elementos de un arreglo en
  2624. 1:56:47nuestro programa simplemente escribimos
  2625. 1:56:49el nombre de la variable seguido de
  2626. 1:56:51corchetes y dentro de los corchetes del
  2627. 1:56:54índice del elemento al cual queremos
  2628. 1:56:56acceder
  2629. 1:57:02también es muy importante saber cómo
  2630. 1:57:04modificar los datos de un arreglo así
  2631. 1:57:08que veamos un ejemplo si tenemos este
  2632. 1:57:10arreglo con los elementos 10 20 y 30 y
  2633. 1:57:14digamos que queremos actualizar
  2634. 1:57:17el valor o cambiarlo de 10 a 40 cómo
  2635. 1:57:22podemos hacerlo la sintaxis es muy
  2636. 1:57:24parecida a cómo accedemos al elemento
  2637. 1:57:28escribimos el nombre de la variable
  2638. 1:57:30luego corchetes y dentro de los
  2639. 1:57:32corchetes el índice del elemento que
  2640. 1:57:35queremos cambiar y
  2641. 1:57:38ahora lo que vamos a escribir es algo
  2642. 1:57:40parecido a como asignamos el valor a una
  2643. 1:57:43variable es exactamente igual en
  2644. 1:57:45realidad es el lado derecho de esa línea
  2645. 1:57:47tenemos el signo igual seguido del nuevo
  2646. 1:57:51valor el signo igual y el número que
  2647. 1:57:55queremos asignar con esta línea
  2648. 1:57:57básicamente le decimos a javascript
  2649. 1:58:00quiero actualizar un valor en este
  2650. 1:58:03arreglo en el índice 0 ahora quiero que
  2651. 1:58:06aparezca este valor eso es básicamente
  2652. 1:58:08lo que hacemos con esta línea
  2653. 1:58:11y como los arreglos son mutables a
  2654. 1:58:14diferencia de las cadenas de caracteres
  2655. 1:58:15si podemos cambiar un elemento
  2656. 1:58:18individual del arreglo
  2657. 1:58:20si mostramos el valor del arreglo luego
  2658. 1:58:23de ese cambio podemos verlo en la
  2659. 1:58:24consola aquí puedes ver que el valor en
  2660. 1:58:28el índice 0 ahora es 40 en lugar de 10
  2661. 1:58:31lo que teníamos inicialmente y así es
  2662. 1:58:34como puedes actualizar un elemento en un
  2663. 1:58:36arreglo también podríamos asignar
  2664. 1:58:39valores de distintos tipos por ejemplo
  2665. 1:58:42si en el índice 1
  2666. 1:58:45vamos a cerrar la consola aquí para
  2667. 1:58:48poder ver el código más detalle en el
  2668. 1:58:50índice 1 yo quisiera asignar una cadena
  2669. 1:58:53que diga hola por ejemplo en lugar de
  2670. 1:58:57este número el número 20 vamos a tener
  2671. 1:58:59esta cadena en el arreglo veamos la
  2672. 1:59:02consola aquí lo puedes ver en el índice
  2673. 1:59:061 ahora tenemos la cadena ahora en lugar
  2674. 1:59:09del número original
  2675. 1:59:10también podríamos asignar otros tipos de
  2676. 1:59:12datos por ejemplo podemos asignar un
  2677. 1:59:15arreglo como el valor en este caso
  2678. 1:59:19piensa por un segundo que es lo que
  2679. 1:59:21obtendríamos estamos asignando este
  2680. 1:59:24valor
  2681. 1:59:25al índice 1 que es lo que va a ocurrir
  2682. 1:59:28es algo que vemos en un tema anterior
  2683. 1:59:31veamos la una consola aquí puedes ver
  2684. 1:59:34que tenemos un arreglo vanidad porque
  2685. 1:59:37porque dijimos que queremos que todo
  2686. 1:59:39este arreglo sea el elemento que va a
  2687. 1:59:42aparecer en el índice 1 y este es el
  2688. 1:59:44elemento que va a aparecer en el índice
  2689. 1:59:461 igual se preservan los elementos que
  2690. 1:59:50ya estaban en el arreglo antes del
  2691. 1:59:51cambio 10 y 30 pero también tenemos una
  2692. 1:59:54regularidad bien ya sabes cómo acceder a
  2693. 1:59:57los elementos de un arreglo con su
  2694. 1:59:59índice correspondiente recuerda que
  2695. 2:00:01comenzamos a contar desde cero luego
  2696. 2:00:03vamos a 1 luego vamos a 2 y así
  2697. 2:00:05sucesivamente para cada elemento y que
  2698. 2:00:08podemos asignar un valor de cualquier
  2699. 2:00:10tipo de datos ahora pasemos a nuestro
  2700. 2:00:13siguiente temas sobre arreglos
  2701. 2:00:20así como puedes acceder a los elementos
  2702. 2:00:23de un arreglo elementos como números o
  2703. 2:00:25cadenas también puedes acceder a
  2704. 2:00:28elementos que sean arreglos o arreglos
  2705. 2:00:30anidados los arreglos que contienen
  2706. 2:00:33arreglos anidados se denominan arreglos
  2707. 2:00:37multidimensionales veamos un ejemplo mi
  2708. 2:00:40arreglo y este arreglo solo va a
  2709. 2:00:43contener arreglos anidados tenemos 1 2 3
  2710. 2:00:464 5 6 7 8 9
  2711. 2:00:51es un arreglo principal que contiene
  2712. 2:00:54tres elementos este es el primer
  2713. 2:00:56elemento este es el segundo elemento y
  2714. 2:00:59este es el tercer elemento lo puedes
  2715. 2:01:01distinguir visualmente por las comas que
  2716. 2:01:04tenemos aquí luego del corchete que
  2717. 2:01:06cierra el elemento esto es lo que nos
  2718. 2:01:08separa un elemento de otro en el arreglo
  2719. 2:01:11principal así que tenemos tres elementos
  2720. 2:01:14pero como podemos usar los índices para
  2721. 2:01:17acceder a estos números que tenemos aquí
  2722. 2:01:20veamos un momentito un diagrama que
  2723. 2:01:23vamos a crear aquí rapidito decimos
  2724. 2:01:26arreglo después vamos a tener una
  2725. 2:01:28secuencia de índices y luego vamos a
  2726. 2:01:31tener una secuencia de índices internos
  2727. 2:01:33para cada uno de esos elementos o de
  2728. 2:01:35esos arreglos anidados vamos a copiar y
  2729. 2:01:38pegar este arreglo aquí cada uno de esos
  2730. 2:01:42arreglos tiene un índice que nos permite
  2731. 2:01:45acceder a todo el arreglo completo como
  2732. 2:01:48un elemento
  2733. 2:01:50este es el índice cero este es el índice
  2734. 2:01:521 y este es el índice 2
  2735. 2:01:55así que si usamos el índice 1 por
  2736. 2:01:57ejemplo vamos a acceder a este arreglo
  2737. 2:01:59completo con todos sus tres elementos
  2738. 2:02:02después si queremos acceder a algunos de
  2739. 2:02:05esos elementos internos de cada uno de
  2740. 2:02:07los arreglos anidados tenemos que usar
  2741. 2:02:10otro índice más si vamos a usar dos
  2742. 2:02:13índices porque tenemos primero que decir
  2743. 2:02:15cuál arreglo queremos seleccionar de
  2744. 2:02:18estos tres y después decir cuál elemento
  2745. 2:02:21queremos seleccionar de ese arreglo así
  2746. 2:02:24que reiniciamos o volvemos a comenzar la
  2747. 2:02:27secuencia de índices desde 0 0 1 y 2
  2748. 2:02:330 1 y 2 0 1 y 2 así que si cogemos por
  2749. 2:02:39ejemplo primero el índice 0 vamos a
  2750. 2:02:42escoger este arreglo y si queremos el
  2751. 2:02:44número 3 tenemos que escoger nuevamente
  2752. 2:02:46otro índice que es el 2 y así vamos a
  2753. 2:02:49llegar al número que tenemos acá
  2754. 2:02:51analiza esto por un segundo por ejemplo
  2755. 2:02:54cómo accederían a este elemento el
  2756. 2:02:58número 8 piensa esto por unos segundos
  2757. 2:03:03lo primero que haríamos es usar el
  2758. 2:03:06índice 2 para acceder a este arreglo
  2759. 2:03:08completo y luego estaríamos el índice 1
  2760. 2:03:12porque el elemento 8 el número 8 está en
  2761. 2:03:15el índice 1 de ese arreglo es el segundo
  2762. 2:03:18elemento recuerda que comenzamos a
  2763. 2:03:20contar desde cero
  2764. 2:03:22bien ya esta es la parte teórica de cómo
  2765. 2:03:24va a funcionar así que veamos el cuadro
  2766. 2:03:27primero vamos a comprobar que podemos
  2767. 2:03:29acceder a estos arreglos de forma
  2768. 2:03:31individual a todo el arreglo completo
  2769. 2:03:34usando su índice mi arreglo en el índice
  2770. 2:03:39cero
  2771. 2:03:41será este arreglo 1 2 3
  2772. 2:03:44el índice 0 no retorna esta regla en la
  2773. 2:03:48consola podemos ver el arreglo 123
  2774. 2:03:51exactamente lo que necesitábamos lo que
  2775. 2:03:53queríamos y lo que esperábamos de ahora
  2776. 2:03:56vamos a probar con los otros dos índices
  2777. 2:03:58y arreglo 1
  2778. 2:04:024 5 y 6
  2779. 2:04:06y luego me arreglo 2
  2780. 2:04:107 8 y 9
  2781. 2:04:12aquí podemos ver los tres resultados
  2782. 2:04:14podemos acceder a cada uno de estos
  2783. 2:04:17arreglos de forma individual a todo el
  2784. 2:04:19arreglo completo pero también es
  2785. 2:04:22probable que necesitemos acceder luego a
  2786. 2:04:24algunos de estos elementos de cada uno
  2787. 2:04:27de esos arreglos como podemos hacerlo
  2788. 2:04:30con el segundo índice que vimos en el
  2789. 2:04:32diagrama
  2790. 2:04:32digamos que queremos acceder al número 6
  2791. 2:04:36que tenemos acá vamos a borrar estas dos
  2792. 2:04:39líneas porque solo vamos a trabajar en
  2793. 2:04:42este ejemplo con el segundo arreglo
  2794. 2:04:44anidada que tenemos acá
  2795. 2:04:46el arreglo está en el índice 1 pero
  2796. 2:04:49luego de que accedemos a ese arreglo en
  2797. 2:04:52el índice 1 tenemos que especificar el
  2798. 2:04:54índice del elemento que queremos acceder
  2799. 2:04:57que queremos obtener en este caso
  2800. 2:04:59queremos obtener el elemento 6 el tercer
  2801. 2:05:03elemento en el arreglo ya dijimos que
  2802. 2:05:05este es el arreglo en el índice número 1
  2803. 2:05:07y ahora tenemos que decir que el número
  2804. 2:05:10está en el índice 2 el elemento que
  2805. 2:05:13queremos acceder está en el índice 2
  2806. 2:05:16y como puedes ver tenemos una secuencia
  2807. 2:05:18de dos índices así es como podemos
  2808. 2:05:21acceder a un elemento de una regla
  2809. 2:05:23unidad primero especificamos el índice
  2810. 2:05:26del arreglo y luego el índice del
  2811. 2:05:28elemento esto ya no va a ser un arreglo
  2812. 2:05:30sino que va a ser el elemento 6
  2813. 2:05:33si abrimos la consola podemos verlo aquí
  2814. 2:05:36tenemos el número 6 probemos con otra
  2815. 2:05:39combinación por ejemplo si queremos
  2816. 2:05:41exceder al elemento 7 aquí el número 7
  2817. 2:05:45vemos que está en el arreglo que está en
  2818. 2:05:49el índice 2 así que cambiaremos el 1 por
  2819. 2:05:53el 2 y luego para acceder al número 7
  2820. 2:05:56cambiaríamos este índice por 0
  2821. 2:05:59primero el índice del arreglo y luego el
  2822. 2:06:02índice del elemento esto resultaría en 7
  2823. 2:06:06veámoslo en la consola aquí lo podemos
  2824. 2:06:09ver tenemos el elemento que es el número
  2825. 2:06:117 exactamente lo que queríamos
  2826. 2:06:14podemos escribir la secuencia para
  2827. 2:06:16ilustrar esto mejor por ejemplo si
  2828. 2:06:18queremos acceder a todos los elementos
  2829. 2:06:20del segundo arreglo tendríamos que ir
  2830. 2:06:24incrementando el índice del elemento
  2831. 2:06:26nada más nos mantenemos en el índice
  2832. 2:06:29constante del índice 1 porque estamos en
  2833. 2:06:32el mismo arreglo pero vamos cambiando el
  2834. 2:06:34índice que corresponde al elemento y
  2835. 2:06:36tendríamos 4 5 y 6
  2836. 2:06:42te recomiendo practicar cómo acceder a
  2837. 2:06:44los elementos de este arreglo este
  2838. 2:06:47arreglo está en el índice cero y cada
  2839. 2:06:49uno de los elementos está en su índice
  2840. 2:06:51correspondiente práctica cómo acceder a
  2841. 2:06:53cada uno de esos elementos y cuando
  2842. 2:06:55estés listo o lista continúa con el
  2843. 2:06:58siguiente tema
  2844. 2:07:03y los arreglos son las estructuras de
  2845. 2:07:05datos muy poderosas no solamente podemos
  2846. 2:07:07acceder y modificar los elementos de un
  2847. 2:07:10arreglo también podemos agregar
  2848. 2:07:13elementos al arreglo así que veamos cómo
  2849. 2:07:15puedes agregar esos elementos digamos
  2850. 2:07:18que tenemos una lista de cadenas de
  2851. 2:07:21caracteres que van a representar las
  2852. 2:07:23estaciones del año están ordenadas en
  2853. 2:07:26orden alfabético
  2854. 2:07:27y cuál es la que nos falta verán a cómo
  2855. 2:07:31podemos agregar esa cadena de caracteres
  2856. 2:07:33al arreglo con algo llamado un método un
  2857. 2:07:38método es como una función que podemos
  2858. 2:07:40llamar para hacer algo con un elemento
  2859. 2:07:43de nuestro código
  2860. 2:07:45y los arreglos tienen métodos
  2861. 2:07:47específicos que podemos llamar para
  2862. 2:07:49trabajar con ellos
  2863. 2:07:50el método push es muy útil porque nos
  2864. 2:07:53permite añadir un elemento al final del
  2865. 2:07:56arreglo y eso es exactamente lo que
  2866. 2:07:58necesitamos en este caso porque queremos
  2867. 2:08:01que esté ordenado en orden alfabético
  2868. 2:08:04queremos agregar verano aquí al final
  2869. 2:08:07como el cuarto elemento para eso
  2870. 2:08:09llamamos al método puig escribimos el
  2871. 2:08:12nombre de la variable se llevó un punto
  2872. 2:08:14el punto es esencial porque el punto le
  2873. 2:08:18dice a chabás que bueno toma este
  2874. 2:08:20arreglo y para ese arreglo en particular
  2875. 2:08:23realiza esta acción pues literalmente
  2876. 2:08:27sería empujar pero en este contexto
  2877. 2:08:30sería añadir un elemento al final del
  2878. 2:08:32arreglo
  2879. 2:08:33así que si mostramos el valor del
  2880. 2:08:36arreglo luego de agregar ese elemento
  2881. 2:08:38que es lo que resulta vemos que el
  2882. 2:08:41arreglo tiene este elemento verano bien
  2883. 2:08:44ahora veamos otros métodos que van a ser
  2884. 2:08:46útiles para trabajar con arreglos
  2885. 2:08:48también
  2886. 2:08:52también tenemos un método para remover
  2887. 2:08:56el último elemento de un arreglo veamos
  2888. 2:08:58un ejemplo
  2889. 2:09:00vamos a declarar una variable estaciones
  2890. 2:09:03y vamos a inicializar su valor a un
  2891. 2:09:07arreglo con las cuatro estaciones
  2892. 2:09:10ordenadas alfabéticamente
  2893. 2:09:13de esta forma digamos que queremos
  2894. 2:09:16remover el último elemento del arreglo
  2895. 2:09:19en este caso sería verano que tenemos
  2896. 2:09:22que hacer simplemente llamamos al método
  2897. 2:09:25pop escribimos el nombre de la variable
  2898. 2:09:28luego el nombre del método pop y esto va
  2899. 2:09:31a remover el último elemento vamos a
  2900. 2:09:34mostrar el valor de estaciones luego de
  2901. 2:09:37llamar a pop aquí lo vemos verano fue
  2902. 2:09:40removido del final del arreglo invierno
  2903. 2:09:43otoño y primavera
  2904. 2:09:45wow también además de remover ese
  2905. 2:09:48elemento lo retorna así que podemos
  2906. 2:09:51asignarlo a una variable digamos que
  2907. 2:09:54tenemos una variable llamada estación
  2908. 2:09:58vamos a declarar la aquí arriba vamos a
  2909. 2:10:01asignarle ese valor que estamos
  2910. 2:10:04removiendo verano a la variable estación
  2911. 2:10:07esa es otra ventaja que nos da el método
  2912. 2:10:10pop podemos eliminar el elemento y
  2913. 2:10:13asignarlo a una variable para trabajar
  2914. 2:10:15con ese elemento de forma individual si
  2915. 2:10:18lo necesitamos
  2916. 2:10:20vamos a mostrar el arreglo y también
  2917. 2:10:22vamos a mostrar la estación que fue
  2918. 2:10:25removida aquí lo podemos ver el arreglo
  2919. 2:10:28tiene tres elementos nada más y la
  2920. 2:10:30estación verano esta cadena de
  2921. 2:10:33caracteres que fue removida fue asignada
  2922. 2:10:36exitosamente a la variable estación
  2923. 2:10:39genial ya sabes cómo trabajar con el
  2924. 2:10:42método pop recuerda escribes el nombre
  2925. 2:10:45de la variable seguido de un punto el
  2926. 2:10:47nombre del método y en este caso pop no
  2927. 2:10:51toma ningún argumento así que solo
  2928. 2:10:53escribes paréntesis vacíos para llamar
  2929. 2:10:56al método
  2930. 2:11:01tenemos otro método de arreglos que es
  2931. 2:11:04muy muy útil que nos permite remover el
  2932. 2:11:06primer elemento del arreglo en vez de
  2933. 2:11:09removerlo del final del arreglo el
  2934. 2:11:11último elemento ahora vamos a remover el
  2935. 2:11:14primer elemento
  2936. 2:11:15veamos
  2937. 2:11:17tenemos un arreglo con las estaciones
  2938. 2:11:19invierno otoño y primavera cómo podemos
  2939. 2:11:22eliminar la cadena que dice invierno
  2940. 2:11:24también podemos agregar verano aquí como
  2941. 2:11:28podemos eliminar la primera cadena del
  2942. 2:11:31arreglo invierno el primer elemento lo
  2943. 2:11:34que podemos hacer es escribir el nombre
  2944. 2:11:36de la variable que contiene el arreglo y
  2945. 2:11:39llamar al método shift el método shift
  2946. 2:11:43nos permite remover el primer elemento
  2947. 2:11:46del arreglo no tenemos que especificar
  2948. 2:11:48ningún valor pero los paréntesis si son
  2949. 2:11:51muy muy importantes porque eso es lo que
  2950. 2:11:54le dice a javascript quiero que ejecute
  2951. 2:11:56esta acción y luego de ejecutar esta
  2952. 2:11:59acción podemos ver el valor del arreglo
  2953. 2:12:02estaciones
  2954. 2:12:04otoño primavera y verano puedes ver que
  2955. 2:12:07invierno fue removido exitosamente de
  2956. 2:12:10nuestro arreglo luego de llamar a shift
  2957. 2:12:12genial ya puedes remover el primer
  2958. 2:12:15elemento del arreglo pero también
  2959. 2:12:17podemos agregar un elemento al principio
  2960. 2:12:20de la regla y eso lo que vamos a ver en
  2961. 2:12:22el próximo tema
  2962. 2:12:29ahora veamos cómo puedes agregar un
  2963. 2:12:31elemento al principio de un arreglo por
  2964. 2:12:35ejemplo si tenemos estas tres estaciones
  2965. 2:12:37invierno otoño y primavera
  2966. 2:12:39digamos que queremos agregar verano al
  2967. 2:12:41principio del arreglo que aparezca aquí
  2968. 2:12:44antes de invierno lo podemos hacer
  2969. 2:12:46llamando al método and set ya saber cómo
  2970. 2:12:50se escribe
  2971. 2:12:51escribimos el nombre de las variables
  2972. 2:12:53seguido en un punto y luego
  2973. 2:12:57escribimos on shift
  2974. 2:12:59recuerda que el método anterior era
  2975. 2:13:01shift 'será para eliminar aun shift es
  2976. 2:13:05para agregar al principio de la regla
  2977. 2:13:08pero en este caso si tenemos que
  2978. 2:13:10especificar un valor entre paréntesis
  2979. 2:13:12porque tenemos que decirle a javascript
  2980. 2:13:15que elemento queremos agregar al
  2981. 2:13:17principio del arreglo en este caso sería
  2982. 2:13:21la cadena verano podemos agregar un
  2983. 2:13:24comentario aquí agregar al principio del
  2984. 2:13:28arreglo y si mostramos luego de realizar
  2985. 2:13:31esta operación el nuevo valor del
  2986. 2:13:34arreglo lo veremos actualizado aquí
  2987. 2:13:37puedes ver la consola vemos verano
  2988. 2:13:39invierno otoño y primavera verano es el
  2989. 2:13:42primer elemento del arreglo exactamente
  2990. 2:13:46lo que queríamos al llamar a un set
  2991. 2:13:49bien ya sabes los cuatro métodos
  2992. 2:13:51principales puig
  2993. 2:13:54shift y on sep para trabajar con el
  2994. 2:13:57principio y el final de un arreglo buen
  2995. 2:13:59trabajo y buen trabajo durante el curso
  2996. 2:14:01ya estás avanzando muchísimo ya suaves
  2997. 2:14:03operaciones importantísimas para
  2998. 2:14:05programar en javascript
  2999. 2:14:07así que cuando estés listo lista
  3000. 2:14:08continuemos al siguiente tema
  3001. 2:14:15genial ahora comenzamos nuestro segundo
  3002. 2:14:18mini proyecto
  3003. 2:14:20en este mini proyecto nos vamos a
  3004. 2:14:22centrar en los arreglos anidados vamos a
  3005. 2:14:25escribir un arreglo multidimensional que
  3006. 2:14:27representa en nuestra lista de compras
  3007. 2:14:29digamos que vamos a ir al supermercado y
  3008. 2:14:32queremos representar nuestra lista de
  3009. 2:14:34compras en javascript así que vamos a
  3010. 2:14:37hacer lo primero vamos a definir una
  3011. 2:14:39variable que va a tener como nombre mi
  3012. 2:14:41lista de compras lo primero que hacemos
  3013. 2:14:43es definir el arreglo principal con un
  3014. 2:14:46par de corchetes y luego empezamos a
  3015. 2:14:49escribir los arreglos anidados
  3016. 2:14:52que vamos a escribir en estos arreglos
  3017. 2:14:54anidados
  3018. 2:14:55primero el producto que vamos a comprar
  3019. 2:14:58por ejemplo serial y después la cantidad
  3020. 2:15:02si son cajas es el número representaría
  3021. 2:15:05cajas y esk y los representaría aquí los
  3022. 2:15:07diez paquetes representaría paquetes que
  3023. 2:15:10vamos a comprar tres cajas de cereal
  3024. 2:15:14vamos a comprar dos cartones de leche
  3025. 2:15:16vamos a comprar cuatro paquetes de
  3026. 2:15:19galletas luego también tenemos que
  3027. 2:15:21comprar cinco panes cinco panes de
  3028. 2:15:23sándwich puede ser siete unidades de
  3029. 2:15:26refresco vamos a comprar y luego
  3030. 2:15:29más sano vamos a comprar 7 kilos de
  3031. 2:15:31pollo eso ya no me permite representar
  3032. 2:15:34nuestra lista de compras en javascript y
  3033. 2:15:38qué podemos hacer con esto por ejemplo
  3034. 2:15:41podríamos acceder a esos valores y
  3035. 2:15:43mostrarlos en la consola
  3036. 2:15:46digamos voy a comprar
  3037. 2:15:50tantas unidades de y allí vamos a
  3038. 2:15:54reemplazar los valores de lo que vamos a
  3039. 2:15:55comprar digamos por ejemplo
  3040. 2:15:58voy a comprar
  3041. 2:16:00para reemplazar el valor vamos a tener
  3042. 2:16:03que concatenar cadenas voy a comprar
  3043. 2:16:06agregamos un espacio y luego tenemos que
  3044. 2:16:10conseguir el número tantas unidades del
  3045. 2:16:12producto
  3046. 2:16:13por ejemplo si es para el cereal
  3047. 2:16:16estaríamos accediendo al primer arreglo
  3048. 2:16:190
  3049. 2:16:20el índice 0 y luego el segundo elemento
  3050. 2:16:23el número 3 que sería el elemento en el
  3051. 2:16:27índice 1 en el índice 0 estaría serial y
  3052. 2:16:31en el índice 1 estaría el número
  3053. 2:16:33voy a acceder comprar tantas las
  3054. 2:16:37contraten amos a unidades con un espacio
  3055. 2:16:39de y luego volvemos a concatenar
  3056. 2:16:44aquí pero aquí sí tenemos que colocar el
  3057. 2:16:47nombre del producto que sería esta
  3058. 2:16:49combinación pero tendríamos que cambiar
  3059. 2:16:52el 1 por el 0
  3060. 2:16:55si estamos de alguna forma invirtiendo
  3061. 2:16:58el orden estamos colocando en el mensaje
  3062. 2:17:01primero el valor la cantidad de unidades
  3063. 2:17:03que es el segundo elemento de cada
  3064. 2:17:06arreglo y luego estamos colocando el
  3065. 2:17:09nombre del producto que está en el
  3066. 2:17:11índice cero este segundo índice es el
  3067. 2:17:13que determina el elemento que vamos a
  3068. 2:17:15mostrar y el primer índice selecciona el
  3069. 2:17:19arreglo que corresponde vamos a usar los
  3070. 2:17:22comentarios aquí para aquí vamos a
  3071. 2:17:23mostrar la data del cereal luego vamos a
  3072. 2:17:27mostrar los de la leche
  3073. 2:17:29para eso para la leche ahora tenemos que
  3074. 2:17:31seleccionar el segundo arreglo
  3075. 2:17:35que tenemos acá para eso cambiamos el
  3076. 2:17:37primer índice a 1 1 y 1 y el orden del
  3077. 2:17:43segundo índice se mantiene
  3078. 2:17:45intacto primero el número que es el
  3079. 2:17:48segundo elemento y luego el producto que
  3080. 2:17:51es el primer elemento
  3081. 2:17:53lo mismo podemos hacer con las galletas
  3082. 2:17:57mis favoritas son las que tienen chispas
  3083. 2:17:59las chispas de chocolate
  3084. 2:18:02voy a comprar tantas chispas digamos dos
  3085. 2:18:05en este caso como es el tercer arreglo
  3086. 2:18:08el índice de ese arreglo lo tenemos que
  3087. 2:18:11actualizar a 2 y así sucesivamente
  3088. 2:18:14te invito a completar toda esta lista de
  3089. 2:18:18compras para mostrar cuánto vas a
  3090. 2:18:21comprar de cada producto nos quedaría
  3091. 2:18:23mostrar la cantidad de pan la cantidad
  3092. 2:18:25de refresco y la cantidad de pollo
  3093. 2:18:27también puedes personalizar en tu lista
  3094. 2:18:29de compras vamos a ver qué nos muestra
  3095. 2:18:32hasta ahora la consola
  3096. 2:18:36genial así que pasemos a nuestro
  3097. 2:18:38siguiente tema
  3098. 2:18:44bien excelente trabajo hasta ahora ya
  3099. 2:18:47pasamos la parte más básica del curso y
  3100. 2:18:50ya puedes empezar a crear programas más
  3101. 2:18:52poderosos y que estén mejor
  3102. 2:18:53estructurados para estructurar mejor
  3103. 2:18:56nuestros programas vamos a ver un
  3104. 2:18:58concepto una herramienta que podemos
  3105. 2:19:00usar en nuestro código que es muy muy
  3106. 2:19:02muy útil se llaman funciones
  3107. 2:19:05con las funciones podemos escribir
  3108. 2:19:07código que podemos reutilizar en nuestro
  3109. 2:19:10programa ya vas a ver cómo funciona cómo
  3110. 2:19:13definimos una función
  3111. 2:19:15primero que todo escribimos la palabra
  3112. 2:19:18reservada function vas a ver que cambia
  3113. 2:19:21de color porque es una palabra
  3114. 2:19:22específica en javascript para definir
  3115. 2:19:25funciones luego tenemos que asignarle un
  3116. 2:19:28nombre a nuestra función es el nombre
  3117. 2:19:30que vamos a usar en nuestro programa
  3118. 2:19:32cuando queramos ejecutar ese bloque de
  3119. 2:19:34código esta secuencia de instrucciones
  3120. 2:19:37en lugar de escribir las instrucciones
  3121. 2:19:39solo escribimos su nombre y ya el
  3122. 2:19:41programa sabe qué es lo que queremos
  3123. 2:19:43ejecutar en este caso vamos a llamar a
  3124. 2:19:46nuestra función mostrar mensajes también
  3125. 2:19:49siempre después desde el nombre de la
  3126. 2:19:51función tiene que tener este par de
  3127. 2:19:53paréntesis inmediatamente después del
  3128. 2:19:55nombre de la función los paréntesis por
  3129. 2:19:58ahora van a estar vacíos
  3130. 2:20:00y luego entre llaves abrimos las llaves
  3131. 2:20:03y hacemos clic en enter vas a ver que la
  3132. 2:20:07llave que cierra el par se coloca aquí
  3133. 2:20:11abajo y la primera llave se coloca aquí
  3134. 2:20:13arriba en la primera línea en la misma
  3135. 2:20:16línea donde definimos la función así es
  3136. 2:20:19que nos referimos a esto técnicamente
  3137. 2:20:21esto se llama una definición de una
  3138. 2:20:23función que vamos a hacer en esta
  3139. 2:20:26función queremos mostrar un mensaje para
  3140. 2:20:28eso tenemos que usar con su punto lo que
  3141. 2:20:31íbamos a mostrar el mensaje
  3142. 2:20:34hola mundo qué diferencia va a ser esto
  3143. 2:20:37nuestro programa me imagino que te deben
  3144. 2:20:38estar preguntando lo que vamos a poder
  3145. 2:20:41hacer es que solamente con este nombre
  3146. 2:20:44mostrar mensaje vamos a poder ejecutar
  3147. 2:20:46esta línea de código sin tener que
  3148. 2:20:49escribirla queremos realizar esta acción
  3149. 2:20:52y podemos usarla cuántas veces queramos
  3150. 2:20:55por ejemplo mostrar el mensaje
  3151. 2:20:57y tenemos que para ejecutar esa acción
  3152. 2:21:00igual que con los métodos necesitamos
  3153. 2:21:02tener un par de paréntesis puede haber
  3154. 2:21:05valores aquí pero vamos a verlo en un
  3155. 2:21:07próximo tema
  3156. 2:21:09y podemos ejecutarlo cuántas veces
  3157. 2:21:11queramos si queremos mostrar el mensaje
  3158. 2:21:13seis veces que tenemos tres y seis veces
  3159. 2:21:16podemos solo escribir el nombre de la
  3160. 2:21:18función seis veces y este mensaje se va
  3161. 2:21:21a mostrar vamos a abrir la consola aquí
  3162. 2:21:24puedes verlo hola mundo seis veces
  3163. 2:21:27porque llamamos a la función seis veces
  3164. 2:21:30ese es el término que usamos en
  3165. 2:21:32programación cuando ejecutamos una
  3166. 2:21:34función decimos que estamos llamando a
  3167. 2:21:36la función estamos diciendo al programa
  3168. 2:21:38ley quiero ejecutar esta funcionalidad
  3169. 2:21:41que yo definía en mi función en este
  3170. 2:21:44punto específico del programa son muy
  3171. 2:21:47muy útiles y te van a permitir ahorrar
  3172. 2:21:49mucha repetición rare mucha repetición
  3173. 2:21:51de código que ese es un principio muy
  3174. 2:21:54importante en programación siempre
  3175. 2:21:55tratamos de no repetir código en nuestro
  3176. 2:21:58programa lo menos posible en este caso
  3177. 2:22:01puede ser que no veas inmediatamente el
  3178. 2:22:03beneficio de la función porque solo
  3179. 2:22:05tenemos una línea aquí
  3180. 2:22:07pero por ejemplo
  3181. 2:22:08si tuviéramos cinco diez o veinte líneas
  3182. 2:22:12aquí nos estaríamos ahorrando escribir
  3183. 2:22:14veinte líneas por cada vez que llamamos
  3184. 2:22:17a la función ya ves que podríamos tener
  3185. 2:22:19unas cientos de líneas fácilmente si no
  3186. 2:22:22tuviéramos una función con la función
  3187. 2:22:25sólo escribimos el código una vez y con
  3188. 2:22:27su nombre la llamamos genial ya sabes
  3189. 2:22:31más sobre el concepto de una función
  3190. 2:22:33pero son muy poderosas y vamos a
  3191. 2:22:36trabajar con ellas en los próximos temas
  3192. 2:22:38del curso vas a aprender cómo
  3193. 2:22:40personalizarlas y cómo aprovechar todo
  3194. 2:22:42su poder
  3195. 2:22:47las funciones son muy útiles porque nos
  3196. 2:22:49permiten escribir códigos reutilizable
  3197. 2:22:51en la parte anterior viste cómo puedes
  3198. 2:22:54definir una función sencilla pero
  3199. 2:22:57ahorita vamos a agregarle un poco más de
  3200. 2:23:00funcionalidad a nuestras funciones vamos
  3201. 2:23:03a hacer escribir una función con dos
  3202. 2:23:05líneas y también vamos a agregarle la
  3203. 2:23:08capacidad de recibir valores de tomar
  3204. 2:23:10valores cuando la llamamos lo primero es
  3205. 2:23:13la palabra reservada function en nuestro
  3206. 2:23:16ejemplo va a llamarse sumar esta va a
  3207. 2:23:19ser nuestra función
  3208. 2:23:21sabemos que podemos sumar dos números
  3209. 2:23:23con el operador de suma al operador más
  3210. 2:23:25pero para que este ejemplo sea sencillo
  3211. 2:23:28vamos a implementar esta operación como
  3212. 2:23:30una función que es lo que vamos a sumar
  3213. 2:23:33lo primero que necesitamos saber para
  3214. 2:23:35una operación es que operando vamos a
  3215. 2:23:38usar valores vamos a tener y para eso
  3216. 2:23:40entre paréntesis vamos a escribir dos
  3217. 2:23:44nombres estos se llaman parámetros son
  3218. 2:23:48cualquier nombre que tú le quieras
  3219. 2:23:50asignar a un valor que se va a recibir o
  3220. 2:23:53que se va a tomar cuando llamemos a la
  3221. 2:23:55función en este caso vamos a sumar los
  3222. 2:23:58valores de a y debe así que vamos a
  3223. 2:24:02escribir esos dos parámetros en la lista
  3224. 2:24:04está lista normalmente le llamamos la
  3225. 2:24:07lista de parámetros no necesariamente
  3226. 2:24:10sus nombres tienen que ser ahí de puede
  3227. 2:24:12ser número uno número dos pueden ser
  3228. 2:24:16xy puede ser cualquier nombre que
  3229. 2:24:20quieras asignarle o claro cualquier
  3230. 2:24:22nombre es válido javascript
  3231. 2:24:25entonces si nosotros decimos que vamos a
  3232. 2:24:27sumar ahí ver qué es lo que vamos a
  3233. 2:24:30hacer en el cuerpo de la función esta
  3234. 2:24:33parte la secuencia de instrucciones que
  3235. 2:24:35es parte de la función que se van a
  3236. 2:24:37ejecutar cuando llamemos a la función se
  3237. 2:24:40denomina cuerpo y eso lo que vamos a
  3238. 2:24:42escribir el cuerpo de la función
  3239. 2:24:45vamos a tomar los valores de ahí y de
  3240. 2:24:48ver esos dos valores que en este momento
  3241. 2:24:51no existen solamente estamos escribiendo
  3242. 2:24:53esos nombres aquí en la función como
  3243. 2:24:56creando un plano de qué es lo que va a
  3244. 2:24:58pasar cuando tengamos esos valores a va
  3245. 2:25:02a tener un valor y va a tener un valor
  3246. 2:25:04cuando se reciban esos valores los vamos
  3247. 2:25:06a sumar vamos a asignar ese resultado a
  3248. 2:25:10una variable llamada suma pero tenemos
  3249. 2:25:12que declarar esa variable dentro de la
  3250. 2:25:15función y luego qué vamos a hacer con
  3251. 2:25:18esa variable vamos a decir con su punto
  3252. 2:25:20loc y vamos a mostrar este mensaje
  3253. 2:25:24el resultado d
  3254. 2:25:27digamos
  3255. 2:25:30+ d
  3256. 2:25:37y luego
  3257. 2:25:38mostramos el resultado de la suma esta
  3258. 2:25:41va a ser la cadena final estas dos
  3259. 2:25:44líneas que son las que se van a ejecutar
  3260. 2:25:46cuando llamemos a la función se llama en
  3261. 2:25:48el cuerpo de la función estos son los
  3262. 2:25:51parámetros de la función y este es el
  3263. 2:25:54nombre de la función es muy importante
  3264. 2:25:57que escribas el cuerpo de la función
  3265. 2:25:58entre las dos llaves porque las dos
  3266. 2:26:01llaves definen hasta dónde llega el
  3267. 2:26:04cuerpo de la función y también puedes
  3268. 2:26:06notar que aquí dejamos unos espacios
  3269. 2:26:08antes de comenzar a escribir las líneas
  3270. 2:26:10eso es muy recomendado en javascript
  3271. 2:26:13porque nos permite diferenciar
  3272. 2:26:15visualmente qué líneas son parte del
  3273. 2:26:17cuerpo de la función
  3274. 2:26:19normalmente se puede utilizar dos o
  3275. 2:26:21cuatro espacios para eso se denomina
  3276. 2:26:23intenta ción en programación este
  3277. 2:26:26espacio que dejamos aquí se llama
  3278. 2:26:28intenta acción ahora vamos a tratar de
  3279. 2:26:31llamar a la función
  3280. 2:26:33antes cuando llamábamos un método
  3281. 2:26:35normalmente pasábamos un valor o
  3282. 2:26:37dejábamos los paréntesis vacíos para
  3283. 2:26:39ejecutarlo pero en este caso tenemos dos
  3284. 2:26:42parámetros tenemos que pasar un valor
  3285. 2:26:45para cada uno porque la función tiene
  3286. 2:26:48que saber cuál es el valor de a y cuál
  3287. 2:26:50es el valor de b
  3288. 2:26:51digamos que para queremos asignar el
  3289. 2:26:54valor 5 lo escribimos en ese mismo orden
  3290. 2:26:58los valores se asignan en el mismo orden
  3291. 2:27:01en que aparecen en la lista de
  3292. 2:27:02parámetros aquí en la definición de la
  3293. 2:27:05función
  3294. 2:27:06el valor 5 se asigna a y el valor 3 se
  3295. 2:27:09asigna a ver luego si se suman esos
  3296. 2:27:12valores
  3297. 2:27:13obtenemos este valor y mostramos el
  3298. 2:27:15mensaje
  3299. 2:27:16así que veamos que ya tenemos en la
  3300. 2:27:19consola el resultado de
  3301. 2:27:22538 puedes ver que los valores de aire
  3302. 2:27:26fueron lo que esperábamos a fue 5 y ver
  3303. 2:27:29fue 3 y la suma de ambos fue 8
  3304. 2:27:335 se asignó al primer parámetro y 3 se
  3305. 2:27:36asignó el segundo parámetro en ese mismo
  3306. 2:27:39orden ahora
  3307. 2:27:41para ilustrar porque las funciones nos
  3308. 2:27:43ayudan a escribir código que es más
  3309. 2:27:45conciso y más fácil de leer y que evita
  3310. 2:27:48la repetición podemos llamar a esta
  3311. 2:27:50función varias veces
  3312. 2:27:52digamos que queremos sumar 8 y 9 o
  3313. 2:27:55queremos sumar 2 y 4 también podemos
  3314. 2:27:58sumar 5 y 5 aquí ya puedes ver que
  3315. 2:28:01estamos escribiendo en cuatro líneas lo
  3316. 2:28:04que nos tomaría aproximadamente
  3317. 2:28:05ocho líneas si escribiéramos estas dos
  3318. 2:28:09líneas en lugar de llamar a la función
  3319. 2:28:11nada más además que estaríamos
  3320. 2:28:13escribiendo mucho código repetido porque
  3321. 2:28:16tendríamos que reasignar el valor de las
  3322. 2:28:18variables y tendríamos que mostrar el
  3323. 2:28:21mismo mensaje una y otra vez la arista
  3324. 2:28:24con la función solo lo estamos
  3325. 2:28:25escribiendo una sola vez en un solo
  3326. 2:28:27lugar y también si tenemos que hacer
  3327. 2:28:29cualquier cambio es mucho más fácil
  3328. 2:28:32porque sabemos a dónde ir en vez de
  3329. 2:28:34hacer cambios en todos los distintos
  3330. 2:28:36lugares donde escribimos esta línea
  3331. 2:28:37podemos hacerlo en un solo lugar en la
  3332. 2:28:40función
  3333. 2:28:42veamos que tenemos en la consola si es
  3334. 2:28:45exactamente lo que queríamos 5 y 35 38
  3335. 2:28:49después llamamos a la función con 8 con
  3336. 2:28:5298 más 9 17 2 y 4 2 4 6 y 5 y 5 5 5 es
  3337. 2:28:5910
  3338. 2:29:00un término muy importante que también
  3339. 2:29:03debes saber es el de argumento estos
  3340. 2:29:06valores que estamos pasando para los
  3341. 2:29:08parámetros se denominan argumentos los
  3342. 2:29:12argumentos son los valores que asignamos
  3343. 2:29:14a los parámetros esos dos conceptos
  3344. 2:29:18trabajan juntos para permitir que las
  3345. 2:29:20funciones sean la herramienta
  3346. 2:29:21poderosísima que son en programación
  3347. 2:29:24veamos otra variación que podemos tener
  3348. 2:29:27cuando llamamos a una función
  3349. 2:29:30en lugar de escribir los valores
  3350. 2:29:32directamente aquí en la lista de
  3351. 2:29:34argumentos también podemos asignarlos a
  3352. 2:29:37variables y pasar las variables como
  3353. 2:29:41argumentos o escribirlas aquí en la
  3354. 2:29:43lista de argumentos lo que va a lograr
  3355. 2:29:46esto es que podemos llamar a la función
  3356. 2:29:49con el valor actual de esa variable
  3357. 2:29:52estamos diciendo que el valor de x se va
  3358. 2:29:54a asignar y el valor de y oye se va a
  3359. 2:29:58asignar a b así que también podemos
  3360. 2:30:02trabajar con las variables puedes ver
  3361. 2:30:04que el resultado es el mismo el
  3362. 2:30:06resultado de 53 es 8 no sólo podemos
  3363. 2:30:09pasar números vamos a definir otra
  3364. 2:30:12función aquí tenemos otro ejemplo con
  3365. 2:30:14cadenas de caracteres primero escribimos
  3366. 2:30:17la palabra function y luego decimos
  3367. 2:30:19concatenar
  3368. 2:30:21tres cadenas que cadenas vamos a
  3369. 2:30:24concatenar cadena 1 cadena 2 y cadena
  3370. 2:30:28atrás
  3371. 2:30:29la función va a concatenar estas cadenas
  3372. 2:30:32y va a mostrar la cadena final pero no
  3373. 2:30:35solo las va a concatenar así con el
  3374. 2:30:37operador de suma sino que va a agregar
  3375. 2:30:39un espacio entre las cadenas y esta va a
  3376. 2:30:42ser la ventaja que nos va a traer esta
  3377. 2:30:43función
  3378. 2:30:45podemos concatenar las cadenas con un
  3379. 2:30:47espacio entre cada una de ellas aquí
  3380. 2:30:49cadena uno sería un espacio cadena 12 y
  3381. 2:30:52un espacio y finalmente cadena 3 luego
  3382. 2:30:56cuando llamemos a la función concatenar
  3383. 2:30:58tres cadenas podemos pasar un valor para
  3384. 2:31:01cada una de las cadenas debemos pasar un
  3385. 2:31:03valor sino tendremos un error
  3386. 2:31:06la primera cadena va a ser estoy
  3387. 2:31:11aprendiendo
  3388. 2:31:13y la tercera ha programando puedes ver
  3389. 2:31:16cómo nos borramos escribir esto con
  3390. 2:31:19todos sus detalles y solamente estamos
  3391. 2:31:21llamando a la función y estableciendo
  3392. 2:31:23cuáles son las cadenas que queremos
  3393. 2:31:24concatenar si vemos la consola
  3394. 2:31:28puedes ver el resultado estoy
  3395. 2:31:30aprendiendo a programar genial hay
  3396. 2:31:33muchos detalles que aprender de las
  3397. 2:31:35funciones pero una vez que ya estés como
  3398. 2:31:37acomoda con este concepto y lo domina es
  3399. 2:31:39más con la práctica vas a ver que las
  3400. 2:31:41funciones son herramientas
  3401. 2:31:42importantísimas así que continuamos
  3402. 2:31:45aprendiendo sobre las funciones
  3403. 2:31:52ahora vamos a hablar de un aspecto muy
  3404. 2:31:54importante de las variables en java es
  3405. 2:31:56que no todas las variables pueden usarse
  3406. 2:32:00en todas las distintas partes del
  3407. 2:32:02programa tenemos dos tipos principales
  3408. 2:32:04de variables variables globales y
  3409. 2:32:08variables locales vamos a ver cómo
  3410. 2:32:11funciona cada una una variable con
  3411. 2:32:14ámbito global es una variable que se
  3412. 2:32:17puede usar en cualquier lugar del
  3413. 2:32:19programa porque está definida en el
  3414. 2:32:23programa principal
  3415. 2:32:24veamos un ejemplo
  3416. 2:32:26mi variable global igual a 5 esta
  3417. 2:32:31variable es global porque la estamos
  3418. 2:32:33definiendo en el programa principal y no
  3419. 2:32:36dentro de una función así que si
  3420. 2:32:39necesitamos acceder a su valor o usarla
  3421. 2:32:42en el programa podemos hacerlo y también
  3422. 2:32:45podemos acceder a su valor dentro de una
  3423. 2:32:48función digamos que la necesitamos
  3424. 2:32:51dentro de una función vamos a mostrar su
  3425. 2:32:55valor dentro de la función para
  3426. 2:32:57comprobar que sí existe y si está
  3427. 2:32:59definida dentro de la función y también
  3428. 2:33:02va a estar definida luego de la
  3429. 2:33:05definición de la función básicamente en
  3430. 2:33:07cualquier lugar del programa
  3431. 2:33:10para comprobar que si está definida
  3432. 2:33:12dentro de la función tenemos que llamar
  3433. 2:33:14a la función aquí podemos ver el
  3434. 2:33:17resultado tenemos tres números cinco
  3435. 2:33:19tres veces estamos mostrando el valor de
  3436. 2:33:23esta variable dentro y fuera de la
  3437. 2:33:26función ese es el principio básico de
  3438. 2:33:28una variable global es una variable que
  3439. 2:33:31se puede acceder y usar y modificar en
  3440. 2:33:34cualquier lugar del programa esto
  3441. 2:33:37contrasta con el concepto de variable
  3442. 2:33:39local que vamos a ver en la próxima
  3443. 2:33:42parte
  3444. 2:33:47veamos cómo funcionan las variables
  3445. 2:33:50locales las variables locales como su
  3446. 2:33:53nombre lo indica son locales para una
  3447. 2:33:56función son variables que definimos
  3448. 2:33:59dentro de una función y que solo se
  3449. 2:34:01pueden utilizar dentro de esa función
  3450. 2:34:04vamos a ver a qué me refiero con un
  3451. 2:34:06ejemplo si definimos una función y
  3452. 2:34:10dentro de esa función declaramos una
  3453. 2:34:13variable usando by mi variable local con
  3454. 2:34:17un valor 4
  3455. 2:34:19vamos a mostrar el valor de esa variable
  3456. 2:34:22dentro de la función
  3457. 2:34:24y vamos a llamar a la función para
  3458. 2:34:27probar que la variable esté definida
  3459. 2:34:29dentro de la función vemos que esa
  3460. 2:34:32variable si está definida pero luego
  3461. 2:34:35digamos que queremos acceder a esa
  3462. 2:34:37variable local fuera de la función
  3463. 2:34:40vamos a intentar acceder a esa variable
  3464. 2:34:42que es lo que va a ocurrir vamos a tener
  3465. 2:34:45aquí un error de referencia hacia mi
  3466. 2:34:47variable local no está definida eso es
  3467. 2:34:50lo que dice aquí en inglés y es not
  3468. 2:34:52spain no está definida porque porque las
  3469. 2:34:55variables locales solo están definidas
  3470. 2:34:58dentro de la función donde fueron
  3471. 2:35:01declaradas ese es el concepto básico de
  3472. 2:35:04una variable local si declaramos una
  3473. 2:35:06variable dentro de una función usando
  3474. 2:35:09para aquí esa variable va a ser local y
  3475. 2:35:13se puede usar dentro de la función pero
  3476. 2:35:16sólo dentro del par de llaves que define
  3477. 2:35:19el cuerpo de la función no podemos usar
  3478. 2:35:21esa variable fuera de la función en el
  3479. 2:35:24programa principal o en otras funciones
  3480. 2:35:27ya sabes la diferencia entre una
  3481. 2:35:29variable global
  3482. 2:35:30una variable local
  3483. 2:35:38veamos algo muy interesante que sucede
  3484. 2:35:41cuando tenemos una variable global y una
  3485. 2:35:44variable local con el mismo nombre
  3486. 2:35:46veamos cuál es el valor que se utiliza
  3487. 2:35:49al final si nosotros tenemos una
  3488. 2:35:51variable llamada mi nombre con el valor
  3489. 2:35:54nora y definimos una función que diga
  3490. 2:35:58por ejemplo mostrar mi nombre
  3491. 2:36:00llamada por ejemplo mostrar mi nombre
  3492. 2:36:03esta función no va a recibir ningún
  3493. 2:36:06valor así que no vamos a tener
  3494. 2:36:07parámetros
  3495. 2:36:08pero vamos a definir una variable local
  3496. 2:36:11llamada mi nombre nota que es el mismo
  3497. 2:36:15nombre de la variable global pero esta
  3498. 2:36:19va a ser local porque nota que estamos
  3499. 2:36:21usando la palabra reservada var que nos
  3500. 2:36:23permite declarar una variable nueva va a
  3501. 2:36:27pasar algo muy peculiar cuando queramos
  3502. 2:36:29verificar el valor de esta variable
  3503. 2:36:32trata de adivinar analizar qué es lo más
  3504. 2:36:35lógico que suceda si tenemos una
  3505. 2:36:37variable global con este valor y una
  3506. 2:36:40variable local con este valor qué valor
  3507. 2:36:43crees que se va a mostrar
  3508. 2:36:45cuando veamos la consola veamos cuál es
  3509. 2:36:48el valor llamando la función el valor es
  3510. 2:36:51sino el valor que se muestra porque
  3511. 2:36:54porque la variable local tiene mayor
  3512. 2:36:55prioridad cuando tenemos una variable
  3513. 2:36:58global y una variable local la local
  3514. 2:37:00tiene prioridad dentro de la función
  3515. 2:37:03pero también veamos qué es lo que sucede
  3516. 2:37:06si tratamos de mostrar el valor de mi
  3517. 2:37:08nombre fuera de la función recuerda que
  3518. 2:37:10esta es una variable local de la función
  3519. 2:37:13solo existe dentro de ese pequeño
  3520. 2:37:15compartimento que forma la función en
  3521. 2:37:17nuestro programa y no se puede usar en
  3522. 2:37:19ninguna otro lugar del programa pero
  3523. 2:37:22tenemos también una variable global y
  3524. 2:37:24esa variable global si se puede usar en
  3525. 2:37:26cualquier lugar del programa cualquier
  3526. 2:37:28línea así que si la mostramos en la
  3527. 2:37:31consola vamos a ver tenemos lleno y
  3528. 2:37:34luego tenemos no ahora
  3529. 2:37:36sino porque estamos llamando estamos
  3530. 2:37:38llamando a la función entonces dentro de
  3531. 2:37:40la función se usa la variable local y
  3532. 2:37:43aquí se muestra el valor no ahora porque
  3533. 2:37:46estamos usando el valor de la variable y
  3534. 2:37:48global y lo podemos ver esa variable
  3535. 2:37:51global lo único lugar donde no se va a
  3536. 2:37:54poder ver ese valor es dentro de la
  3537. 2:37:57función porque hay otra variable local
  3538. 2:37:59con el mismo nombre pero aquí no tenemos
  3539. 2:38:01esa variable local estamos en el
  3540. 2:38:04programa principal así que se usa el
  3541. 2:38:07valor original de esta variable global
  3542. 2:38:09que es nueva y por eso vemos este
  3543. 2:38:12comportamiento este resultado en nuestro
  3544. 2:38:14código
  3545. 2:38:15bien ya sabes que las variables locales
  3546. 2:38:18tienen precedencia sobre las variables
  3547. 2:38:20globales si tienen el mismo nombre en
  3548. 2:38:23una función
  3549. 2:38:31las funciones pueden retornar un valor
  3550. 2:38:33además de recibir valores recuerda que
  3551. 2:38:37vimos que la función es forma como una
  3552. 2:38:39pequeña cajita a un ambiente interno y
  3553. 2:38:43propio en el programa que puede tener
  3554. 2:38:46sus propias variables y tiene una
  3555. 2:38:49conexión con el programa principal pero
  3556. 2:38:51también tiene propiedades especiales
  3557. 2:38:53esas propiedades especiales también le
  3558. 2:38:55permiten tomar valores y también le
  3559. 2:38:58permite retornar valores para poder
  3560. 2:39:00interactuar con el programa principal
  3561. 2:39:03esto es distinto a cuando mostramos el
  3562. 2:39:05valor en la consola esta vez vamos a
  3563. 2:39:07retornar el valor así que vamos a ver a
  3564. 2:39:10qué me refiero con retornar
  3565. 2:39:12vamos a tener nuestra función sumar que
  3566. 2:39:15va a tomar dos parámetros de los dos
  3567. 2:39:18números que se van a sumar
  3568. 2:39:20antes nosotros escribíamos con su punto
  3569. 2:39:23lo que nos permitía mostrar el valor en
  3570. 2:39:25la consola pero para retornar ese valor
  3571. 2:39:30tenemos que escribir una palabra
  3572. 2:39:32reservada especial llamada arbitren esa
  3573. 2:39:35palabra nos va a permitir que la función
  3574. 2:39:38retorne un valor cuando se ejecuta esa
  3575. 2:39:40línea nosotros que el valor vamos a
  3576. 2:39:43retornar de la función vamos a retornar
  3577. 2:39:45la suma de aire si nosotros llamamos a
  3578. 2:39:48la función
  3579. 2:39:50esta vez nota que estamos escribiendo
  3580. 2:39:51aquí better no estamos escribiendo a
  3581. 2:39:53camps o blog así que el resultado no se
  3582. 2:39:57va a mostrar en la consola si llamamos a
  3583. 2:39:59la función
  3584. 2:40:00para mostrar ese valor retornado tenemos
  3585. 2:40:03que usar con su punto blog o también lo
  3586. 2:40:06podemos asignar una variable eso lo
  3587. 2:40:08vamos a ver en un próximo tema por ahora
  3588. 2:40:10vamos a mostrar ese valor
  3589. 2:40:12que se retorna esta llamada a la función
  3590. 2:40:15va a ser ejecutada se va a reemplazar
  3591. 2:40:18por el valor retornado y luego se va a
  3592. 2:40:21mostrar en la consola ya lo vas a ver
  3593. 2:40:24aquí vemos el valor 8
  3594. 2:40:27antes nosotros lo mostrábamos con con su
  3595. 2:40:30punto lo que aquí pero ahorita lo
  3596. 2:40:32estamos retornando o devolviendo también
  3597. 2:40:34lo puedes conseguir traducido como
  3598. 2:40:36devolver un valor de la función lo que
  3599. 2:40:39va a hacer eso es que esta llamada la
  3600. 2:40:41función se va a reemplazar con ese valor
  3601. 2:40:44y ese valor se va a mostrar en la
  3602. 2:40:47consola pero si nosotros quitamos el con
  3603. 2:40:49su punto lo esto no va a mostrar nada
  3604. 2:40:52nos va a mostrar nada en el programa ni
  3605. 2:40:55en la consola estamos simplemente
  3606. 2:40:57retornando el valor no mostrando en la
  3607. 2:40:59consola bien ya sabes lo básico de
  3608. 2:41:02retornar valores pero hay bastantes
  3609. 2:41:04detallitos importantes y variaciones que
  3610. 2:41:06puedes usar con richard así que ese va a
  3611. 2:41:08ser el tema de nuestras próximas
  3612. 2:41:10secciones del curso continuamos
  3613. 2:41:17así como podemos retornar un valor
  3614. 2:41:20específico de una función escribiéndolo
  3615. 2:41:22explícitamente con pixar
  3616. 2:41:25también podemos omitir esa sentencia
  3617. 2:41:29podemos no retornar ningún valor de la
  3618. 2:41:31función pero en este caso hay algo muy
  3619. 2:41:34curioso que debes saber aún así la
  3620. 2:41:36función va a retornar un valor por
  3621. 2:41:38defecto ese valor va a ser anti find
  3622. 2:41:41veamos un ejemplo si definimos aquí una
  3623. 2:41:45función llamada sumar como nuestro
  3624. 2:41:48ejemplo anterior con dos parámetros a
  3625. 2:41:50ive y luego lo que hacemos es en lugar
  3626. 2:41:55de retornar el valor de la suma lo vamos
  3627. 2:41:57a mostrar en la consola es muy distinto
  3628. 2:42:00mostrar un valor en la consola que
  3629. 2:42:02retornar lo nosotros no estamos
  3630. 2:42:04escribiendo esto porque no estamos
  3631. 2:42:07escribiendo esto sino que solamente lo
  3632. 2:42:10estamos mostrando en la consola
  3633. 2:42:12como no estamos retornando ningún valor
  3634. 2:42:15explícitamente
  3635. 2:42:16veamos qué es lo que ocurre
  3636. 2:42:20antes cuando retorna vamos un valor
  3637. 2:42:22podíamos mostrar el valor retornado en
  3638. 2:42:24la consola como cónsul lo
  3639. 2:42:27recuerdas si llamábamos a la función con
  3640. 2:42:30dos valores esto hubiera sido 8 si
  3641. 2:42:34hubiéramos retornado la suma y ese valor
  3642. 2:42:37se hubiera mostrado en la consola pero
  3643. 2:42:39veamos qué ocurre ahora que no tenemos
  3644. 2:42:41una sentencia de richard
  3645. 2:42:43vemos aquí el valor que esperábamos a
  3646. 2:42:46donde find la función se ejecuta
  3647. 2:42:50llamamos a la función se muestra el
  3648. 2:42:52valor de la suma que es 8 y luego el
  3649. 2:42:55valor retornado por esa llamada la
  3650. 2:42:57función se muestra en la consola ese
  3651. 2:43:00valor es anti find
  3652. 2:43:03anteriormente aquí hubiéramos tenido el
  3653. 2:43:05valor 8 si se hubiera retornado si
  3654. 2:43:07hubiéramos escrito esto así puedes ver
  3655. 2:43:10aquí que tenemos 8 que lo mostramos en
  3656. 2:43:12la consola y luego 8 porque lo estamos
  3657. 2:43:15retornando
  3658. 2:43:16nosotros solamente estamos mostrando el
  3659. 2:43:19resultado en la consola y el valor que
  3660. 2:43:22se está retornando aquí es anti fight
  3661. 2:43:25bien era importante que supieras que por
  3662. 2:43:28defecto las funciones si retornan un
  3663. 2:43:29valor pero esos valores anti find así
  3664. 2:43:32que continuamos a nuestro siguiente tema
  3665. 2:43:34porque también puedes asignar el valor
  3666. 2:43:37retornado por una función a una variable
  3667. 2:43:39así que veamos esto nuestro siguiente
  3668. 2:43:42tema
  3669. 2:43:49cuando una función retorne un valor
  3670. 2:43:51podemos asignar ese valor retornado a
  3671. 2:43:54una variable y esto es muy útil cuando
  3672. 2:43:56queremos usar ese valor luego en nuestro
  3673. 2:43:59programa porque podemos guardarlo veamos
  3674. 2:44:02un ejemplo seguimos con nuestra función
  3675. 2:44:04sumar con dos parámetros que retorna la
  3676. 2:44:07suma digamos que queremos llamar a la
  3677. 2:44:09función sumar y vamos a pasar estos dos
  3678. 2:44:12valores como argumentos 5 y 3 si
  3679. 2:44:15nosotros solamente llamamos a esta
  3680. 2:44:17función y el valor es retornado veamos
  3681. 2:44:19qué pasa en la consola aquí podemos ver
  3682. 2:44:21que está vacía la consola por qué porque
  3683. 2:44:25nos estamos mostrando el resultado en
  3684. 2:44:27ningún lado y tampoco lo estamos
  3685. 2:44:28asignando a ninguna variable no estamos
  3686. 2:44:31haciendo nada con ese valor luego de que
  3687. 2:44:34la llamada la función culmine el valor
  3688. 2:44:36se pierde no lo podemos usar más pero
  3689. 2:44:39para evitar esto si queremos guardar ese
  3690. 2:44:41valor lo que tenemos que hacer es
  3691. 2:44:43asignarlo a una variable aquí tenemos la
  3692. 2:44:46sintaxis para asignarle una variable
  3693. 2:44:49es exactamente igual que como asignamos
  3694. 2:44:51cualquier valor a una variable
  3695. 2:44:53escribimos la palabra clave par luego el
  3696. 2:44:56nombre de la variable el operador de
  3697. 2:44:59asignación y en la llamada la función
  3698. 2:45:02cuando el código se está ejecutando
  3699. 2:45:04puedes pensar como si esta llamada la
  3700. 2:45:07función se reemplazará por el valor que
  3701. 2:45:09resulta por ejemplo puedes pensar que
  3702. 2:45:13esta línea se convierte detrás de escena
  3703. 2:45:16cuando se está ejecutando el código
  3704. 2:45:19en esto
  3705. 2:45:21porque porque llamar a su bar con cinco
  3706. 2:45:24y tres como argumentos va a retornar el
  3707. 2:45:26valor 8 ese valor podrías pensarlo así
  3708. 2:45:30se reemplaza cuando el programa se está
  3709. 2:45:33ejecutando y luego ese valor se asigna a
  3710. 2:45:36la variable y aquí tenemos como puedes
  3711. 2:45:38ver una asignación normal de un valor a
  3712. 2:45:40una variable como con los que hemos
  3713. 2:45:42estado trabajando así es básicamente
  3714. 2:45:44como puedes asignar el valor retornado a
  3715. 2:45:46una variable y luego puedes usar el
  3716. 2:45:48valor de lo necesites por ejemplo
  3717. 2:45:51podemos mostrarlo en la consola aquí
  3718. 2:45:53vemos el valor 8 se asignó a la variable
  3719. 2:45:56resultado veamos otro ejemplo podemos
  3720. 2:45:59definir una función que retorne una
  3721. 2:46:01cadena de caracteres con nuestra meta
  3722. 2:46:05crear cadenas
  3723. 2:46:08con método digamos con nuestra meta pero
  3724. 2:46:11cuál va a ser nuestra meta vamos a
  3725. 2:46:13retornar una cadena de caracteres que
  3726. 2:46:16diga mi meta es aprender un espacio y
  3727. 2:46:22luego vamos a concatenar la con un
  3728. 2:46:25lenguaje de programación
  3729. 2:46:28entonces con acá tenemos estas dos
  3730. 2:46:30cadenas la cadena resultante va a ser
  3731. 2:46:32retornada
  3732. 2:46:33ahora si llamamos a la función y
  3733. 2:46:36asignamos el valor retornado una
  3734. 2:46:38variable veamos que tenemos
  3735. 2:46:41crear cadenas con metal
  3736. 2:46:44vamos a pasar la cadena de caracteres
  3737. 2:46:47javascript o sea que el lenguaje de
  3738. 2:46:49programación que tenemos aquí ese
  3739. 2:46:52parámetro va a tener el valor javascript
  3740. 2:46:55cuando ya vemos a la función esta vez si
  3741. 2:46:57verificamos en la consola podemos ver
  3742. 2:47:00que no se muestra nada porque no estamos
  3743. 2:47:03haciendo nada con el valor lo que
  3744. 2:47:05podemos hacer lo que sí podemos hacer es
  3745. 2:47:07asignarlo a una variable llamémosla me
  3746. 2:47:11meta
  3747. 2:47:12y luego podemos hacer lo que necesitemos
  3748. 2:47:15con la cadena por ejemplo podemos
  3749. 2:47:17mostrarla en la consola mi meta es
  3750. 2:47:19aprender ya busquets genial qué fue lo
  3751. 2:47:23que pasó detrás de escena cuando se
  3752. 2:47:25ejecutó el código puedes pensar que
  3753. 2:47:28detrás de escena cuando se estaba
  3754. 2:47:29ejecutando el código está llamada la
  3755. 2:47:32función se reemplazó con la cadena
  3756. 2:47:35resultante que sería ésta
  3757. 2:47:38mi meta es aprender sabes que este es el
  3758. 2:47:42valor retornado por esta llamada a la
  3759. 2:47:45función nosotros no vemos el proceso
  3760. 2:47:48pero puedes imaginarlo si el valor el
  3761. 2:47:50valor retornado se reemplaza aquí y
  3762. 2:47:52luego se asigna a la variable y es
  3763. 2:47:54simplemente como una asignación normal
  3764. 2:47:56de un valor una variable con las cuales
  3765. 2:47:58hemos estado trabajando bien ya sabes
  3766. 2:48:00cómo asignar el valor retornado a una
  3767. 2:48:02variable buen trabajo continuamos con
  3768. 2:48:05nuestro siguiente tema
  3769. 2:48:12ahora que ya sabes cómo trabajar con
  3770. 2:48:14funciones en javascript vas a aplicar
  3771. 2:48:16sus conocimientos para implementar lo
  3772. 2:48:18que conocemos como una cola vamos a
  3773. 2:48:21hacer una variación de una cola que en
  3774. 2:48:23inglés se llama activo una estructura de
  3775. 2:48:25datos que nos va a permitir agregar
  3776. 2:48:28elementos a una fila le damos la
  3777. 2:48:31descripción del problema en informática
  3778. 2:48:33una cola llamada aquí es una estructura
  3779. 2:48:35de datos abstracta en la cual los
  3780. 2:48:38elementos se mantienen en orden los
  3781. 2:48:41nuevos elementos se pueden añadir al
  3782. 2:48:43final de la cola y los elementos previos
  3783. 2:48:47se retiran al principio de la cola bien
  3784. 2:48:50entonces vamos a tener una estructura en
  3785. 2:48:52el que vamos a añadir el elemento nuevo
  3786. 2:48:54al final de la cola y vamos a retirar el
  3787. 2:48:57que estaba al principio de la cola
  3788. 2:48:59nuestra meta es definir una función que
  3789. 2:49:01se llame próximo en la fila o próximo en
  3790. 2:49:04fila tú puedes personalizar este nombre
  3791. 2:49:07esa función debe tomar un arreglo que se
  3792. 2:49:10va a llamar arreglo ese va a ser el
  3793. 2:49:12nombre del parámetro también lo puedes
  3794. 2:49:14conseguir abreviado como r
  3795. 2:49:16y para tomar un número que va a llamarse
  3796. 2:49:20elemento el elemento que vamos a agregar
  3797. 2:49:23ese va a ser el parámetro
  3798. 2:49:25ambos van a ser los argumentos tu misión
  3799. 2:49:28es agregar el número al final del
  3800. 2:49:30arreglo que vemos aquí que vamos a tomar
  3801. 2:49:33como argumento y luego la función debe
  3802. 2:49:35eliminar el primer elemento del arreglo
  3803. 2:49:38es cómo vamos en un ciclo vamos a
  3804. 2:49:41agregarlo al final y luego si se agrega
  3805. 2:49:44un elemento significa que el primero
  3806. 2:49:45debe ser eliminado como en los
  3807. 2:49:47supermercados en los bancos el cliente
  3808. 2:49:49que ya pasó a la caja se va y luego
  3809. 2:49:53entra otro la fila la función próximo en
  3810. 2:49:56la fila debe retornar el elemento que
  3811. 2:49:58fue removido esas son las
  3812. 2:50:00características de la función que
  3813. 2:50:01debemos implementar dos parámetros
  3814. 2:50:03agregar el número al final eliminar el
  3815. 2:50:06primero y retornar el que fue removido o
  3816. 2:50:09eliminado
  3817. 2:50:11ok veamos cómo podemos implementar esta
  3818. 2:50:13función lo primero es definir la función
  3819. 2:50:16con la palabra reservada function
  3820. 2:50:18y luego vamos a asignarle el nombre a la
  3821. 2:50:21función próximo en la fila vamos a tomar
  3822. 2:50:24dos parámetros arreglo lo que tenemos
  3823. 2:50:27aquí y elementos podemos abreviar los
  3824. 2:50:31también así
  3825. 2:50:33y l esas son dos abreviaciones comunes
  3826. 2:50:37que vas a conseguir en los problemas
  3827. 2:50:41pero en este caso para hacer más
  3828. 2:50:42explícitos podemos escribir los
  3829. 2:50:44completos qué es lo que primero que
  3830. 2:50:46queremos hacer cuando llamamos a la
  3831. 2:50:48función para agregar un elemento a la
  3832. 2:50:50fila
  3833. 2:50:51agregarla al final del arreglo vamos a
  3834. 2:50:55agregar ese número que va a ser el
  3835. 2:50:56elemento lo vamos a agregar al final del
  3836. 2:50:59arreglo que tomamos como argumento como
  3837. 2:51:03lo podemos hacer con un método de
  3838. 2:51:06arreglos que vimos en un tema anterior
  3839. 2:51:08que se llama puig pues es el método que
  3840. 2:51:12agrega un elemento al final de un
  3841. 2:51:13arreglo
  3842. 2:51:15cuál elemento el elemento que tomamos
  3843. 2:51:18como argumento aquí podemos agregar un
  3844. 2:51:21comentario agregar al final del arreglo
  3845. 2:51:24luego de que lo agregamos al final del
  3846. 2:51:26arreglo también debemos eliminar el
  3847. 2:51:29primer elemento del arreglo
  3848. 2:51:31debemos eliminar el primer elemento y
  3849. 2:51:34que el método de arreglos te parece que
  3850. 2:51:36podría cumplir esta función piénsalo por
  3851. 2:51:39unos segundos y efectivamente el método
  3852. 2:51:43es
  3853. 2:51:47cif es el método que va a eliminar el
  3854. 2:51:49primer elemento del arreglo no toma
  3855. 2:51:52ningún argumento así que solamente lo
  3856. 2:51:54llamábamos con paréntesis vacíos podemos
  3857. 2:51:57agregar un comentario aquí
  3858. 2:52:00remover
  3859. 2:52:03el primer elemento ahora nos falta la
  3860. 2:52:08parte final de lo que debe cumplir la
  3861. 2:52:10función la función debe retornar el
  3862. 2:52:14elemento que fue removido aquí todavía
  3863. 2:52:17no vemos ninguna sentencia richard como
  3864. 2:52:20lo podemos retornar bueno recuerda que
  3865. 2:52:23el método shift también retorna ese
  3866. 2:52:27elemento cuando nosotros llamamos a este
  3867. 2:52:29método podemos asignarlo a una variable
  3868. 2:52:32o también podemos retornar lo así que
  3869. 2:52:35podemos escribir aquí ritter y listo
  3870. 2:52:39vamos a remover el primer elemento esto
  3871. 2:52:43va a ser reemplazado por ese elemento
  3872. 2:52:45detrás de escena y ese elemento va a ser
  3873. 2:52:48retornado vamos a probar cómo funciona
  3874. 2:52:50nuestra función si definimos una
  3875. 2:52:53variable mi arreglo con los números 1 2
  3876. 2:52:563 4 y 5
  3877. 2:52:58aquí podemos verlo queremos ver el
  3878. 2:53:01estatus de nuestro arreglo antes y
  3879. 2:53:04después de llamar a la función
  3880. 2:53:06entonces como lo podemos hacer en
  3881. 2:53:08javascript hay unas una función que es
  3882. 2:53:11muy muy útil para mostrar los arreglos
  3883. 2:53:14en la consola que se llama jason punto
  3884. 2:53:18string file
  3885. 2:53:20y pasamos el arreglo
  3886. 2:53:24esto nos permite mostrar el arreglo de
  3887. 2:53:26una forma más presentable en la consola
  3888. 2:53:28escribe jason en mayúscula j son punto
  3889. 2:53:32string y five string es cadena en inglés
  3890. 2:53:35la cadena de caracteres así que estamos
  3891. 2:53:38como convirtiendo el arreglo en una
  3892. 2:53:40cadena de caracteres con un formato
  3893. 2:53:42específico y la estamos concatenando a
  3894. 2:53:45esta cadena nota que aquí tenemos un
  3895. 2:53:47espacio también luego de esto vamos
  3896. 2:53:51también vamos a mostrarlo después de
  3897. 2:53:53hacer el cambio y en el medio tenemos
  3898. 2:53:55que hacer el cambio vamos a mostrar el
  3899. 2:53:58valor retornado también por eso vamos a
  3900. 2:54:00rodear esa llamada con con su punto lo
  3901. 2:54:02que ahora sí llegó el momento vamos a
  3902. 2:54:05llamar a la función próxima la fila y el
  3903. 2:54:08primer argumento que toma es el arreglo
  3904. 2:54:10cual arreglo vamos a pasar como
  3905. 2:54:13argumento vamos a pasar mi arreglo como
  3906. 2:54:16argumento queremos mutar o cambiar este
  3907. 2:54:19arreglo con los números 1 2 3 4 y 5
  3908. 2:54:22y luego de que tenemos ese arreglo
  3909. 2:54:24queremos agregar un elemento vamos a
  3910. 2:54:27agregar el elemento 6 según las
  3911. 2:54:30instrucciones el efecto de llamar a esta
  3912. 2:54:32función debería hacer que el primer
  3913. 2:54:34elemento
  3914. 2:54:35se va a eliminar del arreglo y se va a
  3915. 2:54:38agregar al final de ese arreglo el nuevo
  3916. 2:54:41elemento
  3917. 2:54:42el elemento removido es uno debería ser
  3918. 2:54:46uno y ese es el elemento que se va a
  3919. 2:54:47retornar que deberíamos ver en la
  3920. 2:54:49consola
  3921. 2:54:51bien vamos a ver la consola quería
  3922. 2:54:54abrirla y vemos cuál fue el efecto
  3923. 2:54:57y aquí lo puedes ver exactamente lo que
  3924. 2:55:00necesitábamos que hiciera la función
  3925. 2:55:01antes de llamar a la función el arreglo
  3926. 2:55:04es 1 2 3 4 5 puedes ver cómo llamar a
  3927. 2:55:08jason punto string ifai pasando el
  3928. 2:55:10arreglo nos ayudó a presentarlo mucho
  3929. 2:55:12mejor compararlo con como veíamos los
  3930. 2:55:14arreglos antes solamente escribiendo la
  3931. 2:55:16variable está mucho más representado
  3932. 2:55:18vemos su estatus original y después
  3933. 2:55:22cuando llamamos a la función el valor 1
  3934. 2:55:24es retornado porque se remueve del
  3935. 2:55:26arreglo y se muestra en la consola con
  3936. 2:55:28con su bloque y después de llamar a la
  3937. 2:55:32función podemos ver el estatus del
  3938. 2:55:34arreglo el número 1 fue eliminado del
  3939. 2:55:37principio del arreglo ahora tenemos dos
  3940. 2:55:39como el primer elemento y el elemento
  3941. 2:55:42nuevo que 6 fue agregado al final del
  3942. 2:55:45arreglo
  3943. 2:55:46así que ya implementamos una función que
  3944. 2:55:48nos permite modificar nuestro arreglo
  3945. 2:55:50como si fuese una fila o lo que llamamos
  3946. 2:55:52en la estructura de datos una cola en
  3947. 2:55:55inglés se denomina key bien hecho ya
  3948. 2:55:58implementamos este mini proyecto así que
  3949. 2:56:01continuemos con el curso
  3950. 2:56:09vamos a comenzar a hablar un poquito
  3951. 2:56:11sobre otro tipo de datos con el cual
  3952. 2:56:13puedes trabajar en javascript el tipo de
  3953. 2:56:17dato de valor es bull ya nos en jaws que
  3954. 2:56:19formalmente ese tipo de datos se
  3955. 2:56:21denominan buljan esos valores julianos
  3956. 2:56:24en javascript son verdadero y falso que
  3957. 2:56:28se escriben en el lenguaje de
  3958. 2:56:29programación como true y fox you es
  3959. 2:56:32verdadero en inglés y false es falso
  3960. 2:56:36estos son los dos valores julianos con
  3961. 2:56:39los cuales puedes trabajar en chabás que
  3962. 2:56:41joe y fox
  3963. 2:56:43pero es muy muy importante que sepas
  3964. 2:56:46cómo escribirlos para que se reconozcan
  3965. 2:56:48como esos valores especiales en el
  3966. 2:56:50lenguaje esta es la única forma de
  3967. 2:56:52escribirlos formalmente en el lenguaje
  3968. 2:56:54para que se reconozcan con sus
  3969. 2:56:56capacidades especiales de valores de
  3970. 2:56:58verdad por ejemplo si nosotros queremos
  3971. 2:57:01mostrar el valor si podemos ver que
  3972. 2:57:04cuando lo escribimos en el código su
  3973. 2:57:06color cambia porque es un valor especial
  3974. 2:57:08en el lenguaje pero si lo escribimos
  3975. 2:57:11aquí con una letra mayúscula al inicio
  3976. 2:57:15tenemos que ella el color no es el mismo
  3977. 2:57:17es verde pero veamos la consola a ver
  3978. 2:57:20qué es lo que ocurre vemos un error
  3979. 2:57:23joe el primero si es correcto y me
  3980. 2:57:25mostró en la consola pero en el segundo
  3981. 2:57:27la segunda línea vemos un error brass
  3982. 2:57:30france r
  3983. 2:57:31joe y es notifight yo no está definido
  3984. 2:57:34porque porque como no lo reconoce no
  3985. 2:57:37está escrito correctamente hay una t
  3986. 2:57:39mayúscula aquí no lo reconoce como una
  3987. 2:57:42palabra especial en el lenguaje cree que
  3988. 2:57:45es una variable o cualquier otro
  3989. 2:57:46elemento del código
  3990. 2:57:48también si lo escribimos con cualquier
  3991. 2:57:50otra combinación de mayúsculas o
  3992. 2:57:52minúsculas puedes ver qué
  3993. 2:57:55no va a funcionar veamos los errores
  3994. 2:57:58como ya tenemos el primer error el
  3995. 2:58:01código no continua vamos a comentar el
  3996. 2:58:03primero para que vean los demás aquí
  3997. 2:58:06puedes ver que true tampoco está
  3998. 2:58:07definido cuando lo escribimos todo en
  3999. 2:58:09mayúscula y esta combinación raro de
  4000. 2:58:12mayúsculas y minúsculas tampoco se
  4001. 2:58:13detecta
  4002. 2:58:15lo mismo ocurre con el valor falso fox
  4003. 2:58:19tiene que estar escrito completamente en
  4004. 2:58:21minúscula cualquier otra combinación va
  4005. 2:58:23a dar un error
  4006. 2:58:25por ejemplo con su punto lo vamos a
  4007. 2:58:28mostrar false vamos a mostrar fausto d
  4008. 2:58:32mayúscula digamos distintas
  4009. 2:58:33combinaciones que quizás tengas
  4010. 2:58:36curiosidades si se pueden usar o no y
  4011. 2:58:39ésta seguramente nunca te lo imaginaste
  4012. 2:58:41pero bueno igual vamos a probarla y aquí
  4013. 2:58:44vemos que si hay alguna mayúscula no va
  4014. 2:58:46a estar definida vamos a comentar esta
  4015. 2:58:49línea y vemos falso en mayúscula tampoco
  4016. 2:58:52está definido y esta combinación rara de
  4017. 2:58:55mayúsculas y minúsculas tampoco estado
  4018. 2:58:57definido
  4019. 2:58:58bien así que la única forma de escribir
  4020. 2:59:02false como el valor juliano y que se
  4021. 2:59:04interprete como el valor correcto que
  4022. 2:59:07podemos usar en nuestro programa es
  4023. 2:59:09escribir los triunfos completamente en
  4024. 2:59:11minúscula estos valores triunfos van a
  4025. 2:59:15ser muy muy útiles cuando empecemos a
  4026. 2:59:17escribir condicionales cuando empecemos
  4027. 2:59:20a realizar comparaciones de valores y
  4028. 2:59:22cuando trabajemos con operadores lógicos
  4029. 2:59:24todos esos temas los vamos a ver en el
  4030. 2:59:27curso así que continuamos con nuestro
  4031. 2:59:29curso del próximo tema
  4032. 2:59:37en javascript puedes comparar valores
  4033. 2:59:40para ver si son iguales o si no son
  4034. 2:59:42iguales si representan el mismo valor
  4035. 2:59:44eso lo podemos hacer con el operador de
  4036. 2:59:47igualdad para mostrar el resultado vamos
  4037. 2:59:50a usar con su punto lo que íbamos a
  4038. 2:59:52comparar dos valores
  4039. 2:59:54digamos que queremos saber si el número
  4040. 2:59:565 tiene el mismo valor que el número 5
  4041. 2:59:59esto que tenemos aquí se denomina una
  4042. 3:00:02expresión va a evaluar a verdadero o
  4043. 3:00:05falso
  4044. 3:00:06o falso
  4045. 3:00:07es verdadero si ambos valores son
  4046. 3:00:09iguales y es falso si los valores son
  4047. 3:00:12distintos ese valor final pool ya no se
  4048. 3:00:16va a mostrar en la consola así que el
  4049. 3:00:18resultado va a ser que veamos la consola
  4050. 3:00:20aquí tenemos el valor yo
  4051. 3:00:23pero si cambiamos el valor a por ejemplo
  4052. 3:00:266 ahora vemos todos porque los valores
  4053. 3:00:30no son iguales de igual forma podemos
  4054. 3:00:33comparar cadenas de caracteres
  4055. 3:00:35veamos un ejemplo o la vamos a
  4056. 3:00:39compararla con la cadena de caracteres
  4057. 3:00:40hola a ver si son iguales y tienen el
  4058. 3:00:43mismo valor o si si contienen los mismos
  4059. 3:00:46caracteres
  4060. 3:00:47esta expresión es verdadera así que el
  4061. 3:00:50resultado va a ser
  4062. 3:00:51aquí lo podemos ver en la consola y si
  4063. 3:00:55comparamos hola con cualquier otra
  4064. 3:00:56cadena por ejemplo javascript el
  4065. 3:01:00resultado ahora va a ser falso
  4066. 3:01:02la comparación se hace también en base a
  4067. 3:01:05las mayúsculas y las minúsculas por
  4068. 3:01:07ejemplo si tenemos dos cadenas hola yo
  4069. 3:01:10la he resultado aquí es falso porque es
  4070. 3:01:14la letra h aquí es minúscula y la letra
  4071. 3:01:16h aquí es mayúscula así que no son
  4072. 3:01:18iguales es importante también ver que no
  4073. 3:01:21deberíamos comparar arreglos con este
  4074. 3:01:24operador porque porque veamos este
  4075. 3:01:28ejemplo
  4076. 3:01:30si nosotros tenemos dos arreglos con los
  4077. 3:01:33mismos elementos 1 2 y 3
  4078. 3:01:36y queremos compararlo con los otros
  4079. 3:01:38arreglos que contienen los mismos
  4080. 3:01:39elementos 1 2 y 3
  4081. 3:01:41inicialmente uno podría pensar que el
  4082. 3:01:43resultado va a ser true verdadero porque
  4083. 3:01:46son iguales visualmente tienen los
  4084. 3:01:49mismos elementos pero veamos el
  4085. 3:01:50resultado en la consola
  4086. 3:01:52el resultado es post porque porque este
  4087. 3:01:55operador cuando se aplica a los arreglos
  4088. 3:01:57no comparan los elementos del arreglo
  4089. 3:02:00sino que compara si los arreglos en la
  4090. 3:02:03memoria representan el mismo objeto lo
  4091. 3:02:06importante es ver que no deberías
  4092. 3:02:08comparar arreglos con este operador ok
  4093. 3:02:11genial ya sabes cómo usar este operador
  4094. 3:02:13vamos a ver otro operador que es muy
  4095. 3:02:16parecido pero que va a permitirnos hacer
  4096. 3:02:18una comparación más estricta lo veremos
  4097. 3:02:20en el próximo tema
  4098. 3:02:28también tenemos otro operador que nos
  4099. 3:02:31permite comparar si ambos tipos de datos
  4100. 3:02:34son los mismos o no este es el operador
  4101. 3:02:37de igualdad estricta veamos la
  4102. 3:02:40diferencia entre igualdad e igualdad
  4103. 3:02:43estricta si nosotros comparamos dos
  4104. 3:02:46valores del mismo tipo de datos con el
  4105. 3:02:49operador de igualdad este resultado va a
  4106. 3:02:52ser verdadero pero también que lo que va
  4107. 3:02:55a pasar si nosotros tenemos dos valores
  4108. 3:02:58que son de distintos tipos de datos pero
  4109. 3:03:02que representan el mismo número el
  4110. 3:03:05resultado también va a ser verdadero
  4111. 3:03:08veámoslo en la consola aquí podemos ver
  4112. 3:03:11el valor es verdadero para ambas
  4113. 3:03:14comparaciones y en ciertas
  4114. 3:03:17circunstancias también nos gustaría
  4115. 3:03:19comparar si el tipo de dato es el mismo
  4116. 3:03:23para ambos operando que ocurre con este
  4117. 3:03:26operador antes de realizar la
  4118. 3:03:28comparación ambos valores se convierten
  4119. 3:03:31a un tipo de dato común
  4120. 3:03:33eso es que el resultado de los 16 y 3 no
  4121. 3:03:37importa que sean de distintos tipos de
  4122. 3:03:39datos y representan el mismo valor pero
  4123. 3:03:42si no queremos que eso ocurra y queremos
  4124. 3:03:45que la comparación también determine si
  4125. 3:03:48el tipo de datos es el mismo o no
  4126. 3:03:51simplemente tenemos que agregar un signo
  4127. 3:03:54igual a este operador para tener el
  4128. 3:03:58operador de comparación de igualdad
  4129. 3:04:00estricto en este caso el resultado va a
  4130. 3:04:04ser porque ambos valores son iguales y
  4131. 3:04:07tienen el mismo tipo de dato pero esta
  4132. 3:04:11es la gran diferencia entre ambos
  4133. 3:04:13operadores si comparamos 9 como un
  4134. 3:04:17número y 9 como una cadena de caracteres
  4135. 3:04:19con el operador de igualdad estricta
  4136. 3:04:23este resultado va a ser falso porque no
  4137. 3:04:27se van a convertir convertir a un tipo
  4138. 3:04:29de dato común solamente se van a
  4139. 3:04:32comparar en base a su valor ya su tipo
  4140. 3:04:35de datos
  4141. 3:04:36aquí podemos verlo estos dos valores
  4142. 3:04:38true corresponden a las dos primeras y
  4143. 3:04:41éstas corresponden a las dos últimas
  4144. 3:04:43comparaciones en este caso tenemos true
  4145. 3:04:47y luego tenemos fondo porque los tipos
  4146. 3:04:50de datos son distintos si comentamos
  4147. 3:04:53estas tres líneas podemos ver el
  4148. 3:04:54resultado que nos interesa que es fox ya
  4149. 3:04:58sabes como puedes comparar valores con
  4150. 3:05:01igualdad estricta y su diferencia con el
  4151. 3:05:04operador de igualdad
  4152. 3:05:06si quieres que se conviertan a un tipo
  4153. 3:05:08de datos común antes de comparar los usa
  4154. 3:05:11el operador de igualdad y si también
  4155. 3:05:14quieres comparar el tipo de datos usa el
  4156. 3:05:16operador de igualdad estricta
  4157. 3:05:25ahora practiquemos cómo puedes usar el
  4158. 3:05:27operador de igualdad y el operador de
  4159. 3:05:29igualdad estricta primero comencemos
  4160. 3:05:32declarando dos variables a y b ya estas
  4161. 3:05:34variables le vamos a asignar valores y
  4162. 3:05:37los vamos a comparar y tu tarea es
  4163. 3:05:39predecir cuál va a ser el valor de la
  4164. 3:05:41comparación comenzamos a le vamos a
  4165. 3:05:44asignar el valor 5 y a ver le vamos a
  4166. 3:05:46asignar el valor 5 también debe de hacer
  4167. 3:05:49preguntas rápidas a medida que
  4168. 3:05:50escribamos las comparaciones para
  4169. 3:05:52ayudarte a repasar el tema y cómo
  4170. 3:05:54funciona este operador cuál es el nombre
  4171. 3:05:56de este operador
  4172. 3:05:58este es el operador de igualdad y qué
  4173. 3:06:00valor predice que va a retornar
  4174. 3:06:04en este caso el valor va a ser el show
  4175. 3:06:07podemos verlo en la consola aquí
  4176. 3:06:10ahora cuál es el nombre de este operador
  4177. 3:06:14este es el operador de igualdad estricta
  4178. 3:06:17y qué valor va a retornar este operador
  4179. 3:06:19en este caso en este caso va a evaluar 3
  4180. 3:06:23porque ambos valores también son del
  4181. 3:06:25mismo tipo de datos son enteros son
  4182. 3:06:27números me mostró youtube aquí ahora si
  4183. 3:06:31decidimos cambiarle el valor a la
  4184. 3:06:33variable p y mantener el valor de aunque
  4185. 3:06:365 ahora vamos a ver en qué resultan
  4186. 3:06:39estas comparaciones
  4187. 3:06:41estamos usando el operador de igualdad y
  4188. 3:06:44estamos comparando 5 y 8 5 y 8 cuál va a
  4189. 3:06:49ser el valor de esta expresión
  4190. 3:06:51va a ser falso
  4191. 3:06:54aquí lo puedes ver falso es el último
  4192. 3:06:56valor para no ir acumulando los
  4193. 3:06:58resultados en la consola vamos a
  4194. 3:07:00comentar estas líneas para que no se
  4195. 3:07:01muestren solo la última que estamos
  4196. 3:07:03escribiendo
  4197. 3:07:04bien aquí tenemos falso y si usamos el
  4198. 3:07:08operador de igualdad estricta
  4199. 3:07:13cuál va a ser el resultado
  4200. 3:07:16falso también porque porque los valores
  4201. 3:07:19son distintos aunque tengan el mismo
  4202. 3:07:22tipo de dato aunque sean del mismo tipo
  4203. 3:07:23de datos sus valores son distintos así
  4204. 3:07:26que el resultado es falso
  4205. 3:07:28ahora digamos que actualizamos ver a la
  4206. 3:07:31cadena de caracteres 5
  4207. 3:07:33a sigue siendo el entero 5 y ve ahora es
  4208. 3:07:37la cadena de caracteres 5
  4209. 3:07:41si comparamos ahí ve cuál va a ser el
  4210. 3:07:43valor de esta expresión con el operador
  4211. 3:07:46de igualdad
  4212. 3:07:48primero tenemos que comentar esta línea
  4213. 3:07:51para ver este resultado vamos a agregar
  4214. 3:07:53unas líneas aquí abajo para poder abrir
  4215. 3:07:55la consola aquí vemos el valor che
  4216. 3:07:58porque estamos usando el operador de
  4217. 3:08:01igualdad no el operador de igualdad
  4218. 3:08:03estricta
  4219. 3:08:04ahora si usamos el operador de igualdad
  4220. 3:08:07de estricta con tres signos igual cuál
  4221. 3:08:09va a ser el resultado de esta expresión
  4222. 3:08:11recuerda que los tipos de datos son
  4223. 3:08:14distintos
  4224. 3:08:17bien el resultado va a ser falso porque
  4225. 3:08:20los tipos de datos son distintos ahorita
  4226. 3:08:23tenemos las dos versiones y fowles que
  4227. 3:08:25cambian si usamos operadores diferentes
  4228. 3:08:28también podemos comparar cadenas de
  4229. 3:08:31caracteres digamos javascript
  4230. 3:08:36ya ves que vamos a hacer las mismas
  4231. 3:08:39comparaciones que tenemos aquí ahora
  4232. 3:08:42borramos los comentarios y cuál va a ser
  4233. 3:08:44el resultado de ambas ambas van a ser
  4234. 3:08:47verdaderas porque tienen el mismo valor
  4235. 3:08:49y tienen el mismo tipo de datos general
  4236. 3:08:52ya practicamos cómo comparar valores con
  4237. 3:08:56estos operadores el operador de igualdad
  4238. 3:08:59y el operador de igualdad de estricta
  4239. 3:09:00así que comencemos con nuestro siguiente
  4240. 3:09:03tema
  4241. 3:09:09así como tenemos un operador de igualdad
  4242. 3:09:11también tenemos un operador de
  4243. 3:09:13desigualdad este operador compara dos
  4244. 3:09:16valores y retorna tribus verdaderos y su
  4245. 3:09:19valor es distinto y retorna a fons si
  4246. 3:09:22son iguales es básicamente lo opuesto
  4247. 3:09:25del operador de igualdad vamos a ver un
  4248. 3:09:27ejemplo con su punto lo
  4249. 3:09:31y aquí vemos nueve distintos de seis en
  4250. 3:09:35inglés este operador se denominan lot y
  4251. 3:09:38cuestión no igual sería la traducción
  4252. 3:09:41literal estamos comparando si 9 no es
  4253. 3:09:44igual a 6
  4254. 3:09:46eso es verdadero 9 es distinto que 6
  4255. 3:09:49entonces el valor en la consola que se
  4256. 3:09:52muestra hecho esta expresión evalúa el
  4257. 3:09:55valor y si tenemos dos números iguales
  4258. 3:09:58por ejemplo 9 distinto de 9 allí si el
  4259. 3:10:03resultado va a ser falso porque estamos
  4260. 3:10:05preguntando si 9 es distinto a 9
  4261. 3:10:09en ese caso va a ser falsa la condición
  4262. 3:10:13aquí vemos el resultado
  4263. 3:10:15la lógica es básicamente el opuesto del
  4264. 3:10:18operador de igualdad si en los elementos
  4265. 3:10:20son iguales va a ser falso si son
  4266. 3:10:21distintos va a centrar también podemos
  4267. 3:10:23comparar cadenas de caracteres por
  4268. 3:10:25ejemplo sabes que estás aquí falsas
  4269. 3:10:29porque son iguales
  4270. 3:10:31entonces esta condición va a ser falsa
  4271. 3:10:34si nosotros también cambiamos una de
  4272. 3:10:37estas letras ya deja de ser dejan de ser
  4273. 3:10:40iguales y sería verdadera la comparación
  4274. 3:10:42aquí podemos ver que el tercer valor es
  4275. 3:10:44falso porque son iguales y en el caso de
  4276. 3:10:47los arreglos tenemos algo también
  4277. 3:10:50interesante vamos a comentar esta es
  4278. 3:10:52línea podemos intentar comparar arreglos
  4279. 3:10:55con este operador pero aún así no va a
  4280. 3:10:58estar comparando los en base a sus
  4281. 3:10:59elementos sino en base a cómo están
  4282. 3:11:02representados como objetos en la memoria
  4283. 3:11:04del dispositivo porque mira el resultado
  4284. 3:11:06aquí el resultado dice chuck estamos
  4285. 3:11:09preguntando si este arreglo es distinto
  4286. 3:11:11a este arreglo no es igual a este
  4287. 3:11:13arreglo entonces el resultado es true
  4288. 3:11:17pero vemos que si tienen los mismos
  4289. 3:11:19elementos el chulo que representa es que
  4290. 3:11:22estos dos arreglos son objetos
  4291. 3:11:25independientes en la memoria de la
  4292. 3:11:27máquina del dispositivo y eso es algo
  4293. 3:11:29relacionado a cómo se almacenan estos
  4294. 3:11:32valores en la memoria bien ya sabes cómo
  4295. 3:11:34usar el operador de desigualdad recuerda
  4296. 3:11:37que este es el símbolo un signo de
  4297. 3:11:38exclamación seguido de un signo igual
  4298. 3:11:40ese es el símbolo para la desigualdad
  4299. 3:11:43ahora en la siguiente parte vamos a ver
  4300. 3:11:45otro operador que se llama de
  4301. 3:11:47desigualdad estricta así que comenzamos
  4302. 3:11:57tenemos un operador que es similar al de
  4303. 3:12:00igualdad estricta pero lo comparas
  4304. 3:12:03desigualdad de estricta veamos la
  4305. 3:12:05diferencia entre desigualdad y
  4306. 3:12:07desigualdad estricta
  4307. 3:12:09anteriormente con el operador de
  4308. 3:12:12desigualdad si nosotros comprábamos si
  4309. 3:12:16este valor era distinto a este valor el
  4310. 3:12:20resultado sería falso porque este
  4311. 3:12:23operador convierte a ambos operan 2
  4312. 3:12:26ambos valores a un tipo de datos común
  4313. 3:12:29antes de hacer la comparación por eso es
  4314. 3:12:32que es falso el detecta que estos dos
  4315. 3:12:35números son el mismo valor aunque uno
  4316. 3:12:39esté representado como una cadena de
  4317. 3:12:41caracteres y el otro sea un número como
  4318. 3:12:44tal pero qué ocurre con el operador de
  4319. 3:12:46desigualdad estricta si nosotros
  4320. 3:12:49comparamos estos mismos valores con el
  4321. 3:12:51operador de desigualdad de estricta
  4322. 3:12:54ahora el resultado va a ser
  4323. 3:12:57verdadero aquí lo podemos ver el
  4324. 3:13:00resultado es true
  4325. 3:13:02anteriormente era false con este
  4326. 3:13:04operador y ahora el resultado es tres
  4327. 3:13:06porque también está comparando si ambos
  4328. 3:13:09valores son del mismo tipo de datos no
  4329. 3:13:12lo convierte a un tipo de dato común esa
  4330. 3:13:15es la diferencia entre el operador de
  4331. 3:13:17desigualdad y el operador de desigualdad
  4332. 3:13:20estricta funcionan exactamente igual
  4333. 3:13:22excepto en este caso cuando los valores
  4334. 3:13:26donde un de tipo distinto de datos pero
  4335. 3:13:29representan el mismo valor éste lo
  4336. 3:13:32convierte un tipo de dato común y éste
  4337. 3:13:34no esa es la diferencia
  4338. 3:13:37así que ya sabes cómo trabajar con el
  4339. 3:13:40operador de desigualdad y el operador de
  4340. 3:13:42desigualdad estricta y cuando debes usar
  4341. 3:13:46unos versus el otro
  4342. 3:13:53el javascript además de comparar si los
  4343. 3:13:56valores son iguales o diferentes también
  4344. 3:13:58podemos comparar el valor relativo de
  4345. 3:14:01dos valores si un valor es mayor que el
  4346. 3:14:03otro mayor o igual que el otro menor que
  4347. 3:14:05el otro o menor o igual que el otro así
  4348. 3:14:08que comenzamos a ver el operador mayor
  4349. 3:14:10que ese operador tiene este simbolito
  4350. 3:14:13que vemos aquí y podemos comparar los
  4351. 3:14:17valores con este operador digamos por
  4352. 3:14:19ejemplo que queremos saber si 6 es mayor
  4353. 3:14:21que 5 si se es mayor que 5 esta
  4354. 3:14:25expresión va a ser verdadera así que el
  4355. 3:14:28valor que se va a mostrar es verdadero
  4356. 3:14:31también podemos comparar
  4357. 3:14:34valores de esta forma por ejemplo si 3
  4358. 3:14:39es mayor que 10 no hay ningún problema
  4359. 3:14:42si este elemento es menor lo que va a
  4360. 3:14:44ocurrir es que la expresión va a ser
  4361. 3:14:45falsa 3 no es mayor que 10 así que el
  4362. 3:14:48resultado que tenemos aquí va a ser
  4363. 3:14:50falso si mostramos los valores lores en
  4364. 3:14:53la consola podemos ver que estos valores
  4365. 3:14:55son los resultantes verdadero y falso
  4366. 3:14:59también podemos usar este operador para
  4367. 3:15:02comparar cadenas de caracteres pero que
  4368. 3:15:05el criterio vamos a usar para las
  4369. 3:15:06cadenas por defecto bueno ya ves que
  4370. 3:15:09compara las cadenas según el orden
  4371. 3:15:11alfabético que de las cadenas como
  4372. 3:15:14aparecerían en un diccionario estamos
  4373. 3:15:17diciendo si la letra p viene después de
  4374. 3:15:20la letra en orden alfabético como
  4375. 3:15:23estamos usando este operador mayor que
  4376. 3:15:25cuando lo aplicamos a cadenas piensa que
  4377. 3:15:27el mayor que es como si estuviera más
  4378. 3:15:29allá más adentro en el diccionario si
  4379. 3:15:32viene después que esta letra en el
  4380. 3:15:34alfabeto eso sería hecho por orden
  4381. 3:15:36alfabético si tuviéramos otra cadena por
  4382. 3:15:39ejemplo acb mayor que a bs cuál crees
  4383. 3:15:44que sería el resultado de esta
  4384. 3:15:45comparación el resultado de esta
  4385. 3:15:47comparación en realidad es bastante
  4386. 3:15:49curioso porque como comparamos las
  4387. 3:15:51cadenas si comienzan con la misma letra
  4388. 3:15:53lo que hace javascript es comparar cada
  4389. 3:15:56uno de los caracteres en su secuencia a
  4390. 3:15:59es igual a a así que eso no nos ayuda a
  4391. 3:16:02decidir si la cadena viene antes o
  4392. 3:16:04después de la otra cadena
  4393. 3:16:06así que pasa el segundo carácter de cada
  4394. 3:16:08una y compara se viene después que ve en
  4395. 3:16:12orden alfabético si se viene después que
  4396. 3:16:15ve en orden alfabético así que allí ya
  4397. 3:16:17podemos determinar el orden de las
  4398. 3:16:19cadenas y sabemos que esto es trump y
  4399. 3:16:22así es como se comparan cadenas de
  4400. 3:16:24caracteres en ya ves que el primer par
  4401. 3:16:26de caracteres en sus posiciones
  4402. 3:16:28correspondientes que no sean iguales se
  4403. 3:16:30comparan y esa comparación decide el
  4404. 3:16:33resultado de la expresión veamos los
  4405. 3:16:36resultados en la consola vamos a
  4406. 3:16:38comentar estos dos resultados anteriores
  4407. 3:16:40vemos que ambos son verdaderos
  4408. 3:16:43ambos son true como bien planteado aquí
  4409. 3:16:46también qué pasa si una cadena
  4410. 3:16:50tiene más más caracteres que otras por
  4411. 3:16:52ejemplo aquí ejemplo aquí estamos
  4412. 3:16:54verificando si ap es mayor que a
  4413. 3:16:59en este caso vas a ver que el resultado
  4414. 3:17:02es verdadero
  4415. 3:17:03vamos a comentar estas líneas y vemos en
  4416. 3:17:06la consola es verdadero porque tiene más
  4417. 3:17:10caracteres por orden alfabético también
  4418. 3:17:13podemos comparar palabras por ejemplo
  4419. 3:17:15mundo y ahora por orden alfabético m
  4420. 3:17:19viene luego de la letra h en el alfabeto
  4421. 3:17:22así que también podríamos comparar estas
  4422. 3:17:25letras para nosotros tener una idea del
  4423. 3:17:27orden m y h
  4424. 3:17:30esta comparación es verdadera así que
  4425. 3:17:34toda esta expresión va a ser verdadera
  4426. 3:17:36porque el mundo viene después de ola en
  4427. 3:17:39el diccionario otro dato interesante que
  4428. 3:17:41seguramente vas a usar en tus proyectos
  4429. 3:17:44es que podemos usar estos operadores de
  4430. 3:17:47comparación con variables y normalmente
  4431. 3:17:49eso es lo que vamos a hacer por ejemplo
  4432. 3:17:52si tenemos la barra igual a 15 déjame
  4433. 3:17:54borrar aquí estos comentarios que hemos
  4434. 3:17:56escrito antes si tenemos una variable a
  4435. 3:17:59igual a 15 y una variable p igual a 7
  4436. 3:18:02nosotros podemos usar esas variables y
  4437. 3:18:06compararlas podemos preguntar si es
  4438. 3:18:09mayor que b eso sería verdadero y
  4439. 3:18:13podemos preguntar si b es mayor que a lo
  4440. 3:18:16cual sería falso podemos ver los
  4441. 3:18:18resultados en la consola aquí vemos true
  4442. 3:18:20y focs genial ya sabes cómo comparar
  4443. 3:18:24números cadenas de caracteres y también
  4444. 3:18:27variables para comparar sus valores con
  4445. 3:18:29el operador mayor que así que pasamos al
  4446. 3:18:32siguiente operador mayor o igual que y
  4447. 3:18:34veamos su diferencia
  4448. 3:18:41ella es que también tenemos otro
  4449. 3:18:43operador que nos permite incluir el caso
  4450. 3:18:46en el que ambos valores sean iguales
  4451. 3:18:49se llama mayor o igual que y su símbolo
  4452. 3:18:52es simplemente el mismo símbolo de
  4453. 3:18:53mallorca pero con un signo igual a la
  4454. 3:18:57derecha este es el símbolo de mayor o
  4455. 3:18:59igual que qué es lo que vamos a comparar
  4456. 3:19:02y cómo va a ser diferente del operador
  4457. 3:19:04mayor que bueno veamos si nosotros
  4458. 3:19:07comparamos si 5 es mayor que 5 usando el
  4459. 3:19:11operador mayor que este resultado va a
  4460. 3:19:14ser falso porque estamos preguntando si
  4461. 3:19:165 es estrictamente mayor que 5 no
  4462. 3:19:20estamos incluyendo el caso de que 5
  4463. 3:19:22pueda ser igual a 5
  4464. 3:19:25esto es importante y es una fuente común
  4465. 3:19:28de confusiones cuando estamos
  4466. 3:19:30programando tenemos que decidir si
  4467. 3:19:32queremos incluir el caso en que ambos
  4468. 3:19:34valores sean iguales si no lo queremos
  4469. 3:19:37incluir usamos este operador y en el
  4470. 3:19:39caso de que sean iguales la condición va
  4471. 3:19:42a ser falsa pero si queremos incluir ese
  4472. 3:19:45caso tenemos que ir a esta condición
  4473. 3:19:49tenemos que escribir esta condición que
  4474. 3:19:51usa el operador mayor o igual que puedes
  4475. 3:19:54ver el símbolo que es igual que el mayor
  4476. 3:19:56que pero con un signo igual a la derecha
  4477. 3:19:59este operador si va a retornar el valor
  4478. 3:20:02verdadero si ambos valores son iguales
  4479. 3:20:04en este caso el valor va a ser 3 y eso
  4480. 3:20:08va a ser muy muy importante porque vamos
  4481. 3:20:10a empezar a escribir condiciones de
  4482. 3:20:12nuestro código que van a decidir qué es
  4483. 3:20:14lo que pasa en el programa y dependiendo
  4484. 3:20:17del valor de estas condiciones vamos a
  4485. 3:20:19ejecutar ciertos bloques de código o no
  4486. 3:20:22vemos que los resultados son los
  4487. 3:20:24correctos aquí
  4488. 3:20:27no tomamos el caso en que son iguales y
  4489. 3:20:29aquí si lo estamos tomando para el valor
  4490. 3:20:31verdadero la condición sigue siendo
  4491. 3:20:33verdadera si ambos valores son iguales y
  4492. 3:20:36esa es la diferencia principal entre
  4493. 3:20:38estos operadores en el caso de las
  4494. 3:20:41cadenas de caracteres también aplica
  4495. 3:20:43este cambio cuando las cadenas de
  4496. 3:20:45caracteres sean iguales el valor
  4497. 3:20:47retornado va a ser genial así que veamos
  4498. 3:20:50nuestro siguiente operador menorca
  4499. 3:20:58en chubut tenemos otro operador llamado
  4500. 3:21:00menor que lo podemos expresar con este
  4501. 3:21:03símbolo
  4502. 3:21:04veamos un ejemplo si queremos
  4503. 3:21:08verificar que 5 es menor que 6 usamos
  4504. 3:21:12este operador si 5 menor que 6 lo cual
  4505. 3:21:16es verdadero el resultado va a ser trump
  4506. 3:21:18o verdadero
  4507. 3:21:20en caso contrario si el valor a la
  4508. 3:21:22izquierda es mayor que el de la derecha
  4509. 3:21:24o igual va a ser falso digamos 10 menor
  4510. 3:21:29que 310 no es menor que 3 así que el
  4511. 3:21:32resultado va a ser falso y así es
  4512. 3:21:35básicamente cómo funciona el operador
  4513. 3:21:37veamos el resultado en la consola
  4514. 3:21:40joe y false exactamente lo que
  4515. 3:21:42esperábamos también se puede usar para
  4516. 3:21:45comparar cadenas de caracteres como lo
  4517. 3:21:47hicimos con el operador mayor que en
  4518. 3:21:49este caso va a comparar las cadenas de
  4519. 3:21:51caracteres en orden alfabético así que
  4520. 3:21:55si comparamos a con ver como cadenas de
  4521. 3:21:59caracteres el resultado va a ser su por
  4522. 3:22:02qué
  4523. 3:22:02viene antes que ve en orden alfabético
  4524. 3:22:05también si la cadena de caracteres tiene
  4525. 3:22:08varios caracteres el proceso va a ser
  4526. 3:22:11muy similar al que ya vimos en los
  4527. 3:22:13ejemplos anteriores se van a comparar
  4528. 3:22:16los caracteres
  4529. 3:22:17es siesta antes que se en orden
  4530. 3:22:20alfabético
  4531. 3:22:20así que la condición sería verdadera es
  4532. 3:22:24lo que determina el valor de la
  4533. 3:22:26condición veamos la consola vemos toda
  4534. 3:22:29la secuencia de valores true shows
  4535. 3:22:32después tú y trump aquí
  4536. 3:22:35también podemos comparar los valores de
  4537. 3:22:38variables que eso es exactamente lo que
  4538. 3:22:39vamos a hacer en nuestros programas
  4539. 3:22:41normalmente si definimos dos variables y
  4540. 3:22:44las queremos comparar con este operador
  4541. 3:22:47que es lo que hacemos las comparamos
  4542. 3:22:49simplemente y obtenemos los resultados
  4543. 3:22:53en este caso a no es menor que b esto es
  4544. 3:22:57falso
  4545. 3:22:58y ve si es menor que así que esto es
  4546. 3:23:02verdadero vamos a comentar estas líneas
  4547. 3:23:04y sólo dejamos estas dos líneas para ver
  4548. 3:23:07el resultado
  4549. 3:23:09vemos founds porque a no es menor que ve
  4550. 3:23:13a es 15 y b 7 y 3 porque b
  4551. 3:23:18es menor que de 7 y a es 15 genial ya
  4552. 3:23:23sabes usar el operador menor que y
  4553. 3:23:25también tenemos una versión de este
  4554. 3:23:27operador que permite que ambos valores
  4555. 3:23:29sean iguales
  4556. 3:23:31el operador menor o igual que veremos
  4557. 3:23:33más sobre este operador en la próxima
  4558. 3:23:35parte
  4559. 3:23:42el operador menor o igual que funciona
  4560. 3:23:45básicamente igual que el operador menor
  4561. 3:23:48que pero también va a incluir el caso en
  4562. 3:23:50el que ambos valores sean iguales veamos
  4563. 3:23:53la diferencia si nosotros verificamos si
  4564. 3:23:565 es menor que 5 en la condición este
  4565. 3:23:59resultado va a ser falso porque 5 no es
  4566. 3:24:03estrictamente menor que 5 es igual a 5
  4567. 3:24:06cuando usamos el operador menor que no
  4568. 3:24:09estamos tomando en cuenta el caso en el
  4569. 3:24:12que ambos valores sean iguales y eso a
  4570. 3:24:14veces no también nos puede ser útil en
  4571. 3:24:16los programas si necesitamos que un
  4572. 3:24:18valor sea menor que el otro
  4573. 3:24:20pero si necesitamos también tomar en
  4574. 3:24:24cuenta el caso en el que ambos puedan
  4575. 3:24:25ser iguales usamos este operador menor e
  4576. 3:24:28igual que solamente le agregamos el
  4577. 3:24:31signo igual aquí estamos comparando los
  4578. 3:24:34valores y su resultado en este caso va a
  4579. 3:24:37ser verdadero porque ambos valores son
  4580. 3:24:40iguales esa es la diferencia principal
  4581. 3:24:43entre ambos operas este caso sería falso
  4582. 3:24:46con el operador menor qué
  4583. 3:24:48y este caso sería verdadero con el
  4584. 3:24:51operador menor o igual que veámoslo en
  4585. 3:24:53la consola aquí vemos falso y vemos
  4586. 3:24:56verdadero genial esa es la diferencia
  4587. 3:24:59principal todos los ejemplos anteriores
  4588. 3:25:01con el operador menor que también
  4589. 3:25:04aplican con el operador menor o igual
  4590. 3:25:05que lo que cuando lo ambos valores sean
  4591. 3:25:08iguales el resultado también va a ser
  4592. 3:25:10verdadero también cuando comparamos
  4593. 3:25:12cadenas de caracteres bien ahora en la
  4594. 3:25:15próxima sección vamos a comenzar a ver
  4595. 3:25:16los operadores lógicos así que te veo en
  4596. 3:25:20el próximo tema
  4597. 3:25:27ahora vamos a ver los operadores lógicos
  4598. 3:25:29sense baskets estos operadores lógicos
  4599. 3:25:32nos permiten combinar distintas
  4600. 3:25:36expresiones para formar condiciones un
  4601. 3:25:39poco más elaboradas o más complejas el
  4602. 3:25:41primer operador lógico que vamos a ver
  4603. 3:25:43es el operador and que en español
  4604. 3:25:46significa y
  4605. 3:25:48los operadores lógicos tienen algo que
  4606. 3:25:50se llama tablas de verdad que determinan
  4607. 3:25:53cuál va a ser el resultado de una
  4608. 3:25:56expresión que usa ese operador
  4609. 3:25:59digamos que tenemos dos expresiones xy
  4610. 3:26:02cher o dos valores y esos valores son
  4611. 3:26:05verdaderos o falsos y los unimos con el
  4612. 3:26:08operador and quién javascript es un
  4613. 3:26:11doble ampersand si x es verdadero y ya
  4614. 3:26:16es verdadero true entonces cuando los
  4615. 3:26:19unimos con el operador and toda esa
  4616. 3:26:22expresión va a ser verdadera
  4617. 3:26:26en cambio si alguno de ellos es falso o
  4618. 3:26:30ambos
  4619. 3:26:31entonces la expresión va a ser falsa con
  4620. 3:26:35el operador ante la expresión solo es
  4621. 3:26:38verdadera cuando ambos operan dos son
  4622. 3:26:41verdaderos
  4623. 3:26:42ambos tienen que ser verdaderos para que
  4624. 3:26:45el resultado sea verdadero podemos
  4625. 3:26:48comprobar esto usando el operador aquí
  4626. 3:26:51tenemos las distintas combinaciones que
  4627. 3:26:53vemos en la tabla verdaderos verdaderos
  4628. 3:26:56verdadero y falso falso y verdadero y
  4629. 3:26:59falso y falso estas cuatro líneas que
  4630. 3:27:02tenemos aquí en la tabla de verdad
  4631. 3:27:04vamos a ver los resultados en la consola
  4632. 3:27:07vemos que solamente esta expresión es
  4633. 3:27:10verdadera
  4634. 3:27:12porque ambos valores son verdaderos
  4635. 3:27:15vamos a ver algunos ejemplos porque
  4636. 3:27:17normalmente nosotros en el código no
  4637. 3:27:19vamos a escribir directamente valores
  4638. 3:27:22crossfox sino que vamos a escribir
  4639. 3:27:25condiciones ciones
  4640. 3:27:27vamos a ver lo primero que vamos a hacer
  4641. 3:27:30es definir una variable con un valor
  4642. 3:27:33inicial de 8 y vamos a ver cuál es el
  4643. 3:27:36resultado de esta expresión a mayor que
  4644. 3:27:405 y a menor que 10
  4645. 3:27:45esta expresión va a ser verdadera o
  4646. 3:27:48falsa pero eso depende de si esta parte
  4647. 3:27:53es verdadera y si esta parte es
  4648. 3:27:54verdadera o no veamos a mayor que 5 es
  4649. 3:27:59verdadera porque el valor de a es 8
  4650. 3:28:03luego tenemos el operador andy y esta
  4651. 3:28:07también es verdadera porque a es menor
  4652. 3:28:09que 10
  4653. 3:28:10su valor es 8 por lo tanto el resultado
  4654. 3:28:13va a ser
  4655. 3:28:14trump de toda esta expresión lo podemos
  4656. 3:28:19verificar aquí en la consola
  4657. 3:28:21ahora digamos que cambiamos el valor de
  4658. 3:28:24a ahora el valor de a va a ser todo esto
  4659. 3:28:27va a cambiar si el valor de a estrés a
  4660. 3:28:31mayor que 5 ahora es falsa
  4661. 3:28:34y ésta sigue siendo verdadera porque
  4662. 3:28:37sigue siendo menor que 10 pero como
  4663. 3:28:40vimos en la tabla si alguna de ellas es
  4664. 3:28:43falsa el resultado va a ser falso así
  4665. 3:28:48que el resultado que se muestra en la
  4666. 3:28:50consola para esta expresión va a ser
  4667. 3:28:53falso exactamente lo que pensábamos si
  4668. 3:28:57cambiamos el valor y ahora el valor es
  4669. 3:28:5915 digamos
  4670. 3:29:01a mayor que 5 ahora es verdadera pero a
  4671. 3:29:05menor que 10
  4672. 3:29:07es falsa
  4673. 3:29:09si alguno de los valores es falso el
  4674. 3:29:11resultado es falso y eso es exactamente
  4675. 3:29:14lo que vemos en la consola falso genial
  4676. 3:29:18nos falta el último caso en el que ambos
  4677. 3:29:22son falsos
  4678. 3:29:25en este caso
  4679. 3:29:27vamos a cambiar la expresión para que
  4680. 3:29:30ambas puedan ser falsas podemos ver que
  4681. 3:29:32ambas no se pueden cumplir en simultáneo
  4682. 3:29:36podemos colocar un valor para que ambas
  4683. 3:29:39sean falsas si el valor de a es igual a
  4684. 3:29:421 esta condición también es falsa por lo
  4685. 3:29:46tanto el resultado es falso genial ya
  4686. 3:29:49probamos los 4 casos que tenemos en esta
  4687. 3:29:52tabla para el operador ante los
  4688. 3:29:54operadores lógicos van a ser muy muy
  4689. 3:29:56útiles cuando te empecemos a trabajar
  4690. 3:29:59con condicionales para decidir si una
  4691. 3:30:03parte del código se ejecuta o no basados
  4692. 3:30:06en ciertas condiciones
  4693. 3:30:09bien pasemos a nuestro siguiente
  4694. 3:30:11operador lógico el operador
  4695. 3:30:19ahora hablemos sobre el operador lógico
  4696. 3:30:21ahora él significa o en español tiene su
  4697. 3:30:25propia tabla de verdad y en javascript
  4698. 3:30:28el símbolo para ese operador es dos
  4699. 3:30:31barras dos barras verticales la tabla de
  4700. 3:30:34verdad para org es un poco distinta a la
  4701. 3:30:36tabla de verdad para andy con el
  4702. 3:30:39operador por si cualquiera de los operan
  4703. 3:30:42dos de los valores es verdadero
  4704. 3:30:45entonces el resultado es verdadero puede
  4705. 3:30:49ser uno o el otro o ambos pueden ser
  4706. 3:30:52verdaderos para que el resultado sea
  4707. 3:30:54verdadero pero si ambos son falsos ahí
  4708. 3:30:57si el resultado es falso la expresión es
  4709. 3:31:01falsa la expresión es verdadera con el
  4710. 3:31:04operador por si alguno de los dos operan
  4711. 3:31:06dos o ambos son verdaderos comprobemos
  4712. 3:31:09la tabla de verdad aquí tenemos todas
  4713. 3:31:12las combinaciones verdadero verdadero
  4714. 3:31:14verdadero falso falso verdadero y falso
  4715. 3:31:17falso
  4716. 3:31:19en la consola vamos a ver los distintos
  4717. 3:31:22valores y vemos que si alguno de ellos
  4718. 3:31:25es verdadero el resultado es verdadero y
  4719. 3:31:28solo es falso cuando ambos son falsos
  4720. 3:31:31bien empecemos a ver algunos ejemplos
  4721. 3:31:34vamos a trabajar con la misma variable
  4722. 3:31:37del ejemplo anterior
  4723. 3:31:39y vamos a mostrar en la consola el
  4724. 3:31:41resultado de una expresión digamos que a
  4725. 3:31:45es menor que 5
  4726. 3:31:47es mayor que 15
  4727. 3:31:49veamos si es verdadera o falsa en este
  4728. 3:31:51caso a menor que 5 es falsa porque el
  4729. 3:31:56valor de a es 8 y a mayor que 15 también
  4730. 3:32:00es falsa
  4731. 3:32:02porque el valor es 8 así que el
  4732. 3:32:05resultado va a ser falso y aquí lo
  4733. 3:32:08podemos ver si cambiamos el valor de a a
  4734. 3:32:12digamos
  4735. 3:32:132 ahora esta condición a menor que 50 es
  4736. 3:32:19verdadera y por lo tanto el resultado es
  4737. 3:32:22verdadero lo podemos ver aquí en la
  4738. 3:32:24consola si actualizamos el valor de a a
  4739. 3:32:28digamos 20 ahora es falsa porque a no es
  4740. 3:32:32menor que 5 pero esta si es verdadera
  4741. 3:32:35porque a es mayor que 15 así que el
  4742. 3:32:38resultado es verdadero aquí lo tenemos
  4743. 3:32:42sólo nos falta el caso en que ambas sean
  4744. 3:32:45verdaderas pero en este caso no puede
  4745. 3:32:47ocurrir porque estamos comprobando cosas
  4746. 3:32:50que no pueden ocurrir simultáneamente
  4747. 3:32:53hagamos una comparación
  4748. 3:32:56distinta si es igual a 5 y ya es menor
  4749. 3:32:59que 15
  4750. 3:33:01ese caso si puede ocurrir cuando es
  4751. 3:33:04igual a 5 el valor resultante sería
  4752. 3:33:07verdadero y lo vemos en la consola bien
  4753. 3:33:11ya sabes cómo trabajar con los
  4754. 3:33:13operadores lógicos andy y ahora nos
  4755. 3:33:16falta el tercer operador lógico llamado
  4756. 3:33:18not y es el operador que vamos a ver en
  4757. 3:33:22la próxima parte
  4758. 3:33:28ahora hablemos un poquito sobre el
  4759. 3:33:30tercer operador lógico que podemos usar
  4760. 3:33:32en javascript el operador no en español
  4761. 3:33:36no significa no y es el operador que
  4762. 3:33:39usamos para negar el valor de verdad de
  4763. 3:33:42otra expresión para negar una expresión
  4764. 3:33:45veamos este ejemplo el símbolo que
  4765. 3:33:48usamos para denotar este operador en
  4766. 3:33:50javascript es un signo de exclamación es
  4767. 3:33:53el signo de exclamación se coloca antes
  4768. 3:33:55de la expresión que queremos negar y
  4769. 3:33:58ella va a saber el resultado si la
  4770. 3:34:00expresión es verdadera agregando el este
  4771. 3:34:02operador convertimos el resultado en
  4772. 3:34:04falso y si la expresión es falsa la
  4773. 3:34:07convertimos en verdadero comprobemos la
  4774. 3:34:10tabla de verdad como hicimos
  4775. 3:34:11anteriormente con los otros dos
  4776. 3:34:13operadores
  4777. 3:34:14si nosotros escribimos ese operador el
  4778. 3:34:16signo de exclamación seguido del valor
  4779. 3:34:19de verdad el resultado debería ser falso
  4780. 3:34:22y si escribimos ese operador con el
  4781. 3:34:26valor fob el resultado lazio comprobemos
  4782. 3:34:30esto en la consola aquí vemos fouz y
  4783. 3:34:34luego vemos aquí bien ya comprobamos la
  4784. 3:34:37tabla de verdad de noche así que veamos
  4785. 3:34:39algunos ejemplos
  4786. 3:34:41estos ejemplos va a ser más conciso
  4787. 3:34:43porque solo necesitamos ver dos
  4788. 3:34:46situaciones si la expresión es verdadera
  4789. 3:34:49y si la expresión es falsa si definimos
  4790. 3:34:51una variable la creamos la variable aire
  4791. 3:34:54asignamos el valor 8 veamos como la
  4792. 3:34:57usamos en las expresiones
  4793. 3:34:59vamos a mostrar el resultado de la
  4794. 3:35:01expresión
  4795. 3:35:03vamos a usar el operador not el signo de
  4796. 3:35:06exclamación y entre paréntesis vamos a
  4797. 3:35:08escribir nuestra expresión no debe
  4798. 3:35:11separar con un espacio esto que no debe
  4799. 3:35:14haber separación entre el operador y la
  4800. 3:35:16expresión
  4801. 3:35:17queremos verificar si a es mayor que 5 y
  4802. 3:35:22luego queremos negar ese valor
  4803. 3:35:24veamos qué es lo que va a ocurrir cuando
  4804. 3:35:26se evalúe esta expresión
  4805. 3:35:29a mayor que 5 es verdadero porque su
  4806. 3:35:33valor es 8 entonces lo que tenemos aquí
  4807. 3:35:35es una negación del valor ya que resulta
  4808. 3:35:40en el valor fob bien ya tenemos nuestra
  4809. 3:35:43primera expresión ahora veamos un
  4810. 3:35:45resultado que nos dé hecho
  4811. 3:35:48estamos verificando si a es menor que 5
  4812. 3:35:51y luego estamos negando su valor
  4813. 3:35:54si escribimos aquí la expresión
  4814. 3:35:57estamos negando el valor fox porque esta
  4815. 3:36:00expresión es falsa no es menor que 5 si
  4816. 3:36:04lo negamos con este operador el operador
  4817. 3:36:06no es el resultado va a ser
  4818. 3:36:10bien vamos a agregar unas líneas aquí y
  4819. 3:36:12abrir la consola podemos ver los valores
  4820. 3:36:15falsos y ser mostrados aquí en la
  4821. 3:36:18consola enviando ya tenemos nuestros
  4822. 3:36:21tres operadores que podemos usar en el
  4823. 3:36:23código para escribir condiciones más
  4824. 3:36:25complejas y para controlar qué es lo que
  4825. 3:36:27pasa en nuestro código porque ellas van
  4826. 3:36:30a ser vitales para poder escribir
  4827. 3:36:32condicionales y ese va a ser el próximo
  4828. 3:36:35tema del curso vamos a adentrarnos en
  4829. 3:36:37condicionales que van a ser herramientas
  4830. 3:36:39importantísimas para programar y para
  4831. 3:36:41crear programas más elaborados así que
  4832. 3:36:43comencemos con nuestra siguiente parte
  4833. 3:36:45del curso
  4834. 3:36:51bien ya llegamos a una parte del curso
  4835. 3:36:53en el que vas a aprender herramientas
  4836. 3:36:55que van a hacer poderosísimas para crear
  4837. 3:36:57programas en javascript básicamente la
  4838. 3:37:00vas a usar en casi todos los proyectos o
  4839. 3:37:02programas que escribas te prometo que
  4840. 3:37:04las vas a usar muy a menudo ellos son
  4841. 3:37:06los condicionales los condicionales nos
  4842. 3:37:09permiten decidir si un bloque de código
  4843. 3:37:12se ejecuta o no dependiendo de una
  4844. 3:37:15condición
  4845. 3:37:16básicamente nos da más control sobre qué
  4846. 3:37:18es lo que va a ocurrir en el programa
  4847. 3:37:20para escribir un condicional lo primero
  4848. 3:37:23que escribimos es la palabra clave if y
  4849. 3:37:26efe en español significaría algo como si
  4850. 3:37:29un sí condicional si esta condición es
  4851. 3:37:32verdadera la condición va a estar entre
  4852. 3:37:34paréntesis
  4853. 3:37:35entonces hacemos lo que está dentro de
  4854. 3:37:38las llaves la palabra clave o la palabra
  4855. 3:37:41reservada y luego la condición dentro de
  4856. 3:37:44los paréntesis y luego una secuencia de
  4857. 3:37:47instrucciones que va a estar aquí
  4858. 3:37:49inventado dentro llaves
  4859. 3:37:52esta condición tiene que ser verdadera
  4860. 3:37:54para que se ejecuta este código así que
  4861. 3:37:58vamos a comenzar solo escribiendo el
  4862. 3:38:00valor aquí verdadero así que siempre se
  4863. 3:38:03va a ejecutar este código que vamos a
  4864. 3:38:06hacer vamos a mostrar un mensaje que
  4865. 3:38:08diga la condición es verdadera
  4866. 3:38:13aquí ves la estructura general del
  4867. 3:38:14condicional veamos la consola la
  4868. 3:38:17condición es verdadera puedes ver que
  4869. 3:38:19este código se ejecutó porque esta
  4870. 3:38:21condición es verdadera pero normalmente
  4871. 3:38:24no vamos a escribir el valor de verdad
  4872. 3:38:26directamente no vamos a escribir true
  4873. 3:38:29lo que vamos a escribir es una condición
  4874. 3:38:31veamos un ejemplo si definimos una
  4875. 3:38:34variable x y le asignamos el valor 5 y
  4876. 3:38:38en lugar de escribir el valor
  4877. 3:38:39directamente aquí decimos si x es mayor
  4878. 3:38:42que 2
  4879. 3:38:43entonces muestra este mensaje y este es
  4880. 3:38:47un ejemplo de un condicional como los
  4881. 3:38:49que normalmente vas a encontrar en la
  4882. 3:38:51ficha basket la palabra clave es una
  4883. 3:38:54condición más elaborado también puede
  4884. 3:38:56ser mucho más compleja esta condición
  4885. 3:38:58podemos usar operadores lógicos and or
  4886. 3:39:01not
  4887. 3:39:02podemos usar otro tipo de operador de
  4888. 3:39:04comparación pero siempre va a ser una
  4889. 3:39:06expresión que evalúa verdadero o falso
  4890. 3:39:08si es verdadera este código se ejecuta
  4891. 3:39:12puede tener muchas líneas tantas como
  4892. 3:39:14necesitamos que estén condicionadas y si
  4893. 3:39:17es falso este código no se va a ejecutar
  4894. 3:39:20y simplemente va a seguir la ejecución
  4895. 3:39:23del programa luego del condicional
  4896. 3:39:24cualquier línea que esté por aquí va a
  4897. 3:39:26ser ejecutada y se salta este código
  4898. 3:39:29veamos la consola la condición es
  4899. 3:39:32verdadera como x es mayor que 2 esta
  4900. 3:39:36condición fue verdadera y se ejecutó
  4901. 3:39:38esta línea
  4902. 3:39:39ahora vamos a cambiar el operador y
  4903. 3:39:41vamos a decir si x es menor que 2
  4904. 3:39:43ejecutar este código pero como es que es
  4905. 3:39:46igual a 5 no es menor que 2 esta
  4906. 3:39:49condición es falsa y esta condición es
  4907. 3:39:51falsa y este código no se ejecuta y lo
  4908. 3:39:54puedes ver aquí en la consola porque no
  4909. 3:39:56tenemos ningún mensaje mostrado en la
  4910. 3:39:58consola así es básicamente como
  4911. 3:40:00funcionan los condicionales también
  4912. 3:40:02podemos escribir condiciones más
  4913. 3:40:04elaboradas por ejemplo si x es mayor que
  4914. 3:40:072 y menor que díaz
  4915. 3:40:09ejecuta esta línea de código
  4916. 3:40:12puedes ver cómo estamos combinando los
  4917. 3:40:14operadores de comparación y los
  4918. 3:40:16operadores lógicos para formar
  4919. 3:40:18condiciones más complejas también
  4920. 3:40:20podríamos usar más paréntesis aquí si
  4921. 3:40:23creemos que eso ayuda a que el código
  4922. 3:40:26sea más fácil de leer en este caso
  4923. 3:40:27también podríamos omitir los bien veamos
  4924. 3:40:30un ejemplo con las estaciones
  4925. 3:40:32estación recuerda que no estoy
  4926. 3:40:34incluyendo los acentos porque
  4927. 3:40:36normalmente tratamos de omitir
  4928. 3:40:39caracteres que no sean estándar en
  4929. 3:40:41inglés que es lo que decimos en nuestro
  4930. 3:40:43condicional si el valor de la variable
  4931. 3:40:47estación es igual a invierno que vamos a
  4932. 3:40:51hacer mensaje si me encanta el invierno
  4933. 3:40:55y en este caso la condición es verdadera
  4934. 3:40:58porque el valor de estación es invierno
  4935. 3:41:01como la condición es verdadera se va a
  4936. 3:41:04ejecutar esta línea de código y si vemos
  4937. 3:41:06en la consola podemos verlo si me
  4938. 3:41:09encanta el invierno ahora si la
  4939. 3:41:11condición es falsa porque la estación no
  4940. 3:41:14es la que nosotros colocamos en la
  4941. 3:41:16condición por ejemplo si ahorita estamos
  4942. 3:41:18en verano y la condición dice que tiene
  4943. 3:41:20que ser invierno para que esto ocurra
  4944. 3:41:22qué es lo que va a ocurrir en este caso
  4945. 3:41:25nada porque la condición era falsa este
  4946. 3:41:29código no se ejecuta y como no tenemos
  4947. 3:41:31más líneas aquí el programa simplemente
  4948. 3:41:33termina podemos mostrar un mensaje aquí
  4949. 3:41:37que diga
  4950. 3:41:39después del condicional para que veas
  4951. 3:41:42que cualquier línea que esté luego de
  4952. 3:41:44esta llave que cierra el condicional va
  4953. 3:41:47a ser ejecutada si la condición es falsa
  4954. 3:41:50y también va a ser ejecutada si la
  4955. 3:41:52condición es verdadera cuando se termine
  4956. 3:41:54de ejecutar este bloque de código
  4957. 3:41:56ahorita la condición es falsa no se
  4958. 3:41:59ejecuta este código así que saltamos a
  4959. 3:42:01esta línea y vemos después del
  4960. 3:42:03condicional si la condición es verdadera
  4961. 3:42:06se ejecuta esta línea se ejecuta esta
  4962. 3:42:08línea aquí vemos el mensaje y también
  4963. 3:42:11seguimos en la ejecución normal del
  4964. 3:42:13programa después del condicional genial
  4965. 3:42:16ya sabes cómo escribir un condicional
  4966. 3:42:18básico con una condición pero también
  4967. 3:42:20podemos manejar varias condiciones y
  4968. 3:42:22decidir qué es lo que pasa si la
  4969. 3:42:24condición es falsa así que esto lo
  4970. 3:42:26veremos en las próximas partes del curso
  4971. 3:42:28te espero allí
  4972. 3:42:35también podemos expandir nuestros
  4973. 3:42:37condicionales para decidir qué es lo que
  4974. 3:42:39ocurre si la condición del condicional
  4975. 3:42:42es falsa vamos a escribir el condicional
  4976. 3:42:45sí y decimos si la condición es
  4977. 3:42:48verdadera escribamos aquí una vez el
  4978. 3:42:50valor you vamos a inicialmente a
  4979. 3:42:53trabajar con el valor de verdad para
  4980. 3:42:55ilustrar qué es lo que ocurre la
  4981. 3:42:57condición es verdadera
  4982. 3:43:00si no la condición es falsa
  4983. 3:43:03esta es la cláusula
  4984. 3:43:05que podemos agregar a los condicionales
  4985. 3:43:07tenemos la misma estructura con la que
  4986. 3:43:10trabajamos anteriormente pero ahora
  4987. 3:43:13luego de la llave que cierra la cláusula
  4988. 3:43:16y
  4989. 3:43:16escribimos la palabra oms esta es una
  4990. 3:43:19palabra especial reservada en javascript
  4991. 3:43:22para esta cláusula con cláusula
  4992. 3:43:25simplemente uno se refiere a una parte
  4993. 3:43:27de una estructura que podemos usar en el
  4994. 3:43:30código en este caso la estructura sería
  4995. 3:43:32un condicional y 11 es una parte de esa
  4996. 3:43:35estructura una cláusula que nos permite
  4997. 3:43:38decidir qué es lo que pasa si la
  4998. 3:43:40condición es falsa
  4999. 3:43:43escribimos ellos otro par de llaves y
  5000. 3:43:46dentro de las llaves escribimos lo que
  5001. 3:43:49queremos que ocurra en este caso vamos a
  5002. 3:43:51mostrar el mensaje de la condición es
  5003. 3:43:53falsa si la condición es verdadera
  5004. 3:43:57esta condición que tenemos aquí se
  5005. 3:44:00ejecuta este código el que pertenece a
  5006. 3:44:03la cláusula pero si la condición es
  5007. 3:44:06falsa que es lo que va a ocurrir este
  5008. 3:44:10código no se ejecuta vamos a cambiar
  5009. 3:44:12esto aquí por font y puedes ver que
  5010. 3:44:15cambia el enfoque del código aquí porque
  5011. 3:44:17esta es la cláusula que se va a ejecutar
  5012. 3:44:19la cláusula outs el código que
  5013. 3:44:22corresponda eus se va a ejecutar es uno
  5014. 3:44:25u otro nunca se va a ejecutar los dos la
  5015. 3:44:28condición o es verdadera y se ejecuta
  5016. 3:44:31este código o es falsa y se ejecuta este
  5017. 3:44:34código nunca ambos a la vez y como
  5018. 3:44:37hablamos de que normalmente no vamos a
  5019. 3:44:39escribir los valores de verdad en la
  5020. 3:44:41condición vamos a ver un ejemplo vamos a
  5021. 3:44:44definir la variable x con un valor
  5022. 3:44:47inicial 5
  5023. 3:44:49la condición va a ser que x sea menor
  5024. 3:44:52que 2 si x es menor que 2 esta condición
  5025. 3:44:55es verdadera y por lo tanto esta línea
  5026. 3:44:58de código se ejecuta y se muestra un
  5027. 3:45:00mensaje si la condición es falsa
  5028. 3:45:03entonces vamos a ellos y se ejecuta esta
  5029. 3:45:05línea
  5030. 3:45:06veamos qué es lo que ocurre abriendo la
  5031. 3:45:08consola puedes ver aquí que la condición
  5032. 3:45:12es falsa
  5033. 3:45:13este mensaje se muestra porque esta
  5034. 3:45:15línea se ejecuta esta línea no se
  5035. 3:45:18ejecuta porque la conexión es falso
  5036. 3:45:21genial vamos a seguir con nuestro
  5037. 3:45:23ejemplo de estaciones estación y decimos
  5038. 3:45:28si la estación es verano qué vamos a
  5039. 3:45:31hacer
  5040. 3:45:32vamos a escribir oa mostrar este mensaje
  5041. 3:45:35comenzó el verano ya podemos ir a la
  5042. 3:45:40playa
  5043. 3:45:41si no ya quiero que llegue el verano
  5044. 3:45:45para poder ir a la playa bien ya tenemos
  5045. 3:45:50nuestro condicional de esta condición va
  5046. 3:45:53a depender qué es lo que ocurre en el
  5047. 3:45:55programa si es verdadero se ejecuta esta
  5048. 3:45:58línea y si es falsa vamos a la cláusula
  5049. 3:46:012 y se ejecuta esta ley
  5050. 3:46:04en este caso la condición es falsa
  5051. 3:46:06porque el valor de estación no es igual
  5052. 3:46:08a verano en este caso podríamos usar el
  5053. 3:46:11operador de igualdad pero también se
  5054. 3:46:13recomiendo usar guardada estricta para
  5055. 3:46:15verificar el tipo de dato que vamos a
  5056. 3:46:18abrir la consola y aquí vemos ya quiero
  5057. 3:46:21que llegue el verano para poder ir a la
  5058. 3:46:23playa
  5059. 3:46:24este mensaje se demostró porque la
  5060. 3:46:27condición era falsa bien ya sabes cómo
  5061. 3:46:30trabajar con la cláusula euros la
  5062. 3:46:32cláusula ellos sirve como un respaldo y
  5063. 3:46:35si siempre va a estar ubicada luego de
  5064. 3:46:38la cláusula if la cláusula ife es como
  5065. 3:46:40la principal y esto es simplemente un
  5066. 3:46:43respaldo de qué es lo que pasa si la
  5067. 3:46:45condición es falsa bien también puedes
  5068. 3:46:48manejar varias condiciones y para eso
  5069. 3:46:51tenemos una cláusula llamada else if la
  5070. 3:46:54vamos a ver en el próximo tema
  5071. 3:47:01los condicionales también pueden
  5072. 3:47:03verificar y manejar varias condiciones
  5073. 3:47:06en este ejemplo vamos a ver cómo puedes
  5074. 3:47:08usar una cláusula llamada else y es que
  5075. 3:47:11nos permite hacer exactamente eso
  5076. 3:47:12manejar condiciones alternativas y
  5077. 3:47:15decidir qué pasa si alguna de ellas es
  5078. 3:47:17verdadera esta vez vamos a trabajar con
  5079. 3:47:20funciones vamos a definir una función
  5080. 3:47:23que se va a llamar clasificar valor esta
  5081. 3:47:26función va a tomar un valor como un
  5082. 3:47:29parámetro y va a determinar si el valor
  5083. 3:47:31es divisible entre 2 divisible entre 3 o
  5084. 3:47:35si no es divisible entre ninguno de esos
  5085. 3:47:37números vamos a hacerlo con un
  5086. 3:47:38condicional escribimos si el valor es
  5087. 3:47:41divisible entre 2 es decir si el valor
  5088. 3:47:44dividido entre 2 genera un resto igual a
  5089. 3:47:47cero mostramos el mensaje que diga
  5090. 3:47:50divisible entre 2 ya conoces cómo
  5091. 3:47:53escribir el quiz la cláusula if y
  5092. 3:47:56también conoces cómo escribir la
  5093. 3:47:58cláusula eus vamos a agregar la acción
  5094. 3:48:01de una vez porque ya la conoces vamos a
  5095. 3:48:04decir no es divisible
  5096. 3:48:06entre las opciones
  5097. 3:48:10ahora entre y james vamos a poder
  5098. 3:48:13agregar una cláusula nueva que se llama
  5099. 3:48:15el if como le agregamos luego de la
  5100. 3:48:19llave que cierra y escribimos eos if
  5101. 3:48:23separadas con un espacio el aussie live
  5102. 3:48:28y nuevamente escribimos un par de llaves
  5103. 3:48:30las llaves son vitales en javascript
  5104. 3:48:32porque le dicen al programa hasta dónde
  5105. 3:48:34llega a cada bloque de código cada parte
  5106. 3:48:37de la estructura lo clave aquí es que
  5107. 3:48:40tenemos que escribir una condición luego
  5108. 3:48:43de la palabra if esa condición también
  5109. 3:48:46se puede verificar vamos a ver ya la
  5110. 3:48:48lógica de esa condición decimos si el
  5111. 3:48:51valor es divisible entre 3 entonces
  5112. 3:48:54mostramos este mensaje
  5113. 3:48:57es divisible entre 3 y ya tenemos
  5114. 3:49:00nuestra función es nuestra función con
  5115. 3:49:02nuestro condicional pero cómo funciona
  5116. 3:49:05este condicional cuál es la lógica del
  5117. 3:49:07código si esta condición es verdadera la
  5118. 3:49:11primera que encontramos en el
  5119. 3:49:12condicional esta línea se ejecuta todo
  5120. 3:49:16lo que corresponda a este bloque de
  5121. 3:49:18código entre el primer par de llaves
  5122. 3:49:21sino si esta condición es falsa se
  5123. 3:49:24verifica y se verifica que es falsa este
  5124. 3:49:27código no se ejecuta y pasamos
  5125. 3:49:30directamente a esta parte del código la
  5126. 3:49:32segunda cláusula se verifica esta
  5127. 3:49:35condición se evalúa la expresión si es
  5128. 3:49:38verdadera se ejecuta el código que
  5129. 3:49:40corresponde a esa cláusula y si es falsa
  5130. 3:49:43pasamos a la siguiente cláusula o en su
  5131. 3:49:47defecto a la cláusula 2 si existe una en
  5132. 3:49:50el condicional y se ejecuta este código
  5133. 3:49:54si todas las condiciones anteriores son
  5134. 3:49:56falsas en el condicional
  5135. 3:49:59sirve como un respaldo vamos a llevar la
  5136. 3:50:01función con distintos valores para que
  5137. 3:50:03veas cómo funciona este condicional
  5138. 3:50:06digamos que el valor es 2 lo cual
  5139. 3:50:10sabemos que va a ejecutar este línea de
  5140. 3:50:14código porque el valor es divisible
  5141. 3:50:16entre 2 está condición va a ser
  5142. 3:50:19verdadero y este código se va a ejecutar
  5143. 3:50:21veamos la consola como es divisible
  5144. 3:50:25entre 2 este mensaje se muestre lo vemos
  5145. 3:50:27en la consola
  5146. 3:50:29ahora si el valor es 15 sabemos que no
  5147. 3:50:32es divisible entre 2 en esta condición
  5148. 3:50:35va a ser falsa pero esta condición si
  5149. 3:50:38iba a ser verdadera porque es divisible
  5150. 3:50:40entre otras así que veamos la consola
  5151. 3:50:43vemos los dos mensajes pero déjenme
  5152. 3:50:45comentar aquí esta línea y ahorita vemos
  5153. 3:50:48solo es divisible entre 3
  5154. 3:50:51que es el resultado de llamar a esta
  5155. 3:50:54función con este valor genial y
  5156. 3:50:57finalmente vamos a llamar a la función
  5157. 3:51:00con un valor que no cumpla ninguno de
  5158. 3:51:02esos criterios no es divisible entre 2 y
  5159. 3:51:04no es divisible entre otras
  5160. 3:51:07entonces allí iríamos a esta cláusula 2
  5161. 3:51:09y se mostraría el mensaje
  5162. 3:51:13no es divisible entre las opciones el
  5163. 3:51:15mensaje que tenemos aquí y así es
  5164. 3:51:18básicamente cómo funciona un condicional
  5165. 3:51:20que tiene una cláusula offer si las
  5166. 3:51:22condiciones anteriores son falsas se
  5167. 3:51:24evalúa su condición y se ejecuta su
  5168. 3:51:26código si la condición es verdadera pero
  5169. 3:51:29solamente uno de estos bloques de código
  5170. 3:51:32se va a ejecutar eso es clave en los
  5171. 3:51:34condicionales es clave que sepas cómo
  5172. 3:51:36funciona esta parte de los condicionales
  5173. 3:51:38solo un bloque de código se va a
  5174. 3:51:40ejecutar el bloque de código que
  5175. 3:51:43corresponda a la primera condición que
  5176. 3:51:45es verdadera si hay muchas condiciones
  5177. 3:51:48que puedan ser verdaderas solo la
  5178. 3:51:49primera que sea verdadera se va a
  5179. 3:51:51ejecutar y después el programa va a
  5180. 3:51:53continuar con su ejecución normal bien
  5181. 3:51:56así que pasemos a nuestro siguiente tema
  5182. 3:52:04veamos otro ejemplo de un condicional
  5183. 3:52:06porque es muy importante que entiendas
  5184. 3:52:08cómo funciona cada una de sus cláusulas
  5185. 3:52:11y cuál va a ser el resultado del código
  5186. 3:52:15así que vamos a definir una función que
  5187. 3:52:17se va a llamar clasificar valor esta
  5188. 3:52:21función va a tomar un valor como
  5189. 3:52:23argumento así que definimos aquí el
  5190. 3:52:26parámetro de la función y dentro de la
  5191. 3:52:29función vamos a escribir un condicional
  5192. 3:52:31este condicionar va a verificar dos
  5193. 3:52:34condiciones de ese valor primero va a
  5194. 3:52:37verificar si el valor es menor que cinco
  5195. 3:52:39estrictamente menor que cinco si ese es
  5196. 3:52:42el caso entonces vamos a mostrar el
  5197. 3:52:45mensaje menor que cinco en la consola
  5198. 3:52:49si no si tenemos que verificar la
  5199. 3:52:52siguiente condición porque este no es el
  5200. 3:52:55caso y esta condición es falsa vamos a
  5201. 3:52:58pasar a la cláusula es decir esa
  5202. 3:53:02cláusula va a haber y si el valor es
  5203. 3:53:03menor que 10 si ese es el caso vamos a
  5204. 3:53:06mostrar este mensaje menor que 10 si
  5205. 3:53:10ambas condiciones son falsas si el valor
  5206. 3:53:12no es menor que 5 y el valor no es menor
  5207. 3:53:15que 10 entonces la única opción que nos
  5208. 3:53:18queda es que el valor sea mayor o igual
  5209. 3:53:21a 10 esa es básicamente la estructura
  5210. 3:53:24del condicional en este ejemplo pero
  5211. 3:53:27veamos cómo funciona con distintos
  5212. 3:53:29valores que le vamos a pasar a la
  5213. 3:53:31función
  5214. 3:53:32y llamamos a la función de esta forma
  5215. 3:53:34clasificar valor y entre paréntesis
  5216. 3:53:36tenemos que pasar un valor para ese
  5217. 3:53:40parámetro digamos 2 veamos cuál es el
  5218. 3:53:43resultado
  5219. 3:53:44el mensaje es menor que 5 porque se
  5220. 3:53:48muestra este mensaje porque esta
  5221. 3:53:50condición es verdadera en este valor 2
  5222. 3:53:53se asigna a este parámetro y luego donde
  5223. 3:53:56usamos el parámetro se va a reemplazar
  5224. 3:53:59ese valor para comprobar la condición en
  5225. 3:54:02este caso está en este caso estamos
  5226. 3:54:04comprobando si 2 es menor que 5 esa
  5227. 3:54:08condición es verdadera y por lo tanto
  5228. 3:54:10este código se ejecuta sólo una de las
  5229. 3:54:14cláusulas es la que se ejecuta aunque
  5230. 3:54:16puedes ver que sólo vemos este mensaje
  5231. 3:54:18esta parte del código y esta parte del
  5232. 3:54:22código que corresponden a otras
  5233. 3:54:24cláusulas no se ejecutan en este caso el
  5234. 3:54:28valor era menor que 5 pero qué ocurre si
  5235. 3:54:30esta condición es falsa
  5236. 3:54:33veamos si actualizamos el valor a 7 aquí
  5237. 3:54:36como el argumento
  5238. 3:54:38vemos que el mensaje se actualiza a
  5239. 3:54:39menor que 10 esta línea que tenemos acá
  5240. 3:54:43porque el argumento 7 se asigna al
  5241. 3:54:46parámetro valor
  5242. 3:54:48esta condición se verifica y comparamos
  5243. 3:54:517 con
  5244. 3:54:5357 no es menor que 5 así que esta
  5245. 3:54:56condición es falsa como es falsa ni
  5246. 3:54:59siquiera pasamos a esta parte del código
  5247. 3:55:02es como si no existía siguiente parte
  5248. 3:55:04del condicional a la siguiente cláusula
  5249. 3:55:06y decimos el valor es menor que 10 esa
  5250. 3:55:11condición ahora sí es verdadera porque
  5251. 3:55:13el valor era 7 así que es estrictamente
  5252. 3:55:16menor que 10 y por eso vemos esta línea
  5253. 3:55:20que tenemos acá esa línea se ejecuta y
  5254. 3:55:23vemos el mensaje menor que 10 nota algo
  5255. 3:55:26curioso que tenemos aquí en nuestro
  5256. 3:55:28ejemplo anterior cuando pasábamos el
  5257. 3:55:31valor 2 como argumento
  5258. 3:55:34estas dos condiciones eran verdaderas no
  5259. 3:55:37sé si lo notas te anteriormente cuando
  5260. 3:55:39estábamos viendo el ejemplo pero es algo
  5261. 3:55:41importante de resaltar porque en este
  5262. 3:55:43caso el valor era 2 el valor era menor
  5263. 3:55:46que 5 y era menor que 10
  5264. 3:55:49ambas eran verdaderas pero solamente se
  5265. 3:55:52muestra un mensaje aquí porque solo se
  5266. 3:55:55ejecuta el código de la primera
  5267. 3:55:58condición que sea verdadera en la
  5268. 3:56:00secuencia así que es importante export
  5269. 3:56:04and test que analices bien el orden en
  5270. 3:56:07que escribes estas cláusulas si nosotros
  5271. 3:56:10hubiéramos puesto esta condición primero
  5272. 3:56:12aquí arriba hubiéramos invertido el
  5273. 3:56:15orden de las condiciones
  5274. 3:56:16el mensaje hubiera sido distinto veamos
  5275. 3:56:19a qué me refiero si nosotros cambiamos
  5276. 3:56:21las condiciones aquí ponemos 10 y aquí
  5277. 3:56:24ponemos 5 aquí ponemos 10 y aquí ponemos
  5278. 3:56:275 puedes ver que aquí el mensaje ahora
  5279. 3:56:31es menor que 10 porque esta fue la
  5280. 3:56:34primera condición verdadera y se ejecuta
  5281. 3:56:36este código
  5282. 3:56:38así que es muy importante que escojas el
  5283. 3:56:40orden de las condiciones adecuadamente
  5284. 3:56:42para que la primera condición que sea
  5285. 3:56:44verdadera sea la que se ejecute ahora si
  5286. 3:56:47regresamos toda la normalidad vamos a
  5287. 3:56:50probar qué es lo que ocurre si ninguna
  5288. 3:56:52de las condiciones es verdadera si ambas
  5289. 3:56:54son falsas y vamos a estas cláusulas
  5290. 3:56:56else si pasamos el valor por ejemplo 15
  5291. 3:56:59como argumento se asigna ese valor al
  5292. 3:57:02parámetro y como quien seno es menor que
  5293. 3:57:055 esta condición es falsa no es menor
  5294. 3:57:08que 10 esta condición es falsa nos vamos
  5295. 3:57:11a esta cláusula que sirve como un
  5296. 3:57:13respaldo y por lo tanto esta línea este
  5297. 3:57:16bloque de código que podría ser de más
  5298. 3:57:18de una línea se ejecuta en este caso
  5299. 3:57:21vemos el mensaje mayor o igual a 10
  5300. 3:57:24genial ya sabes cómo funciona la lógica
  5301. 3:57:28de las cláusulas if el if years puedes
  5302. 3:57:32agregar más de una cláusula dependiendo
  5303. 3:57:35de cuántas condiciones deseas verificar
  5304. 3:57:37en el condicional lo importante es que
  5305. 3:57:39la cláusula ypf tiene que ser la primera
  5306. 3:57:42cláusula
  5307. 3:57:43el cif tiene que ser la segunda cláusula
  5308. 3:57:46tercera y así sucesivamente y la
  5309. 3:57:49cláusula 2 siempre tiene que estar al
  5310. 3:57:51final es la última porque sirve como
  5311. 3:57:54respaldo en la siguiente parte vamos a
  5312. 3:57:57ver cómo puedes escribir un condicional
  5313. 3:57:59con más de una cláusula o sea vamos a
  5314. 3:58:02tener un ejemplo con el índice de masa
  5315. 3:58:04corporal así que te veo allí
  5316. 3:58:11bien ahora vamos a ver un ejemplo de un
  5317. 3:58:13condicional con dos cláusulas el shift
  5318. 3:58:16vamos a verificar varias condiciones
  5319. 3:58:19primero vamos a definir una función y
  5320. 3:58:22nuestro ejemplo va a estar enfocado en
  5321. 3:58:24interpretar el índice de masa corporal
  5322. 3:58:26de una persona vamos a tomar ese valor
  5323. 3:58:30del índice de masa corporal y luego
  5324. 3:58:32vamos a clasificarlo con un condicional
  5325. 3:58:34los valores van a estar clasificados de
  5326. 3:58:37acuerdo a dar una tabla que puedes
  5327. 3:58:39conseguir en el centro de control de
  5328. 3:58:40enfermedades de eeuu el civis y
  5329. 3:58:43comenzamos a implementar nuestra función
  5330. 3:58:45vamos a llamarla interpretar y mc el
  5331. 3:58:49índice de masa corporal
  5332. 3:58:51y en nuestro parámetro podemos asignarle
  5333. 3:58:53un nombre explícito o un nombre más
  5334. 3:58:56descriptivo llamado índice de masa
  5335. 3:58:58corporal o también podemos llamarlo
  5336. 3:59:01valor o índice para hacer más concisos
  5337. 3:59:04vamos a intentar con dos espacios este
  5338. 3:59:07condicional una vez que tenemos este
  5339. 3:59:10valor tenemos que ver en qué rango de
  5340. 3:59:13valores está ubicado vamos a verificar
  5341. 3:59:16si el índice de masa corporal es menor
  5342. 3:59:18que 18.5 estrictamente menor que 18.5 si
  5343. 3:59:24ese es el caso entonces vamos a mostrar
  5344. 3:59:27este mensaje bajo peso
  5345. 3:59:31bien en el caso de que el índice de masa
  5346. 3:59:36corporal sea mayor o igual que el 18.5
  5347. 3:59:39mayor o igual
  5348. 3:59:41esta condición es falsa
  5349. 3:59:44entonces pasaríamos a la siguiente
  5350. 3:59:47condición
  5351. 3:59:48allí vamos a verificar si el índice de
  5352. 3:59:51masa corporal
  5353. 3:59:54es menor o igual que 24.9 ya sabemos que
  5354. 3:59:59es mayor o igual a 18.5 porque esta
  5355. 4:00:02condición fue falsa
  5356. 4:00:05ahora queremos también verificar si es
  5357. 4:00:08menor o igual que 24.9 si está en ese
  5358. 4:00:11rango entonces el peso se clasifica como
  5359. 4:00:14normal ese índice es normal y las
  5360. 4:00:17personas de los rangos normales
  5361. 4:00:18si no vamos a la tercera posibilidad
  5362. 4:00:22si el índice de masa corporal es menor o
  5363. 4:00:26igual a 29.9 entonces eso significa que
  5364. 4:00:31la persona tiene sobrepeso
  5365. 4:00:33se clasifica como sobrepeso y ese no sin
  5366. 4:00:38ninguna de estas condiciones es
  5367. 4:00:40verdadera eso significa que el índice de
  5368. 4:00:43masa corporal es mayor que 29.9
  5369. 4:00:47recuerda que aquí estamos como creando
  5370. 4:00:49intervalos o rangos de valores aquí
  5371. 4:00:53esta condición va a ser verdadera si el
  5372. 4:00:56valor del índice de masa corporal es
  5373. 4:00:58menor a 18.5 si es falsa significa que
  5374. 4:01:02el valor es mayor o igual a 18.5 luego
  5375. 4:01:05vamos a la segunda condición sabemos que
  5376. 4:01:08es mayor o igual a 18.5
  5377. 4:01:10también queremos confirmar si es menor o
  5378. 4:01:13igual a 24.9 puedes ver como creamos
  5379. 4:01:16como un intervalo de valores posibles
  5380. 4:01:18para cada condición
  5381. 4:01:20y si eso no es verdad si esta condición
  5382. 4:01:23es falsa sabemos que el valor es mayor
  5383. 4:01:25que 24.9
  5384. 4:01:28así que pasamos a esta condición es
  5385. 4:01:31mayor de 24.9 pero también queremos
  5386. 4:01:34confirmar si es menor o igual a 29.9 en
  5387. 4:01:38ese caso tiene sobrepeso pero sin
  5388. 4:01:41ninguna de las condiciones es verdadera
  5389. 4:01:43sabemos que es mayor que 29.9 y eso
  5390. 4:01:47clasificaría su índice de masa corporal
  5391. 4:01:49como
  5392. 4:01:50obeso obesidad bien ya tenemos nuestra
  5393. 4:01:54función implementada vamos a llamarla
  5394. 4:01:57con distintos valores para probar cada
  5395. 4:01:59una de las opciones del condicional
  5396. 4:02:01primero veamos 17.8 este valor es menor
  5397. 4:02:05que 18.5 así que esta condición es
  5398. 4:02:08verdadera y vemos el mensaje bajo peso
  5399. 4:02:12exactamente lo que tenemos aquí ahora si
  5400. 4:02:16cambiamos este valor a 22.2 este es un
  5401. 4:02:19valor que es mayor que 18.5 así que esta
  5402. 4:02:23condición es falsa pasamos a esta
  5403. 4:02:26condición
  5404. 4:02:27si es menor o igual que
  5405. 4:02:2924.9 así que esta condición es verdadera
  5406. 4:02:33y este código se debería ejecutar así
  5407. 4:02:37que deberíamos ver el valor normal
  5408. 4:02:39perfecto ahora pasemos a otro valor
  5409. 4:02:4328.5 en ese caso esta condición es falsa
  5410. 4:02:48esta condición es falsa porque no es
  5411. 4:02:51menor o igual que 24.9 y evaluamos esta
  5412. 4:02:54condición
  5413. 4:02:56ahora esta condición si es verdadera
  5414. 4:02:58porque el valor 28.5 es menor o igual a
  5415. 4:03:0229.9 así que el mensaje que deberíamos
  5416. 4:03:06ver es sobrepeso ya tenemos aquí
  5417. 4:03:09sobrepeso y sino en este caso en el caso
  5418. 4:03:13de que todas las condiciones sean falsas
  5419. 4:03:16veamos qué ocurre si tenemos el índice
  5420. 4:03:19de masa corporal
  5421. 4:03:2032.2 no es menor que 18.5 no es menor o
  5422. 4:03:25igual a 24.9 no es menor o igual a 29.9
  5423. 4:03:30así que pasamos aquí
  5424. 4:03:33la cláusula bosque sirve como un
  5425. 4:03:35respaldo y ese es el mensaje que
  5426. 4:03:37veríamos acá
  5427. 4:03:39es que así es como se clasifica el
  5428. 4:03:43índice de masa corporal
  5429. 4:03:46genial ya sabes cómo funciona la lógica
  5430. 4:03:49de los condicionales y recuerda que solo
  5431. 4:03:52al código de la primera condición
  5432. 4:03:54verdadera es el que se ejecuta ninguna
  5433. 4:03:57de las otras condiciones se evalúa o se
  5434. 4:03:59ejecuta después de la primera que sea
  5435. 4:04:01verdadera
  5436. 4:04:03bien ya sabes cómo trabajar con
  5437. 4:04:05condicionales y con varias cláusulas
  5438. 4:04:07rousseff así que pasemos a nuestro
  5439. 4:04:10siguiente tema
  5440. 4:04:18comencemos con nuestro mini proyecto en
  5441. 4:04:21este mini proyecto va a aplicar sus
  5442. 4:04:23conocimientos de operadores de
  5443. 4:04:25comparación y de condicionales también
  5444. 4:04:28vamos a definir una función así que vas
  5445. 4:04:30a practicar varios de los conceptos que
  5446. 4:04:32hayas aprendido vemos aquí en el juego
  5447. 4:04:34de color cada hoyo tiene un par que
  5448. 4:04:37representa el número promedio de golpes
  5449. 4:04:40que se espera que haga un golfista para
  5450. 4:04:43introducir la pelota en el hoyo hay un
  5451. 4:04:45nombre diferente dependiendo de que
  5452. 4:04:48están por encima o por debajo del par
  5453. 4:04:51esté en tus golpes sea por ejemplo si el
  5454. 4:04:54par es 5 y hiciste 7 golpes si estás
  5455. 4:04:58jugando con esa diferencia esa
  5456. 4:05:01diferencia de dos golpes más comparadas
  5457. 4:05:03con el promedio tienen un nombre
  5458. 4:05:05específico en el lenguaje técnico del
  5459. 4:05:08golf vamos a implementar una función que
  5460. 4:05:10nos retorne ese nombre específico ese
  5461. 4:05:12nombre especial dependiendo de esa
  5462. 4:05:14diferencia la función tu función
  5463. 4:05:17toma tu función tomarán los argumentos
  5464. 4:05:20par y golpes
  5465. 4:05:21es el promedio de los golpes esperados y
  5466. 4:05:25golpes es el número de golpes que en
  5467. 4:05:27verdad realizaste organizó el golfista
  5468. 4:05:30que está jugando en ese hoyo específico
  5469. 4:05:33el propósito es que escribas una función
  5470. 4:05:36que retorne la cadena correcta según
  5471. 4:05:38esta tabla la que tenemos aquí abajo que
  5472. 4:05:41muestra los golpes y sus nombres en
  5473. 4:05:43orden de mayor a menor prioridad este es
  5474. 4:05:46uno de los términos más conocidos de
  5475. 4:05:48golf el hoyo en uno en inglés se llama
  5476. 4:05:50how you want vamos a mantener la
  5477. 4:05:53terminología del inglés que para este
  5478. 4:05:56ejercicio si el valor de los golpes es
  5479. 4:05:58menor o igual que palmer 2 decimos que
  5480. 4:06:01es hugo aguilar si es para menos 1 verdi
  5481. 4:06:06que es como una forma de decir pajarito
  5482. 4:06:09qué significa park par +1 boxing
  5483. 4:06:14por las dos doble bogeys
  5484. 4:06:16y es mayor o igual que palmas 3 entonces
  5485. 4:06:20go home' ve a casa esas son las cadenas
  5486. 4:06:23que debemos retornar para y golpes que
  5487. 4:06:26son los parámetros los argumentos que
  5488. 4:06:28vamos a recibir siempre serán numéricos
  5489. 4:06:30y positivos así que no tenemos que
  5490. 4:06:32preocuparnos por otro tipo de valor que
  5491. 4:06:35pudiera ser negativo otro tipo de datos
  5492. 4:06:37ya con todas estas instrucciones podemos
  5493. 4:06:39comenzar a implementar nuestra función
  5494. 4:06:41primero es la palabra clave function eso
  5495. 4:06:44es vital para definir una función y
  5496. 4:06:47vamos a llamar a la función puntaje de
  5497. 4:06:49golf dijimos que la función va a tener
  5498. 4:06:51dos parámetros par que es el número
  5499. 4:06:54promedio de golpes esperados y el número
  5500. 4:06:56de golpes ejecutados en realidad ahora
  5501. 4:06:59tenemos que usar un condicional para
  5502. 4:07:02implementar esta tabla porque
  5503. 4:07:03dependiendo de la diferencia entre los
  5504. 4:07:06golpes y por es que vamos a retornar una
  5505. 4:07:09cadena específica comenzamos a escribir
  5506. 4:07:11nuestro condicional cuál es el primer
  5507. 4:07:14caso en la primera línea de la tabla
  5508. 4:07:16vemos que es si el val de golpes es uno
  5509. 4:07:19deberíamos retornar la cadena que dice
  5510. 4:07:21hoy en 1 hole in one
  5511. 4:07:23entonces vamos a escribir esta condición
  5512. 4:07:27si golpes es igual a 1
  5513. 4:07:30entonces
  5514. 4:07:31retornamos esta cadena que tenemos aquí
  5515. 4:07:34podemos copiar y pegar los y punto y
  5516. 4:07:37coma al final de esta sentencia ritual
  5517. 4:07:40también estás practicando el concepto de
  5518. 4:07:42cómo retornar o devolver un valor de una
  5519. 4:07:45función así que ya puedes ver que este
  5520. 4:07:47proyecto va a ayudarte a repasar todos
  5521. 4:07:49estos conceptos
  5522. 4:07:51ahora tenemos varias condiciones o sea
  5523. 4:07:53que necesitamos cláusulas aún si vamos a
  5524. 4:07:56necesitar varias porque cada una de
  5525. 4:07:58estas va a ser una condición especifica
  5526. 4:08:01si el valor de los golpes es menor o
  5527. 4:08:03igual que para menos dos tenemos que
  5528. 4:08:06retornar la cadena y tenemos que
  5529. 4:08:09escribir la condición aquí entre
  5530. 4:08:11paréntesis si el número de golpes es
  5531. 4:08:13menor o igual que pagar menos 2 siempre
  5532. 4:08:17se recomienda dejar un espacio dos lados
  5533. 4:08:18del operador
  5534. 4:08:20entonces vamos a retornar una cadena que
  5535. 4:08:23diga i go esta cadena que tenemos acá la
  5536. 4:08:26copiamos y la pegamos
  5537. 4:08:28bien
  5538. 4:08:29vamos a la tercera línea si el valor de
  5539. 4:08:32golpes es igual y aquí vemos que no
  5540. 4:08:35tenemos un operador de comparación lo
  5541. 4:08:37que tenemos es que si los golpes es
  5542. 4:08:39igual a favor menos uno entonces
  5543. 4:08:42retornábamos verdi vamos a implementar
  5544. 4:08:45estos y golpes es igual a pagar menos
  5545. 4:08:47uno retornamos la cadena birding puedes
  5546. 4:08:52ver que estamos usando este operador que
  5547. 4:08:54compara si son iguales o no bien ahora
  5548. 4:08:58vamos comparar si el número de golpes es
  5549. 4:09:01igual a parc que es el número promedio
  5550. 4:09:03esperado retornamos la cadena para el
  5551. 4:09:06shift golpes es igual a la por entonces
  5552. 4:09:09retornamos la cadena que diga pagar y
  5553. 4:09:12nos faltan estas tres condiciones que
  5554. 4:09:14tenemos aquí si golpes es igual a pagar
  5555. 4:09:17más uno tenemos bueno tenemos aquí
  5556. 4:09:20entonces decimos si el número de golpes
  5557. 4:09:22es igual a par más uno vamos a retornar
  5558. 4:09:27la cadena que diga bowie ya lo tenemos
  5559. 4:09:29aquí
  5560. 4:09:30bowie como podemos copiar y pegar las
  5561. 4:09:33implementamos las próximas dos
  5562. 4:09:35condiciones ahora vamos a ver qué ocurre
  5563. 4:09:38si el número de golpes es igual a
  5564. 4:09:40formados o si es mayor o igual que parma
  5565. 4:09:43es 3 si es igual a x + 2 tenemos que
  5566. 4:09:46retornar doble bogey
  5567. 4:09:49vamos a hacer esto
  5568. 4:09:51en este caso retornamos doble bogey y
  5569. 4:09:54finalmente aquí tenemos nuestra última
  5570. 4:09:56condición si el número de golpes es
  5571. 4:10:00mayor o igual que pagar más 3 entonces
  5572. 4:10:03go home' ve a casa en este caso no vamos
  5573. 4:10:06a usar una cláusula eus que maneje
  5574. 4:10:09cualquier otro tipo de casos sino que
  5575. 4:10:11queremos que ocurra eso solamente si el
  5576. 4:10:14número es mayor o igual que pagar más 3
  5577. 4:10:17ok cápsula en 11 esa cláusula ocurre por
  5578. 4:10:21defecto para cualquier otro caso posible
  5579. 4:10:23para asegurarnos de que el código haga
  5580. 4:10:25exactamente lo que queremos vamos a
  5581. 4:10:27escribir explícitamente la clausura el
  5582. 4:10:29cif con su condición si golpes es mayor
  5583. 4:10:33o igual que pagar más 3
  5584. 4:10:36entonces tenemos que retornar go home y
  5585. 4:10:40aquí lo tenemos genial ya tenemos
  5586. 4:10:42nuestra función puntaje de golf
  5587. 4:10:44implementada toma un par que es el
  5588. 4:10:47número promedio de golpes esperados y el
  5589. 4:10:51número de golpes que se ejecutaron para
  5590. 4:10:53ese hoy aquí tenemos nuestro condicional
  5591. 4:10:56con muchas muchas cláusulas el cef una
  5592. 4:10:59para cada condición que queremos
  5593. 4:11:01verificar y nota que estamos escribiendo
  5594. 4:11:03las en un orden específico en el orden
  5595. 4:11:07en el que se nos presentaron en las
  5596. 4:11:08tablas pero es muy importante que
  5597. 4:11:11analices bien el orden de las
  5598. 4:11:13condiciones porque solo la primera que
  5599. 4:11:16sea verdadera es la que se va a ejecutar
  5600. 4:11:18en nuestra función vamos a llamarla con
  5601. 4:11:21distintos valores para pagar y para
  5602. 4:11:23golpes vamos a llamar a la función con
  5603. 4:11:26un valor par de 4 y digamos que hicimos
  5604. 4:11:31un hoyo en uno o sea que el valor de
  5605. 4:11:33golpes va a ser 1 como estamos
  5606. 4:11:35retornando el valor podemos asignarle
  5607. 4:11:38una variedad o podemos mostrarlo en la
  5608. 4:11:41consola y podemos ver hole in one hoyo
  5609. 4:11:44en uno aquí esta condición fue verdadera
  5610. 4:11:47y retornamos esta cadena
  5611. 4:11:50ahora si cambiamos este valor a 2 ahora
  5612. 4:11:53vemos ido porque el valor de poder era 4
  5613. 4:11:57y el valor de golpes era 2 o sea que
  5614. 4:12:01esta condición es verdadera
  5615. 4:12:044 - 2 es 2 y si es menor 2 es menor o
  5616. 4:12:07igual que 2 así que esta condición es la
  5617. 4:12:10verdadera y vemos y 2
  5618. 4:12:12si no vamos a ver qué ocurre si el valor
  5619. 4:12:15es 3 si el valor es 3 estamos en este
  5620. 4:12:19caso estamos en este caso el número de
  5621. 4:12:22golpes es igual a pagar al menos 1 marc
  5622. 4:12:25era 44 menos uno es 3 y el valor de
  5623. 4:12:28golpe será 3 así que aquí tenemos a
  5624. 4:12:31berlín luego también podemos probar con
  5625. 4:12:334 y 4 el resultado es poder porque el
  5626. 4:12:36valor de los golpes es igual al de para
  5627. 4:12:39estas condiciones eran falsas falsa
  5628. 4:12:42falsa y llegamos hasta acá
  5629. 4:12:44vemos el número de golpes que es igual a
  5630. 4:12:47par y retornamos esta cadena luego vamos
  5631. 4:12:51a ver estas tres condiciones
  5632. 4:12:53si el paro era cuatro hicimos cinco
  5633. 4:12:56golpes tenemos un poco este que tenemos
  5634. 4:13:00acá algún número de golpes es igual el
  5635. 4:13:03número de armas uno si hicimos seis
  5636. 4:13:05golpes tenemos un doble bogey el número
  5637. 4:13:07de golpes es igual al par dos cuatro y
  5638. 4:13:11seis y si hacemos siete golpes o más
  5639. 4:13:15tenemos go home
  5640. 4:13:17aquí tenemos go home' porque el número
  5641. 4:13:19de golpes fue siete y eso es mayor o
  5642. 4:13:22igual que cuatro más atrás y también se
  5643. 4:13:24hicimos por ejemplo 15 golpes esta
  5644. 4:13:26condición va a seguir siendo cierta
  5645. 4:13:28porque estamos usando el operador de
  5646. 4:13:30comparación mayor o igual que
  5647. 4:13:34número de golpes es mayor que el pagar
  5648. 4:13:37más 3 por eso tenemos con genial ya
  5649. 4:13:40implementamos este mini proyecto y
  5650. 4:13:43prácticas de los conceptos que has
  5651. 4:13:44estado aprendiendo usamos los conceptos
  5652. 4:13:46de parámetros argumentos usamos también
  5653. 4:13:50un condicional de aquí con varias
  5654. 4:13:52cláusulas joseph los operadores de
  5655. 4:13:55comparación y también estamos trabajando
  5656. 4:13:57indirectamente con los valores julián o
  5657. 4:13:59verdadero y falso además también a
  5658. 4:14:01práctica esto y como retornar valores
  5659. 4:14:03desde una función y también es
  5660. 4:14:06importante también que notes aquí que
  5661. 4:14:07como estamos retornando un valor también
  5662. 4:14:09la función se detiene inmediatamente
  5663. 4:14:12luego de que el valor es retornado
  5664. 4:14:15continuemos con nuestro siguiente tema
  5665. 4:14:17hay bastante que aprender de javascript
  5666. 4:14:19pero ya no más en este mundo de
  5667. 4:14:20programación y ya has aprendido muchas
  5668. 4:14:23cosas que son esenciales para programar
  5669. 4:14:25y que vas a usar seguramente en tus
  5670. 4:14:27proyectos de programación lo hacemos a
  5671. 4:14:29nuestro siguiente tema
  5672. 4:14:36espero que te haya gustado este mini
  5673. 4:14:37proyecto del coro ahora vamos a ver otra
  5674. 4:14:41estructura que va a ser muy útil para
  5675. 4:14:43programar en chabás que en cierta forma
  5676. 4:14:45la forma de reemplazar los condicionales
  5677. 4:14:48en ya busquets vamos a definir una
  5678. 4:14:51función que va a clasificar un valor
  5679. 4:14:54nuevamente
  5680. 4:14:54igual como teníamos esa función con el
  5681. 4:14:57condicional que la escribimos para
  5682. 4:14:59clasificar un valor y teníamos un
  5683. 4:15:01condicional dentro de la función que es
  5684. 4:15:04lo que vamos a hacer en este caso el
  5685. 4:15:06valor va a ser un número entre 1 y 4 va
  5686. 4:15:09a ser uno dos tres o cuatro y cada uno
  5687. 4:15:11de esos números esos valores van a estar
  5688. 4:15:14asociados a una cadena específica una
  5689. 4:15:17cadena de caracteres la función va a
  5690. 4:15:19retornar esa clasificación
  5691. 4:15:21esa cadena a partir del número en lugar
  5692. 4:15:24de usar un condicional vamos a usar lo
  5693. 4:15:26que se llama una sentencia switch esta
  5694. 4:15:29sentencia switch nos va a permitir
  5695. 4:15:30escribir código que es muy similar al de
  5696. 4:15:33un condicional pero switch nos permite a
  5697. 4:15:37partir de una expresión o de un valor
  5698. 4:15:40decidir qué va a pasar en base a ese
  5699. 4:15:42valor solo ese valor o solo el resultado
  5700. 4:15:45de esta expresión que tenemos aquí entre
  5701. 4:15:47paréntesis escribimos la palabra clave
  5702. 4:15:49switch y entre paréntesis el valor que
  5703. 4:15:53queremos usar dentro de esta estructura
  5704. 4:15:55en este caso queremos clasificar el
  5705. 4:15:57valor que recibimos como argumento como
  5706. 4:16:01parámetro
  5707. 4:16:02entonces dentro de las llaves vamos a
  5708. 4:16:05escribir esto
  5709. 4:16:06si el valor es igual a 1 que es lo que
  5710. 4:16:10va a ocurrir vamos a asignar la cadena
  5711. 4:16:13alfa a la variable respuesta
  5712. 4:16:19y luego salimos de la sentencia switch
  5713. 4:16:22la sentencia suite funciona así nosotros
  5714. 4:16:25definimos casos específicos para el
  5715. 4:16:28valor de esta variable o de esta
  5716. 4:16:30expresión si ese valor es igual a este
  5717. 4:16:34valor que nosotros escribimos aquí
  5718. 4:16:35después de la palabra clave case
  5719. 4:16:37entonces este código se ejecuta y
  5720. 4:16:41siempre es importante determinar cada
  5721. 4:16:42caso cada posibilidad con una sentencia
  5722. 4:16:46break ya vas a ver por qué tenemos aquí
  5723. 4:16:49un segundo caso una segunda posibilidad
  5724. 4:16:51si el valor de la variable es 2 entonces
  5725. 4:16:56la respuesta va a ser beta y escribimos
  5726. 4:16:59break cualquier final con un punto y
  5727. 4:17:01coma también nuevo de la palabra break
  5728. 4:17:03el tercer caso es que el valor sea 3 en
  5729. 4:17:07ese caso le asignamos la cadena de
  5730. 4:17:10caracteres gamma
  5731. 4:17:12y el cuarto caso es que el valor sea 4 y
  5732. 4:17:15en ese caso le asignamos el valor del
  5733. 4:17:17está ok ya tenemos todos nuestros casos
  5734. 4:17:21aquí planteados si el valor de esta
  5735. 4:17:24variable es 1 esto va a ocurrir si el
  5736. 4:17:27valor de estas variables es 2 esto va a
  5737. 4:17:29ocurrir si el valor de esta variable es
  5738. 4:17:313 esto va a ocurrir y si el valor de
  5739. 4:17:34esta variable es 4 esto va a ocurrir es
  5740. 4:17:37como un condicional pero un poco más
  5741. 4:17:39específico porque nos permite decidir
  5742. 4:17:42qué es lo que va a ocurrir solo en base
  5743. 4:17:44al valor que tenemos aquí entre
  5744. 4:17:46paréntesis no estamos escribiendo
  5745. 4:17:48condiciones con operadores de
  5746. 4:17:50comparación ni estamos usando operadores
  5747. 4:17:52lógicos solamente estamos escribiendo
  5748. 4:17:54aquí un valor y en base a ese valor
  5749. 4:17:56vamos a ejecutar un bloque de código
  5750. 4:17:59específico estas sentencias break que
  5751. 4:18:01puedes ver aquí lo que hacen es detener
  5752. 4:18:04el proceso de ejecución de esta
  5753. 4:18:06estructura cuando el caso sea correcto
  5754. 4:18:10sea verdadero y este es el valor de la
  5755. 4:18:12variable este código se va a ejecutar y
  5756. 4:18:15cuando se llegue a esta línea de break
  5757. 4:18:18todo lo demás se va a ignorar sino que
  5758. 4:18:21simplemente esta estructura se va a
  5759. 4:18:23terminar y seguimos nuestra ejecución
  5760. 4:18:25aquí abajo fuera de las llaves ese es el
  5761. 4:18:29rol de 'break' y por eso es importante
  5762. 4:18:32ponerlo al final de cada caso para que
  5763. 4:18:33no se continúe ejecutando otros posibles
  5764. 4:18:36casos más abajo pero puedes ver que la
  5765. 4:18:39sintaxis ya es más concisa que la de un
  5766. 4:18:41condicional para este caso específico y
  5767. 4:18:44finalmente vamos a retornar el valor
  5768. 4:18:46respuesta
  5769. 4:18:48porque estamos poniendo esta línea luego
  5770. 4:18:51de las llaves porque no es parte del
  5771. 4:18:54switch la sentencia switch sólo nos
  5772. 4:18:57permite en este caso seleccionar el
  5773. 4:18:59valor de la variable respuesta y luego
  5774. 4:19:02que se haya seleccionado ese valor se
  5775. 4:19:04interrumpe inmediatamente su ejecución y
  5776. 4:19:07se pasa a este línea donde retornamos el
  5777. 4:19:11valor de la respuesta genial vamos a
  5778. 4:19:14llamar a esta función clasificar valor y
  5779. 4:19:18vamos a pasar cada una de esas
  5780. 4:19:19alternativas del 1 hasta el 4
  5781. 4:19:23clasifica el valor como estamos
  5782. 4:19:25retornando el valor tenemos que
  5783. 4:19:27mostrarlo en la consola o también lo
  5784. 4:19:29podemos asignar una variable
  5785. 4:19:31tenemos clasificar valor de uno retorna
  5786. 4:19:34el valor alfa porque el valor que
  5787. 4:19:37pasamos como argumento es uno aquí el
  5788. 4:19:40caso 1 se cumple el valor es 1 se asigna
  5789. 4:19:45el valor alfa a la variable respuesta
  5790. 4:19:47luego se consigue esta sentencia aquí
  5791. 4:19:50break
  5792. 4:19:51inmediatamente pasamos a esta línea
  5793. 4:19:53donde se retorna el valor ahora veamos
  5794. 4:19:56si actualizamos el valor a 2
  5795. 4:19:59tenemos el valor beta porque porque el
  5796. 4:20:02caso 2 fue verdadero aquí escribiríamos
  5797. 4:20:05el valor de la variable si el valor es 2
  5798. 4:20:08el valor de respuesta es beta
  5799. 4:20:10conseguimos la sentencia prime y vamos
  5800. 4:20:13aquí a richard si el valor es 3
  5801. 4:20:16ahora tenemos gamma porque el caso fue
  5802. 4:20:18que el valor era 3
  5803. 4:20:20ahora el valor de respuesta y gamma
  5804. 4:20:23conseguimos el break aquí y saltamos a
  5805. 4:20:25esta línea fuera de la sentencia switch
  5806. 4:20:27y retornamos el valor y finalmente aquí
  5807. 4:20:30tenemos el cuarto valor la cuarta opción
  5808. 4:20:32el valor 4 y nos retorna la cadena de
  5809. 4:20:36caracteres de alto luego salimos de
  5810. 4:20:38switch y aquí podemos retornar el valor
  5811. 4:20:41bien veamos otro ejemplo pero esta vez
  5812. 4:20:44vamos a usar switch con una cadena de
  5813. 4:20:46caracteres para que veas que esos
  5814. 4:20:49números 1 2 3 y 4 no son necesariamente
  5815. 4:20:52un número si nosotros definimos una
  5816. 4:20:55variable producto y decimos que su valor
  5817. 4:20:58va a ser hamburguesa necesitamos una
  5818. 4:21:00tienda de comida rápida y servimos pizza
  5819. 4:21:03hamburguesa y helado estamos diseñando
  5820. 4:21:06una aplicación para esa tienda son tres
  5821. 4:21:09productos posibles que puede pedir el
  5822. 4:21:11cliente entonces para eso si tenemos un
  5823. 4:21:15número específico de opciones para esta
  5824. 4:21:18variable que es producto
  5825. 4:21:20entonces podemos usar una sentencia
  5826. 4:21:22switch entre paréntesis escribiríamos la
  5827. 4:21:26variable que queremos evaluar o la
  5828. 4:21:28expresión y dentro de switch entre las
  5829. 4:21:31llaves vamos a empezar a escribir los
  5830. 4:21:33casos cuál es el primer caso que puede
  5831. 4:21:36ocurrir puede ser que el valor sea pixar
  5832. 4:21:39si el valor de la variable es picks
  5833. 4:21:42entonces qué queremos hacer queremos
  5834. 4:21:44mostrar en el sistema cuánto cuesta la
  5835. 4:21:46pizza la pizza básica cuesta y digamos
  5836. 4:21:50que cuesta 10 dólares con 55
  5837. 4:21:54bien al final luego de esta línea
  5838. 4:21:56escribimos un break
  5839. 4:21:58con punto y coma ahora si ese no era el
  5840. 4:22:01caso y el valor del producto no es igual
  5841. 4:22:05a pixar entonces vamos a nuestro segundo
  5842. 4:22:07caso
  5843. 4:22:09si el valor es hamburguesa
  5844. 4:22:11mostramos este mensaje las hamburguesas
  5845. 4:22:15cuestan 6 dólares con 78
  5846. 4:22:20y escribimos
  5847. 4:22:23y luego aquí tenemos helado ofrecemos
  5848. 4:22:27una opción de postre el helado cuesta
  5849. 4:22:30dos dólares con 80 y aquí escribimos
  5850. 4:22:33break bien ya tenemos nuestra sentencia
  5851. 4:22:37switch para las tres posibles opciones
  5852. 4:22:39de la variable producto
  5853. 4:22:41pizza hamburguesa y helado también
  5854. 4:22:44podemos escribir esta sentencia switch
  5855. 4:22:47dentro de una función como lo hemos
  5856. 4:22:49venido haciendo en los ejemplos
  5857. 4:22:51anteriores
  5858. 4:22:52entonces en este caso como la el valor
  5859. 4:22:55del producto es hamburguesa veamos que
  5860. 4:22:57se ve en la consola
  5861. 4:22:59las hamburguesas cuestan 678
  5862. 4:23:03este es el caso este es el valor de la
  5863. 4:23:05variable producto actualmente así que
  5864. 4:23:08este código se ejecuta y luego como
  5865. 4:23:11tenemos estas sentencias break no se
  5866. 4:23:13evalúa ningún otro caso sino que
  5867. 4:23:15simplemente pasamos a las líneas que
  5868. 4:23:17vienen después de switch que en este
  5869. 4:23:19caso no hay ninguna otra línea de código
  5870. 4:23:22pero para comprobar que es el caso vamos
  5871. 4:23:25a escribir aquí luego de switch
  5872. 4:23:29aquí puedes verlo se muestra este
  5873. 4:23:32mensaje de las hamburguesas cuestan 6.78
  5874. 4:23:34y luego como conseguimos esto sentencia
  5875. 4:23:37price saltamos todo el código que sigue
  5876. 4:23:40y saltamos fuera de switch para
  5877. 4:23:42conseguir esta primera línea luego de
  5878. 4:23:44switch si cambiamos el valor de esta
  5879. 4:23:47variable va a cambiar el resultado
  5880. 4:23:49la pizza básica cuesta 10 dólares con 55
  5881. 4:23:53porque ahora el valor de la variable
  5882. 4:23:55producto es pixar y finalmente podemos
  5883. 4:23:58probar el lado en el lado cuesta 2.8 así
  5884. 4:24:02es básicamente cómo funcionan las
  5885. 4:24:04sentencias switch son muy útiles para
  5886. 4:24:07escribir condicionales cuando tenemos un
  5887. 4:24:09número finito específico de opciones que
  5888. 4:24:12queremos evaluar también podemos agregar
  5889. 4:24:15una opción predeterminada a la sentencia
  5890. 4:24:18switch que es el equivalente en la
  5891. 4:24:20sentencia switch de una cláusula euros
  5892. 4:24:22en un condicional sirve como un respaldo
  5893. 4:24:24vas a ver cómo lo podemos hacer en el
  5894. 4:24:27próximo tema así que te espero aquí
  5895. 4:24:35también puedes agregar una opción
  5896. 4:24:37predeterminada a la sentencia switch
  5897. 4:24:40veamos cómo puedes hacerlo
  5898. 4:24:42esta opción se va a ejecutarse sin
  5899. 4:24:44ninguno de los valores es el valor de la
  5900. 4:24:46variable o de la expresión comencemos el
  5901. 4:24:48ejemplo definiendo una función esta
  5902. 4:24:51función va a seleccionar el idioma que
  5903. 4:24:53corresponda a un valor específico entre
  5904. 4:24:561 y 3 y vamos a tener una opción
  5905. 4:25:00predeterminada para el idioma en caso de
  5906. 4:25:03que ninguno de los valores concuerde con
  5907. 4:25:05el valor de la variable
  5908. 4:25:07vamos a definir una variable idioma a la
  5909. 4:25:10cual le vamos a asignar el valor del
  5910. 4:25:12idioma dentro de la sentencia switch
  5911. 4:25:14como una cadena aquí
  5912. 4:25:17estamos escribiendo switch y entre
  5913. 4:25:19paréntesis vamos a colocar la variable
  5914. 4:25:22valor el valor de esa variable va a
  5915. 4:25:25decidir qué es lo que ocurre tenemos
  5916. 4:25:27aquí el caso de que el valor de esta
  5917. 4:25:30variable sea 1 si ese es el caso
  5918. 4:25:33entonces el hilo digamos que es español
  5919. 4:25:36en caso de que el valor sea 2 entonces
  5920. 4:25:39vamos a tener el idioma francés
  5921. 4:25:43y agregamos break en el tercer caso
  5922. 4:25:46vemos aquí el idioma italiano luego
  5923. 4:25:50break y aquí es donde viene la parte
  5924. 4:25:52nueva puedes agregar una opción
  5925. 4:25:55predeterminada para esta sentencia
  5926. 4:25:57switch como lo hacemos con la palabra
  5927. 4:26:00clave default default literalmente
  5928. 4:26:03podríamos traducir la español como por
  5929. 4:26:05defecto es una opción que se ejecuta por
  5930. 4:26:09defecto sin ninguno de estos valores es
  5931. 4:26:11el valor de la variable
  5932. 4:26:13como el equivalente a la cláusula aus es
  5933. 4:26:16un respaldo sin ninguna de las
  5934. 4:26:18anteriores
  5935. 4:26:19concuerdo por defecto vamos a colocar el
  5936. 4:26:22idioma inglés va a ser la opción
  5937. 4:26:25predeterminada en caso de que el valor
  5938. 4:26:27no sea ni uno ni dos ni tres y también
  5939. 4:26:29se recomienda que al final de default
  5940. 4:26:31también coloquemos una sentencia en
  5941. 4:26:33break porque no es que no necesariamente
  5942. 4:26:35disponte tiene que ser la última opción
  5943. 4:26:38en esta secuencia
  5944. 4:26:39normalmente es la última por convención
  5945. 4:26:42como sirve como un respaldo normalmente
  5946. 4:26:45la escribimos al final pero no
  5947. 4:26:46necesariamente técnicamente tiene que
  5948. 4:26:49ser así así que igual se recomienda
  5949. 4:26:51colocar aquí un break aunque esté al
  5950. 4:26:53final
  5951. 4:26:55y luego qué vamos a hacer vamos a
  5952. 4:26:57retornar el valor de la variable idioma
  5953. 4:26:59vamos a mostrar el valor retornado por
  5954. 4:27:03la función con con su logo y vamos a
  5955. 4:27:06llamar a la función vamos a copiar y
  5956. 4:27:09pegar aquí el nombre de la función
  5957. 4:27:10seleccionar idioma y aquí vemos que
  5958. 4:27:13tenemos que pasar el valor que
  5959. 4:27:15corresponde al parámetro el argumento
  5960. 4:27:18vamos a pasar el valor 1 si abrimos la
  5961. 4:27:21consola podemos ver aquí el idioma
  5962. 4:27:24español retornado porque porque pasamos
  5963. 4:27:27el valor 1 para este parámetro este fue
  5964. 4:27:30el caso para switch y asignamos la
  5965. 4:27:33cadena de caracteres en español a la
  5966. 4:27:36variable idioma luego conseguimos break
  5967. 4:27:38y pasamos aquí a richard para retornar
  5968. 4:27:41el valor si probamos con el valor 2
  5969. 4:27:44ahora vemos francés
  5970. 4:27:46si probamos con el valor 3 vemos
  5971. 4:27:49italiano
  5972. 4:27:51y ahora vamos a probar nuestra opción
  5973. 4:27:54por defecto default vamos a pasar otro
  5974. 4:27:57valor digamos 4 aquí podemos ver que el
  5975. 4:28:00valor retornado fue inglés porque porque
  5976. 4:28:04ninguno de estos valores era el valor de
  5977. 4:28:08la variable valor aquí ninguno de estos
  5978. 4:28:10números en el valor de la variable era 4
  5979. 4:28:14así que por defecto como no se consiguió
  5980. 4:28:16el valor específico ejecutamos este
  5981. 4:28:19código y el idioma es inglés así es como
  5982. 4:28:22funciona la opción default en la
  5983. 4:28:25sentencia switch es muy útil porque nos
  5984. 4:28:27permite manejar cualquier otro tipo de
  5985. 4:28:29caso o de valor para esta variable o
  5986. 4:28:32expresión bien ya sabes cómo trabajar
  5987. 4:28:35cómo trabajar con la sentencia switch
  5988. 4:28:37también otra variación de esta sentencia
  5989. 4:28:39de la sentencia switch es realizar el
  5990. 4:28:42mismo procedimiento ejecutar el mismo
  5991. 4:28:45código para varios casos por ejemplo
  5992. 4:28:48digamos que si el código es 2 o 3
  5993. 4:28:50queremos hacer exactamente lo mismo eso
  5994. 4:28:53es posible y vas a aprender cómo lo
  5995. 4:28:55puedes hacer en la próxima parte
  5996. 4:29:03en la sentencia switch también podemos
  5997. 4:29:06escoger ejecutar un código específico
  5998. 4:29:08para varios valores veamos como podemos
  5999. 4:29:12hacer esto vamos a definir una función
  6000. 4:29:15que se va a llamar clasificar volumen
  6001. 4:29:18vamos a tener números entre 1 y 6 que
  6002. 4:29:22van a representar la intensidad del
  6003. 4:29:24volumen en un dispositivo
  6004. 4:29:27el parámetro se va a llamar valor el
  6005. 4:29:29valor que va a representar el volumen
  6006. 4:29:31ese volumen va a ser una cadena de
  6007. 4:29:33caracteres que debe de escribir la
  6008. 4:29:36intensidad del volumen puede ser bajo
  6009. 4:29:38intermedio o alto para eso para asignar
  6010. 4:29:41ese valor tenemos una sentencia switch
  6011. 4:29:44esa sentencia switch va a depender del
  6012. 4:29:47valor del parámetro el valor o el
  6013. 4:29:49argumento que pasamos a la función si el
  6014. 4:29:53valor es 1 digamos que queremos asignar
  6015. 4:29:56un volumen bajo y aquí tendríamos break
  6016. 4:30:00al final del caso como se recomienda
  6017. 4:30:02pero si también nosotros queremos
  6018. 4:30:04asignar el volumen intermedio cuando el
  6019. 4:30:08valor que tenemos aquí es 2 o estrés o
  6020. 4:30:13sea 2 valores pueden realizar la misma
  6021. 4:30:15acción como lo podemos escribir
  6022. 4:30:17escribimos si el valor es 2 o si el
  6023. 4:30:21valor es 3 así simplemente escribimos
  6024. 4:30:25cada uno de los posibles casos y qué
  6025. 4:30:27queremos hacer si ese caso es verdadero
  6026. 4:30:30por ejemplo si el valor es 2 si el valor
  6027. 4:30:33es 3 que queremos hacer queremos asignar
  6028. 4:30:35el volumen
  6029. 4:30:36intermedio a la variable ejecutamos esta
  6030. 4:30:40línea y luego salimos de la sentencia
  6031. 4:30:43switch con break también podemos tener
  6032. 4:30:45más de 2 casos manejados de la misma
  6033. 4:30:48forma por ejemplo si los números 4 5 y 6
  6034. 4:30:53representan un volumen alto
  6035. 4:30:56lo escribiríamos de esta forma 4 5 y 6
  6036. 4:31:00siempre con la palabra que dice adelante
  6037. 4:31:02y 2 puntos al final luego intentado
  6038. 4:31:06podemos escribir
  6039. 4:31:07el código que queremos ejecutar seguido
  6040. 4:31:10de break
  6041. 4:31:12y aquí retornamos el valor volumen y ya
  6042. 4:31:17tenemos nuestra función para clasificar
  6043. 4:31:19el volumen con una sentencia switch aquí
  6044. 4:31:23tenemos un solo caso y aquí tenemos dos
  6045. 4:31:25casos y qué queremos hacer si el valor
  6046. 4:31:28es cualquiera de estos valores y aquí
  6047. 4:31:30tenemos tres casos que se manejan de la
  6048. 4:31:33misma forma ya vemos a la función
  6049. 4:31:36clasificar volumen con un valor
  6050. 4:31:39específico probemos con uno primero pero
  6051. 4:31:42tenemos que
  6052. 4:31:44mostrar el valor retornado con con su
  6053. 4:31:47punto lo que aquí vemos que el volumen
  6054. 4:31:50es bajo porque el valor fue 1 el valor
  6055. 4:31:53era 1 ahora si el valor es 2 o estrés el
  6056. 4:31:56volumen debería ser intermedio si
  6057. 4:31:58cambiamos estos dos efectivamente vemos
  6058. 4:32:00intermedio el valor retornado
  6059. 4:32:04y si lo cambiamos a 3 también debemos el
  6060. 4:32:07valor intermedio si el valor es 45 o
  6061. 4:32:10seis el volumen debería ser alto 4 5 y 6
  6062. 4:32:16el valor se mantiene para todos estos
  6063. 4:32:19casos así que ya sabes cómo definir o
  6064. 4:32:22cómo escribir una sentencia switch
  6065. 4:32:24completamente ya sabes cómo escribir sus
  6066. 4:32:27casos cómo manejar varios casos de la
  6067. 4:32:29misma forma y cómo agregar un caso que
  6068. 4:32:31se ejecute por defecto sin ninguna de
  6069. 4:32:34las opciones es el valor de esta
  6070. 4:32:36variable o expresión en el próximo tema
  6071. 4:32:39vamos a ver un ejemplo de cómo puedes
  6072. 4:32:41reemplazar
  6073. 4:32:42condicionales por switch así que pasemos
  6074. 4:32:46a nuestro siguiente tema eso es
  6075. 4:32:47interesante porque vas a ver la
  6076. 4:32:49equivalencia entre los condicionales y
  6077. 4:32:51las sentencias switch
  6078. 4:32:57en ciertos casos podemos reemplazar
  6079. 4:33:00condicionales con sentencias switch por
  6080. 4:33:04ejemplo en este caso tenemos una función
  6081. 4:33:06selecciona el idioma que toma un valor 1
  6082. 4:33:092 3 o si el valor es cualquier otro
  6083. 4:33:13número asigna el idioma por defecto
  6084. 4:33:16inglés y luego retorna ese idioma
  6085. 4:33:18retorna el valor de la variable idioma
  6086. 4:33:21que declaramos aquí pero qué es lo que
  6087. 4:33:23ocurre nosotros podemos
  6088. 4:33:25reemplazar este condicional con una
  6089. 4:33:28sentencia switch porque como puedes ver
  6090. 4:33:30estamos verificando casos específicos
  6091. 4:33:33relacionados con el valor de esta
  6092. 4:33:35variable si el valor es igual a 1
  6093. 4:33:37entonces esto ocurre si el valor es
  6094. 4:33:40igual a 2 esto ocurre si el valor es
  6095. 4:33:42igual a 3 esto ocurre y si el valor no
  6096. 4:33:45es ninguna de esas opciones entonces
  6097. 4:33:47aquí tenemos la opción por defecto ya
  6098. 4:33:50que te suena eso debería sonar te muy
  6099. 4:33:53familiar porque es exactamente lo que
  6100. 4:33:55podemos hacer con una sentencia switch
  6101. 4:33:58veamos cómo podemos adaptar este código
  6102. 4:34:00para trabajar con una sentencia switch
  6103. 4:34:03escribimos la palabra clave switch y
  6104. 4:34:06luego escribimos el nombre de la
  6105. 4:34:08variable que queremos analizar o evaluar
  6106. 4:34:12vamos a ir tomando los elementos del
  6107. 4:34:14condicional que necesitamos para switch
  6108. 4:34:16y eliminando los que no necesitamos para
  6109. 4:34:19que veas esta transformación
  6110. 4:34:21necesitamos una llave aquí para abrir
  6111. 4:34:23las sentencias switch para abrir toda
  6112. 4:34:25esa secuencia de casos ahora no
  6113. 4:34:28necesitamos la palabra clave y ni el
  6114. 4:34:30valor aquí en esta condición porque ya
  6115. 4:34:33estamos verificando automáticamente si
  6116. 4:34:35el valor es este que tenemos aquí lo que
  6117. 4:34:39tenemos que escribir es case
  6118. 4:34:42borramos esta llave
  6119. 4:34:45intentamos de forma consistente con dos
  6120. 4:34:48espacios y aquí ya tenemos nuestro
  6121. 4:34:51primer caso para la sentencia switch en
  6122. 4:34:54lugar de tener una condición que compara
  6123. 4:34:56si el valor es igual a 1
  6124. 4:34:58simplemente escribimos case 1 y si el
  6125. 4:35:00valor es igual a 1 entonces vamos a
  6126. 4:35:02ejecutar este código tenemos que añadir
  6127. 4:35:04aquí la sentencia break ahora para el
  6128. 4:35:07segundo caso no necesitamos esta
  6129. 4:35:10cláusula usted ni la comparación del
  6130. 4:35:13valor con 2 lo que escribimos skates 2 y
  6131. 4:35:18luego intentamos este código y
  6132. 4:35:21escribimos break ya tenemos nuestro
  6133. 4:35:24segundo caso vamos a hacer exactamente
  6134. 4:35:26lo mismo con el tercer caso intentamos
  6135. 4:35:30el código para ese caso y agregamos
  6136. 4:35:31break aquí
  6137. 4:35:33finalmente para reemplazar la cláusula r
  6138. 4:35:37que nos permite realizar una acción o
  6139. 4:35:40ejecutar un código por defecto sin
  6140. 4:35:42ninguno de estos casos es el que ocurre
  6141. 4:35:46si el valor no es ninguno de estos
  6142. 4:35:48valores
  6143. 4:35:49entonces tenemos que usar default aquí
  6144. 4:35:53en lugar de caso
  6145. 4:35:54aus su equivalente podríamos decirlo así
  6146. 4:35:58en la sentencia switch sería default en
  6147. 4:36:01ese caso especificamos qué es lo que
  6148. 4:36:03queremos que ocurra por defecto sin
  6149. 4:36:05ninguno de estos valores es el valor de
  6150. 4:36:08esta variable también podemos
  6151. 4:36:10opcionalmente incluir break aquí al
  6152. 4:36:12final de default y finalmente yo
  6153. 4:36:15simplemente retornamos el valor de la
  6154. 4:36:17variable esto se mantiene intacto y como
  6155. 4:36:20puedes ver ya transformamos el
  6156. 4:36:22condicional en una sentencia switch así
  6157. 4:36:25que ya sabes cuando en un condicional
  6158. 4:36:28estamos verificando si el valor de una
  6159. 4:36:31variable una expresión es igual a otro
  6160. 4:36:33valor podemos simplemente reemplazarlo
  6161. 4:36:36con switch y agregar un valor por
  6162. 4:36:39defecto o una acción que se va a
  6163. 4:36:40ejecutar por defecto con default genial
  6164. 4:36:43pasemos a nuestro siguiente tema
  6165. 4:36:52ahora que ya sabes cómo funciona en la
  6166. 4:36:54sentencia switch en javascript y por qué
  6167. 4:36:56son muy útiles vamos a cambiar el tema
  6168. 4:36:59un poquito y vamos a ver cómo puedes
  6169. 4:37:02retornar de forma muy concisa valores
  6170. 4:37:05julianos verdadero o falso truco faus
  6171. 4:37:08desde una función veamos este ejemplo
  6172. 4:37:11definimos una función que se va a llamar
  6173. 4:37:13es menor que esta función va a comparar
  6174. 4:37:16dos valores a y b son los parámetros que
  6175. 4:37:20vamos a definir para esos valores y
  6176. 4:37:23vamos a comprobar si es menor que ver
  6177. 4:37:25estrictamente menor que ver si es menor
  6178. 4:37:29que b entonces vamos a retornar su
  6179. 4:37:31verdadero y si no vamos a retornar falso
  6180. 4:37:34faus inicialmente lo podríamos hacer con
  6181. 4:37:37un condicional similar a éste cristancho
  6182. 4:37:41y si no return false
  6183. 4:37:44lo que estamos diciendo es si es
  6184. 4:37:46estrictamente menor que ve entonces
  6185. 4:37:49retornamos el valor se nota que aquí
  6186. 4:37:52estamos usando los valores julianas
  6187. 4:37:54porque están escritos completamente en
  6188. 4:37:56minúscula y se resaltan en un color
  6189. 4:37:58distinto si no o si no es estrictamente
  6190. 4:38:01menor que b vamos a ellos y retornamos
  6191. 4:38:05false esto funciona funcionalmente va a
  6192. 4:38:08cumplir su propósito pero hay una forma
  6193. 4:38:11más concisa de escribirlo mucho más
  6194. 4:38:14concisa que va a resultar en una sola
  6195. 4:38:16línea lo que nosotros podemos hacer en
  6196. 4:38:19lugar de escribir este condicional es
  6197. 4:38:21simplemente retornar
  6198. 4:38:23el valor de esta comparación solamente
  6199. 4:38:27esto es lo que necesitamos para
  6200. 4:38:28reemplazar lo que teníamos antes si
  6201. 4:38:30retornamos a esto puedes ver la
  6202. 4:38:33diferencia voy a colocarlo aquí como un
  6203. 4:38:35comentario para quien te as la
  6204. 4:38:37diferencia en complejidad contra esto
  6205. 4:38:40que estamos haciendo aquí estamos
  6206. 4:38:42retornando el resultado de esta
  6207. 4:38:44comparación si ya es menor que b esta
  6208. 4:38:47condición va a ser verdadera y el valor
  6209. 4:38:50you se va a retornar si es falsa esta
  6210. 4:38:54condición va a ser false va a ser falsa
  6211. 4:38:57y ese es el valor que se va a retornar y
  6212. 4:39:00cumple exactamente el mismo propósito
  6213. 4:39:02vamos a probarlo con con su punto lo
  6214. 4:39:06podemos llamar a la función es menor qué
  6215. 4:39:10y podemos pasar dos valores 3 y 6 3 es
  6216. 4:39:14menor que 6 así que el resultado debería
  6217. 4:39:16ser cero aquí lo podemos ver es true
  6218. 4:39:19pero si invertimos el orden 6 y 3 el
  6219. 4:39:24resultado ahora es falso
  6220. 4:39:26así que está funcionando exactamente
  6221. 4:39:27como queríamos también si los valores
  6222. 4:39:30son iguales el resultado es fox porque
  6223. 4:39:33estamos usando aquí el operador estricto
  6224. 4:39:35el operador de comparación estricta
  6225. 4:39:38estamos verificando si es estrictamente
  6226. 4:39:40menor que ve genial ya sabes cómo
  6227. 4:39:44reemplazar un condicional usado para
  6228. 4:39:46retornar un valor juliano de una función
  6229. 4:39:49y ese es el valor que se va a retornar
  6230. 4:39:58ahora continuando con el tema de
  6231. 4:40:00funciones y de aspectos importantes que
  6232. 4:40:03debes saber de las funciones veremos el
  6233. 4:40:05patrón de retorno anticipado veamos que
  6234. 4:40:08implica el patrón de retorno anticipado
  6235. 4:40:10cuando retornamos un valor de una
  6236. 4:40:12función en ese momento que retornamos el
  6237. 4:40:16valor la función se detiene
  6238. 4:40:18completamente cualquier línea que esté
  6239. 4:40:20luego de return no se va a ejecutar
  6240. 4:40:24veamos esto con una función de muestra
  6241. 4:40:27una función de prueba vamos a mostrar el
  6242. 4:40:30mensaje la cadena de caracteres hola y
  6243. 4:40:33luego vamos a retornar una cadena que
  6244. 4:40:36diga mundo luego de esa sentencia
  6245. 4:40:38richard vamos a intentar mostrar otro
  6246. 4:40:41mensaje que diga
  6247. 4:40:44adiós ok hola y adiós qué ocurre aquí
  6248. 4:40:47inmediatamente puedes ver que en el
  6249. 4:40:50editor de código de frica or camps esta
  6250. 4:40:52línea se torna un poco más tenue un poco
  6251. 4:40:55más transparente porque porque si
  6252. 4:40:57colocamos y colocamos nuestro cursor
  6253. 4:40:59aquí encima de la línea nos dice que se
  6254. 4:41:02ha detectado código que no se puede
  6255. 4:41:04alcanzar durante la ejecución del
  6256. 4:41:06programa ahora bichot bouygues se puede
  6257. 4:41:09traducir literalmente como inalcanzable
  6258. 4:41:11andrizzi busca un código inalcanzable
  6259. 4:41:14detecta detectados
  6260. 4:41:17esta línea nunca se va a ejecutar porque
  6261. 4:41:20está después de una sentencia richard
  6262. 4:41:22cuando esta sentencia virtual se ejecuta
  6263. 4:41:25todo el código que pueda estar después
  6264. 4:41:27de richter ya no se ejecuta la función
  6265. 4:41:30se detiene inmediatamente
  6266. 4:41:32podemos comprobarlo con una llamada a la
  6267. 4:41:36función podemos también mostrar el valor
  6268. 4:41:38retornado por esa llamada a la función
  6269. 4:41:41aquí vemos o la que es este mensaje está
  6270. 4:41:45línea antes de la sentencia de víctor y
  6271. 4:41:47luego vemos la sentencia be saber esta
  6272. 4:41:50sentencia richard es la que retorna el
  6273. 4:41:53valor mundo que vemos aquí porque lo
  6274. 4:41:55estamos mostrando en la consola pero
  6275. 4:41:58pero esta línea que está por acá no se
  6276. 4:42:00ejecuta y por eso no vemos ningún otro
  6277. 4:42:03mensaje en la consola aquí no vemos en
  6278. 4:42:05la palabra dios por que nunca se ejecuta
  6279. 4:42:08y eso es algo que es importante que
  6280. 4:42:10conozcas por qué porque ese patrón de
  6281. 4:42:12retorno anticipado es muy útil
  6282. 4:42:15específicamente es útil cuando
  6283. 4:42:17necesitamos detener la función por
  6284. 4:42:21alguna condición específica
  6285. 4:42:23en este ejemplo vamos a
  6286. 4:42:26y definir una función que se llame
  6287. 4:42:28calcular raíz cuadrada esa función va a
  6288. 4:42:32tomar un número como parámetro podemos
  6289. 4:42:35abreviar lo como no es muy común ver la
  6290. 4:42:38variación núm
  6291. 4:42:40o también podrías escribirla
  6292. 4:42:41explícitamente el número pero qué es lo
  6293. 4:42:43que ocurre que es lo que vamos a hacer
  6294. 4:42:45la raíz cuadrada de un número no existe
  6295. 4:42:48por lo menos no en los números reales
  6296. 4:42:51que son con los que normalmente
  6297. 4:42:52trabajamos no existe si el número es
  6298. 4:42:55negativo
  6299. 4:42:56así que si esa condición es verdaderas
  6300. 4:42:58verdaderas si el número es negativo no
  6301. 4:43:01podemos calcular la raíz cuadrada y qué
  6302. 4:43:04es lo que deberíamos hacer simplemente
  6303. 4:43:06detener la función
  6304. 4:43:08y retornar un valor en este caso lo que
  6305. 4:43:12haríamos es retornar el valor and i find
  6306. 4:43:15porque la operación no está definida
  6307. 4:43:18estamos retornando simplemente el valor
  6308. 4:43:21genérico que retornan las funciones
  6309. 4:43:23cuando no se retorna un valor en el caso
  6310. 4:43:26de que si el valor sea válido sea mayor
  6311. 4:43:29o igual a cero entonces podemos calcular
  6312. 4:43:32la raíz cuadrada del número y retornarlo
  6313. 4:43:35lo haríamos con esta llamada a la
  6314. 4:43:38función square blood raíz cuadrada
  6315. 4:43:41escribimos más puntos square root y
  6316. 4:43:45entre paréntesis pasamos el número y
  6317. 4:43:47retornamos ese valor pero lo importante
  6318. 4:43:51del patrón de retorno anticipado está
  6319. 4:43:53aquí en este condicional si la condición
  6320. 4:43:56es verdadera vamos a retornar este valor
  6321. 4:43:58e inmediatamente la función se va a
  6322. 4:44:01detener recuerda que las funciones por
  6323. 4:44:04defecto retornan and i find cuando se
  6324. 4:44:06ejecuta este habitual esta línea ni se
  6325. 4:44:09alcanza no existe es como si no
  6326. 4:44:11existiera
  6327. 4:44:12solamente cuando se ejecuta esta línea
  6328. 4:44:14primero
  6329. 4:44:15pero si la condición es falsa el
  6330. 4:44:19condicional no se ejecuta y pasamos a
  6331. 4:44:21esta línea y se retorna el valor
  6332. 4:44:24veamos vamos a probar la función vamos a
  6333. 4:44:27llamarla y vamos a mostrar el valor
  6334. 4:44:30retornado raíz cuadrada vamos a calcular
  6335. 4:44:33la raíz cuadrada de 25 la raíz cuadrada
  6336. 4:44:3725 es 5 así que deberíamos ver ese valor
  6337. 4:44:40y aquí lo vemos el valor es 5 el número
  6338. 4:44:44no es menor que cero así que esta
  6339. 4:44:47condición es falso
  6340. 4:44:49esta línea nunca se ejecuta y pasamos a
  6341. 4:44:52esta línea que se calcula la raíz
  6342. 4:44:54cuadrada pero si cambiamos este valor
  6343. 4:44:57por un número negativo ejemplo menos 5
  6344. 4:45:00esta condición es verdadera y retornamos
  6345. 4:45:03el valor and i find que aquí lo puedes
  6346. 4:45:06ver en la consola esta línea nunca se
  6347. 4:45:09ejecuta digamos que no incluimos este
  6348. 4:45:11condicional y sólo escribimos ese línea
  6349. 4:45:14vamos a borrar este código lo primero
  6350. 4:45:17que tendría saque sería esto nn que en
  6351. 4:45:21javascript significa not el nombre este
  6352. 4:45:24es un tipo de valor especial que se
  6353. 4:45:26retorna cuando una operación retorno un
  6354. 4:45:29valor que no es válido que no es un
  6355. 4:45:30número no es un número válido para
  6356. 4:45:33evitarnos eso podemos usar el patrón de
  6357. 4:45:35retorno anticipado y evitar cualquier
  6358. 4:45:38valor inesperado o situación o error que
  6359. 4:45:41se puede presentar
  6360. 4:45:43bien ya sabes cómo usar este patrón iker
  6361. 4:45:45better que tiene la función
  6362. 4:45:47inmediatamente y que puedes escribir más
  6363. 4:45:51de una sentencia return en tus funciones
  6364. 4:45:54dependiendo de donde necesitas retornar
  6365. 4:45:57el valor en qué punto del código de
  6366. 4:45:59punto del código necesita retornar el
  6367. 4:46:01valor y detener la ejecución de la
  6368. 4:46:03función
  6369. 4:46:04bien pasemos a nuestro siguiente mini
  6370. 4:46:07proyecto vamos a tener un mini proyecto
  6371. 4:46:09de contar cartas para el fuego blackjack
  6372. 4:46:12el juego de cartas blackjack tv oye
  6373. 4:46:20vamos a trabajar en un mini proyecto
  6374. 4:46:23centrado en representar lo que ocurre en
  6375. 4:46:26un juego de casino de blackjack un juego
  6376. 4:46:28de cartas vas a practicar tus
  6377. 4:46:30conocimientos de funciones y de la
  6378. 4:46:33sentencia switch las que acabas de
  6379. 4:46:35aprender así que comencemos la
  6380. 4:46:37descripción como puedes ver es un poco
  6381. 4:46:39detallada así que vamos a leerla en el
  6382. 4:46:43juego de casino plan chac el jugador
  6383. 4:46:46puede sacarle ventaja a la casa llevando
  6384. 4:46:49un registro del número relativo de
  6385. 4:46:52cartas altas y cartas bajas que quedan
  6386. 4:46:55en la baraja esto se llama conteo de
  6387. 4:46:59cartas vamos a llevar un registro de el
  6388. 4:47:02número relativo de cartas altas y bajas
  6389. 4:47:05que quedan en la baraja tener más cartas
  6390. 4:47:07altas en la baraja es una ventaja para
  6391. 4:47:10el jugador se le asigna un valor a cada
  6392. 4:47:12carta de acuerdo a la siguiente tabla la
  6393. 4:47:15tabla que puedes ver aquí
  6394. 4:47:17cuando el conteo es positivo el jugador
  6395. 4:47:21debería apostar alto cuando el conteo es
  6396. 4:47:24negativo el jugador debería apostar bajo
  6397. 4:47:27de este conteo nos va a decir cómo
  6398. 4:47:30debería apostar el jugador así que vamos
  6399. 4:47:33también a usar un condicional vamos a
  6400. 4:47:35usar ambos una sentencia switch para
  6401. 4:47:37escoger qué ocurre y un condicional para
  6402. 4:47:40la decisión final dependiendo de la
  6403. 4:47:44carta que se vayan presentando vamos a
  6404. 4:47:46aumentar el valor de conteo en uno
  6405. 4:47:49aumentamos uno o restamos uno o también
  6406. 4:47:53podemos no cambiar el valor y
  6407. 4:47:55simplemente el valor queda exactamente
  6408. 4:47:57igual nuestra meta en este programa es
  6409. 4:48:00definir una función para contar cartas
  6410. 4:48:03la función debe tomar un parámetro carta
  6411. 4:48:06este va a ser el nombre del parámetro
  6412. 4:48:09que puede ser un número o una cadena de
  6413. 4:48:11caracteres y luego aumentar o reducir el
  6414. 4:48:15valor de la variable global conteo
  6415. 4:48:18vamos a tener dos elementos principales
  6416. 4:48:21aquí el parámetro carta
  6417. 4:48:24y es vamos a tener una variable global
  6418. 4:48:26conteo una variable global se puede
  6419. 4:48:29acceder dentro de la función eso lo que
  6420. 4:48:31vamos a hacer vamos a definir conteo
  6421. 4:48:33como una variable global y la vamos a
  6422. 4:48:36modificar dentro de la función de
  6423. 4:48:38acuerdo al valor de la carta la función
  6424. 4:48:41luego debe retornar una cadena de
  6425. 4:48:43caracteres con el conteo actual y con
  6426. 4:48:46esta cadena alguna de estas dos opciones
  6427. 4:48:49apostar si el conteo es positivo o
  6428. 4:48:53esperar si el conteo es cero o negativo
  6429. 4:48:55el conteo actual y la decisión del
  6430. 4:48:58jugador apostar o esperar deben estar
  6431. 4:49:01separados por un espacio en la cadena
  6432. 4:49:03que va a ser retornada
  6433. 4:49:06para que vamos a comenzar a implementar
  6434. 4:49:08la función lo primero que mencionamos y
  6435. 4:49:12que tenemos que definir en el programa
  6436. 4:49:15es la variable global conteo va a ser
  6437. 4:49:18una variable global porque está definida
  6438. 4:49:20en el programa principal y la estamos
  6439. 4:49:22definiendo con la palabra clave para
  6440. 4:49:25inicialmente su valor va a ser cero
  6441. 4:49:27porque la vamos a ir incrementando o
  6442. 4:49:30disminuyendo o dejando de exactamente
  6443. 4:49:32igual dependiendo del valor de la carta
  6444. 4:49:35ahora vamos a definir nuestra función
  6445. 4:49:37contar cartas contar
  6446. 4:49:40cartas y el parámetro se llama carta esa
  6447. 4:49:44carta va a tener un valor específico
  6448. 4:49:46numérico o una letra dependiendo del
  6449. 4:49:48tipo de carta vamos a declarar aquí una
  6450. 4:49:52variable local esta variable solo va a
  6451. 4:49:55ser accesible sólo va a poder usarse
  6452. 4:49:57dentro de la función contar cartas esa
  6453. 4:50:00va a ser nuestra decisión final de
  6454. 4:50:02apostar o esperar pero primero tenemos
  6455. 4:50:05que actualizar el valor del conteo para
  6456. 4:50:08eso vamos a usar una sentencia switch
  6457. 4:50:10esta sentencia switch va a analizar el
  6458. 4:50:14valor de la carta y dependiendo de su
  6459. 4:50:17valor vamos a actualizar el valor de
  6460. 4:50:19conteo aquí podemos ver en la tabla que
  6461. 4:50:23si el valor es dos tres cuatro cinco o
  6462. 4:50:26seis cualquiera de estos números
  6463. 4:50:28deberíamos aumentar el valor de conteo
  6464. 4:50:31en uno así que vamos a hacerlo recuerda
  6465. 4:50:35entre 2 y 6 como estamos usando una
  6466. 4:50:38sentencia switch vamos a tener varios
  6467. 4:50:41casos posibles para ejecutar el mismo
  6468. 4:50:44código para eso escribimos muchos casos
  6469. 4:50:47distintos si carta tiene un valor 2 3 4
  6470. 4:50:515 o 6 que es lo que vamos a hacer vamos
  6471. 4:50:55a incrementar el valor de la variable
  6472. 4:50:57conteo es uno simplemente escribimos dos
  6473. 4:51:01signos más a la derecha del nombre de la
  6474. 4:51:04variable y un punto y coma
  6475. 4:51:06esto permite incrementar su valor en uno
  6476. 4:51:08y como estamos en una sentencia switch
  6477. 4:51:12en uno de los casos tenemos que escribir
  6478. 4:51:14aquí la sentencia break
  6479. 4:51:17seguido un punto y coma ahora para la
  6480. 4:51:20segunda categoría de valores 7 8 y 9
  6481. 4:51:24sabemos que no tenemos que cambiar el
  6482. 4:51:27valor del conteo así que en realidad no
  6483. 4:51:30deberíamos incluirlo en la sentencia
  6484. 4:51:32switch porque no tiene que haber ningún
  6485. 4:51:34efecto sobre el conteo vamos a obviar
  6486. 4:51:36esos casos pero aquí sí tenemos que
  6487. 4:51:39incluir estos casos estos valores
  6488. 4:51:4210 la letra j la letra q la letra k y la
  6489. 4:51:46letra a en cualquiera de estos casos
  6490. 4:51:48tenemos que reducir el valor de conteo
  6491. 4:51:51en 1 así que vamos a implementar esto en
  6492. 4:51:55switch en nuestra sentencia switch
  6493. 4:51:58si el valor es 10 o el valor es j
  6494. 4:52:02o el valor es la letra q o el valor es
  6495. 4:52:06la letra k o el valor es la letra a que
  6496. 4:52:11es lo que vamos a hacer vamos a tomar el
  6497. 4:52:13valor de la variable global conteo y la
  6498. 4:52:16vamos a disminuir en 1 lo vamos a
  6499. 4:52:18reducir en 1
  6500. 4:52:20esta es la variable global y la estamos
  6501. 4:52:22modificando dentro de la función
  6502. 4:52:26recuerda esta sintaxis de la misma forma
  6503. 4:52:28que aumentamos el valor en 1 con dos
  6504. 4:52:31signos más también podemos reducir su
  6505. 4:52:33valor en 1 con dos signos menos y luego
  6506. 4:52:36escribimos break genial ya tenemos
  6507. 4:52:38nuestra sentencia switch implementada ya
  6508. 4:52:42podemos actualizar la variable conteo
  6509. 4:52:44pero todavía nos queda la última parte
  6510. 4:52:47de la función debemos retornar una
  6511. 4:52:50cadena a partir del valor de conteo la
  6512. 4:52:54función debe retornar una cadena de
  6513. 4:52:56caracteres con el conteo actual o sea
  6514. 4:52:59tenemos que retornar ese conteo y
  6515. 4:53:02también debemos incluir esta cadena
  6516. 4:53:04alguna de estas dos apostar si el conteo
  6517. 4:53:07es positivo o esperar si el conteo es
  6518. 4:53:10cero o negativo para escoger la cadena
  6519. 4:53:13como solo tenemos dos opciones podemos
  6520. 4:53:15usar un condicional
  6521. 4:53:18aquí debajo de la sentencia switch si
  6522. 4:53:21conteo es mayor que cero si es positivo
  6523. 4:53:26entonces la decisión sería apostar sino
  6524. 4:53:30si el conteo es negativo o cero entonces
  6525. 4:53:33la decisión sería espera ya tenemos el
  6526. 4:53:36valor del conteo y tenemos la decisión
  6527. 4:53:38apostar oa esperar entonces podemos
  6528. 4:53:41simplemente ya retornar nuestro valor
  6529. 4:53:43cuál debe ser el formato de esa cadena
  6530. 4:53:45nos dicen que el conte actual y la
  6531. 4:53:48decisión del jugador apostar o esperar
  6532. 4:53:50deben estar separados por un espacio así
  6533. 4:53:54que vamos aquí en la sentencia víctor
  6534. 4:53:56vamos a escribir conteo
  6535. 4:54:00separado por un espacio y luego la
  6536. 4:54:02decisión final y esa es la cadena que
  6537. 4:54:05vamos a retornar bien ya tenemos nuestra
  6538. 4:54:08función implementada a contar cartas
  6539. 4:54:10tenemos la decisión la sentencia switch
  6540. 4:54:12que implementa las reglas de la tabla
  6541. 4:54:14luego a partir del valor de conteo
  6542. 4:54:17tomamos una decisión se apostará esperar
  6543. 4:54:19y retornamos la cadena con el conteo y
  6544. 4:54:22la decisión vamos aprobar nuestra
  6545. 4:54:25función con distintas cartas contar
  6546. 4:54:27cartas vamos a llamar a la función con
  6547. 4:54:31distintos valores
  6548. 4:54:32237 k i
  6549. 4:54:36ok tenemos 5 llamadas a la función pero
  6550. 4:54:40como la cadena se retorna ante la
  6551. 4:54:42función tenemos que rodear estas
  6552. 4:54:44llamadas con con su punto log aquí las
  6553. 4:54:47tenemos si vemos en la consola vemos
  6554. 4:54:50estos resultados cuando pasamos el valor
  6555. 4:54:532 aquí voy a poner la consola más
  6556. 4:54:56pequeñita por ahora para que podamos ver
  6557. 4:54:58los primeros dos resultados si pasamos
  6558. 4:55:01el valor 2 a la función que ocurre el
  6559. 4:55:04valor 12 asignada carta luego estamos en
  6560. 4:55:07la sentencia switch el valor es 2 el
  6561. 4:55:11conteo se incrementa en 1 y luego
  6562. 4:55:14pasamos por aquí como el conteo hay uno
  6563. 4:55:17que es mayor que cero la decisión final
  6564. 4:55:20es apostar y se retorna el valor conteo
  6565. 4:55:23separado un espacio de la decisión como
  6566. 4:55:26vemos aquí 1 y apostar lo mismo ocurre
  6567. 4:55:30con cada una de estas opciones
  6568. 4:55:31dependiendo de qué parte de la sentencia
  6569. 4:55:33switch es la que corresponde en este
  6570. 4:55:36caso con 3 tenemos el mismo caso
  6571. 4:55:39es parte de esta secuencia de casos
  6572. 4:55:42posibles aumentamos el conteo en 1 así
  6573. 4:55:44que aquí vemos el valor 2 y la decisión
  6574. 4:55:47es apostar porque el valor es positivo
  6575. 4:55:49aquí lo tenemos el valor es positivo
  6576. 4:55:52apostar y retornamos esa cadena luego
  6577. 4:55:55con 7 aquí vemos el tercer resultado con
  6578. 4:56:0077 no está entre los posibles casos de
  6579. 4:56:03la sentencia switch así que no hacemos
  6580. 4:56:06nada con la variable conteo la dejamos
  6581. 4:56:08exactamente igual tiene el valor
  6582. 4:56:10anterior que era 2 y por lo tanto la
  6583. 4:56:12decisión es apostar y con estas letras
  6584. 4:56:15ocurre lo mismo pero corresponde con una
  6585. 4:56:17acción distinta acá
  6586. 4:56:20es parte de la sentencia switch pero
  6587. 4:56:22está en esta secuencia de casos
  6588. 4:56:25acá la tenemos acá a que corresponde
  6589. 4:56:27esta opción a disminuir el valor de
  6590. 4:56:29conteo en uno en este caso yo disminuye
  6591. 4:56:33de 2 a 1 y como todavía es positiva la
  6592. 4:56:37decisión es apostar y finalmente la
  6593. 4:56:40letra a también es parte de estos casos
  6594. 4:56:42esta tenemos acá disminuye el valor de
  6595. 4:56:44conteo y como ahora el valor de conteo
  6596. 4:56:48es 0 esta condición es falsa porque 0
  6597. 4:56:51vamos a la cláusula eus y la decisión es
  6598. 4:56:54esperar así que retornamos esta
  6599. 4:56:56combinación bien ya completamos este
  6600. 4:57:00mini proyecto y ya tenemos nuestra
  6601. 4:57:02función contar cartas hemos cubierto
  6602. 4:57:04temas muy muy importantes que son
  6603. 4:57:07básicos para programar en javascript que
  6604. 4:57:09los vas a poder usar en tus proyectos de
  6605. 4:57:11ahora en adelante vamos a comenzar con
  6606. 4:57:13una parte del curso que va a explicar
  6607. 4:57:16elementos un poco más avanzados como los
  6608. 4:57:19objetos los bucles o ciclos y otros
  6609. 4:57:22elementos como las funciones flechas los
  6610. 4:57:25operadores restas y plantillas literal
  6611. 4:57:27sigamos con nuestro siguiente tema
  6612. 4:57:36ahora vamos a hablar un poquito sobre
  6613. 4:57:38los objetos en javascript los objetos
  6614. 4:57:42nos permiten guardar una secuencia o un
  6615. 4:57:45conjunto de propiedades que están
  6616. 4:57:49relacionadas con sus correspondientes
  6617. 4:57:51valores ya vas a ver a qué me refiero
  6618. 4:57:53por ejemplo si nosotros queremos
  6619. 4:57:55describir un perro específico una
  6620. 4:57:59mascota específica digamos que queremos
  6621. 4:58:02representar en nuestro programa las
  6622. 4:58:04propiedades de nuestro perro ese perro
  6623. 4:58:07tiene varias propiedades tiene un nombre
  6624. 4:58:11que podría ser por ejemplo si no tiene
  6625. 4:58:15una edad específica cinco años digamos
  6626. 4:58:18tiene un peso específico que podría ser
  6627. 4:58:21seis kilos
  6628. 4:58:23y podría tener digamos una raza podría
  6629. 4:58:27ser un vigo o podría ser también de raza
  6630. 4:58:30mixta esta combinación de propiedades
  6631. 4:58:34como nombre edad peso y raza y de
  6632. 4:58:38valores que están relacionados a esas
  6633. 4:58:42propiedades lo denominamos un objeto que
  6634. 4:58:45podemos usar en javascript en nuestro
  6635. 4:58:47programa es como una forma de agrupar
  6636. 4:58:50las todas bajo una misma estructura de
  6637. 4:58:52datos que podemos usar y acceder a
  6638. 4:58:55través de esta variable como puedes ver
  6639. 4:58:57la sintaxis es bastante
  6640. 4:59:00particular vamos a verla con detalle
  6641. 4:59:03primero para definir un objeto en
  6642. 4:59:06javascript debemos usar la palabra clave
  6643. 4:59:09para seguida de el nombre de la variable
  6644. 4:59:12si queremos asignar ese objeto a una
  6645. 4:59:15variable luego con el signo igual
  6646. 4:59:18estamos asignando el objeto pero aquí
  6647. 4:59:20tenemos en verdad lo que representa el
  6648. 4:59:23objeto en javascript
  6649. 4:59:25entre llaves entre un par de llaves y un
  6650. 4:59:29punto y coma al final escribimos una
  6651. 4:59:32secuencia de podríamos decirlo pares de
  6652. 4:59:35propiedades y valores cada propiedad
  6653. 4:59:38aparece del lado izquierdo y cada valor
  6654. 4:59:41correspondiente aparece del lado derecho
  6655. 4:59:43y separando la propiedad del valor
  6656. 4:59:46tenemos dos puntos y una espacio también
  6657. 4:59:49otra cosa que es muy importante es que
  6658. 4:59:52debe separar cada uno de esos pares con
  6659. 4:59:55una coma excepto el último por supuesto
  6660. 4:59:59y normalmente lo escribimos así en
  6661. 5:00:02líneas diferentes para que sea más fácil
  6662. 5:00:04de leer y de reconocer puedes usar
  6663. 5:00:07números también como propiedades e
  6664. 5:00:09incluso también puedes omitir las
  6665. 5:00:11comillas si los nombres de las
  6666. 5:00:13propiedades tienen una sola palabra no
  6667. 5:00:16tienen ningún espacio y también algo
  6668. 5:00:18curioso es que puedes usar números como
  6669. 5:00:21propiedades por ejemplo aquí tenemos una
  6670. 5:00:25propiedad cuyo nombre 5 y cuyo valor es
  6671. 5:00:28esta cadena de caracteres 5
  6672. 5:00:31si el objeto tiene alguna propiedad que
  6673. 5:00:33no es una cadena javascript las
  6674. 5:00:35convierte automáticamente en cadenas así
  6675. 5:00:37que si no las rodeamos con comillas de
  6676. 5:00:39igual forma van a ser comillas en la
  6677. 5:00:41representación interna del programa
  6678. 5:00:43genial ya sabes cómo definir objetos en
  6679. 5:00:45javascript vamos a ver más detalles
  6680. 5:00:48sobre los objetos porque son muy
  6681. 5:00:49poderosos y muy útiles al momento del
  6682. 5:00:52programa continuamos
  6683. 5:01:00puedes acceder a las propiedades de un
  6684. 5:01:03objeto usando algo que llamamos notación
  6685. 5:01:06de puntos veamos un ejemplo
  6686. 5:01:09si definimos el objeto que teníamos en
  6687. 5:01:12el tema anterior en la parte anterior mi
  6688. 5:01:15perro con un nombre chino edad 5
  6689. 5:01:21peso 6
  6690. 5:01:25raza digamos vigo podemos acceder a las
  6691. 5:01:30propiedades de ese objeto porque si no
  6692. 5:01:32para qué serían de utilidad en las que
  6693. 5:01:34los objetos son muy útiles porque
  6694. 5:01:37podemos acceder a sus propiedades por
  6695. 5:01:39ejemplo si necesitamos trabajar con el
  6696. 5:01:42nombre de este objeto que si no podemos
  6697. 5:01:46acceder a ese valor en nuestro programa
  6698. 5:01:48usando la anotación de punto como
  6699. 5:01:52accederíamos a esta propiedad escribimos
  6700. 5:01:54el nombre de la variable que contiene al
  6701. 5:01:56objeto mi perro y luego seguido de un
  6702. 5:02:00punto escribimos el nombre de la
  6703. 5:02:02propiedad por ejemplo nombre no tenemos
  6704. 5:02:06que colocar las comillas simplemente
  6705. 5:02:09decimos el nombre de la propiedad cuando
  6706. 5:02:11usamos la anotación de punto este punto
  6707. 5:02:15es el que le dice a javascript que
  6708. 5:02:17quiero esta propiedad de este objeto el
  6709. 5:02:21punto es como la conexión la pega en
  6710. 5:02:23barra que los mantiene juntos para
  6711. 5:02:25mostrar ese valor vamos a usar con su
  6712. 5:02:28punto bloque y aquí puedes ver el valor
  6713. 5:02:31esta expresión esta anotación nos
  6714. 5:02:34permitió acceder al valor chino que es
  6715. 5:02:37el nombre del objeto mi perro ahora
  6716. 5:02:41también podemos intentarlo con otras
  6717. 5:02:43propiedades por ejemplo si queremos
  6718. 5:02:45acceder a su edad
  6719. 5:02:46cambiamos el nombre de la propiedad en
  6720. 5:02:49la anotación de punto y aquí tenemos el
  6721. 5:02:51valor 5
  6722. 5:02:53podemos hacer lo mismo con peso aquí
  6723. 5:02:56tenemos el valor 6 y finalmente rasa que
  6724. 5:02:59sería
  6725. 5:03:00pido bien ya sabes cómo acceder a las
  6726. 5:03:04propiedades de un objeto recuerda el
  6727. 5:03:07nombre de la variable seguido de un
  6728. 5:03:09punto y luego el nombre de la propiedad
  6729. 5:03:20a ver una notación alternativa que
  6730. 5:03:22puedes usar para acceder a las
  6731. 5:03:24propiedades de un objeto primero
  6732. 5:03:28definamos un objeto y vamos a asignarlo
  6733. 5:03:31a la variable mi cuaderno esto que esto
  6734. 5:03:34va a tener las propiedades color su
  6735. 5:03:37valor va a ser verde va a tener color
  6736. 5:03:39verde
  6737. 5:03:40categoría
  6738. 5:03:423
  6739. 5:03:42recuerda que no incluimos los acentos
  6740. 5:03:45para no introducir caracteres que no son
  6741. 5:03:48estándar en inglés número de páginas
  6742. 5:03:50doscientas y por lo tanto número de
  6743. 5:03:53hojas 100 este es nuestro objeto como
  6744. 5:03:56puedes notar aquí en el nombre de estas
  6745. 5:03:59dos propiedades tenemos espacios pero
  6746. 5:04:03como las estamos rodeando entre comillas
  6747. 5:04:05podemos escribirlas sólo podemos omitir
  6748. 5:04:08las comillas cuando el nombre tenga una
  6749. 5:04:11sola palabra si tienen más de una
  6750. 5:04:13palabra y hay espacios en ese nombre
  6751. 5:04:16tenemos que rodearla entre comillas es
  6752. 5:04:19obligatorio bien vamos a ver la
  6753. 5:04:21anotación que hemos usado hasta ahora la
  6754. 5:04:23anotación de punto
  6755. 5:04:25escribiríamos el nombre de la variable
  6756. 5:04:27mi cuaderno seguido de un punto y luego
  6757. 5:04:30el nombre de la propiedad digamos color
  6758. 5:04:33si vemos la consola ahora el resultado
  6759. 5:04:35es verde
  6760. 5:04:38pudimos acceder a ese valor pero ahorita
  6761. 5:04:41vamos a usar la notación de corchetes es
  6762. 5:04:45una notación que es equivalente
  6763. 5:04:47normalmente usamos la anotación de punto
  6764. 5:04:49pero la anotación de corchetes nos
  6765. 5:04:52permite acceder a este tipo de
  6766. 5:04:55propiedades que tienen espacios
  6767. 5:04:57propiedades que tienen espacios en su
  6768. 5:04:59nombre en ese caso es obligatorio pero
  6769. 5:05:02también podemos usarla para acceder a
  6770. 5:05:04cualquier propiedad digamos color veamos
  6771. 5:05:07la consola vemos el valor verde
  6772. 5:05:10exactamente lo que teníamos con notación
  6773. 5:05:12de punto así que es equivalente cuando
  6774. 5:05:15usamos la notación de corchetes tenemos
  6775. 5:05:18que escribir un par de corchetes y
  6776. 5:05:20dentro de los corchetes el nombre de la
  6777. 5:05:23propiedad rodeada por comillas
  6778. 5:05:26podemos acceder a cualquier propiedad
  6779. 5:05:28digamos número de páginas y aquí en la
  6780. 5:05:31consola vemos el valor 200
  6781. 5:05:34connotación de punto esto daría un error
  6782. 5:05:37digamos que tratamos de acceder a esta
  6783. 5:05:39propiedad con espacios con la anotación
  6784. 5:05:42de punto puedes ver que luego del primer
  6785. 5:05:44espacio hay un error porque no se
  6786. 5:05:46detecta como un solo nombre
  6787. 5:05:49normalmente en este caso lo que hacemos
  6788. 5:05:51es unir las palabras comenzando con
  6789. 5:05:54mayúsculas como los nombres de las
  6790. 5:05:57variables en este caso si podríamos usar
  6791. 5:06:00notación de punto o notación de
  6792. 5:06:02corchetes que es equivalente
  6793. 5:06:04como la anotación de puntos más concisa
  6794. 5:06:07y más fácil de leer normalmente usamos
  6795. 5:06:09notación de punto pero la anotación de
  6796. 5:06:12corchetes es muy muy útil también cuando
  6797. 5:06:14necesitamos usar el valor de una
  6798. 5:06:17variable y eso es y eso es exactamente
  6799. 5:06:20lo que vamos a hacer en el próximo tema
  6800. 5:06:22vamos a ver como puedes acceder a estos
  6801. 5:06:25valores usando variables recuerda que
  6802. 5:06:29esta es la notación de corchetes un par
  6803. 5:06:31de corchetes y dentro de los corchetes
  6804. 5:06:33entre comillas el nombre de la propiedad
  6805. 5:06:38digamos categoría correcto el valor de
  6806. 5:06:41categoría en el objeto mi cuaderno
  6807. 5:06:44buen trabajo pasemos a nuestro siguiente
  6808. 5:06:47tema
  6809. 5:06:53ahora veremos cómo puedes acceder a la
  6810. 5:06:56propiedad del objeto usando una variable
  6811. 5:06:59en lugar de un valor que escribimos
  6812. 5:07:01directamente entre corchetes
  6813. 5:07:04vamos a usar una variable si definimos
  6814. 5:07:07un objeto que representa los resultados
  6815. 5:07:10de una competencia vamos a asociar los
  6816. 5:07:13números entre 1 y 4 del primero segundo
  6817. 5:07:17tercero y cuarto lugar el usuario
  6818. 5:07:19correspondiente digamos que es una
  6819. 5:07:21competencia de programación y los
  6820. 5:07:24competidores se registraron con un
  6821. 5:07:26nombre específico de usuario y 1 577 en
  6822. 5:07:31tercer lugar llegó este 5 543 y en
  6823. 5:07:35cuarto lugar llegó guiar a 566 estos son
  6824. 5:07:40los cuatro finalistas de la competencia
  6825. 5:07:41ahora si queremos acceder a algunos de
  6826. 5:07:45esos resultados específicos algunos de
  6827. 5:07:48esos valores específicos
  6828. 5:07:51podríamos usar una variable posición
  6829. 5:07:53queremos acceder en este caso al usuario
  6830. 5:07:56que estaba en la posición 4 como podemos
  6831. 5:07:59hacer no podemos escribir el nombre del
  6832. 5:08:02objeto el nombre de la variable que
  6833. 5:08:05contiene ese objeto y entre corchetes
  6834. 5:08:08pasamos en lugar de el nombre de la
  6835. 5:08:10propiedad el nombre de la variable
  6836. 5:08:13posición esto es equivalente a
  6837. 5:08:16simplemente escribir 4 pero como estamos
  6838. 5:08:19escribiendo una variable podemos
  6839. 5:08:21trabajar con esa variable en nuestro
  6840. 5:08:23programa y hacer que este acceso a la
  6841. 5:08:27propiedad sea más flexible más dinámico
  6842. 5:08:29porque este valor va a depender del
  6843. 5:08:31valor de la variable no es un valor fijo
  6844. 5:08:35para mostrar ese resultado podemos usar
  6845. 5:08:38los llamara con su blog tenemos los
  6846. 5:08:41resultados usamos la posición y aquí
  6847. 5:08:45vemos el valor que ahora 566 que ahora
  6848. 5:08:48566 que corresponde a la propiedad 4 si
  6849. 5:08:52actualizamos el valor de la variable
  6850. 5:08:54sigamos a 2
  6851. 5:08:56ahora tenemos 1 577 que corresponde a la
  6852. 5:08:59propiedad 2 puedes ver que ese valor se
  6853. 5:09:02está usando como el valor de la
  6854. 5:09:05propiedad el nombre de la propiedad que
  6855. 5:09:07tenemos aquí y eso nos da mucha más
  6856. 5:09:10flexibilidad porque quizás esta variable
  6857. 5:09:13esté en un lugar específico de tu
  6858. 5:09:15programa y el aus es muchas muchas veces
  6859. 5:09:17y se actualiza en tu programa y luego
  6860. 5:09:19cuando llegue a este punto en el
  6861. 5:09:21programa cuando necesitas acceder a esa
  6862. 5:09:23propiedad
  6863. 5:09:24ese resultado va a estar personalizado
  6864. 5:09:28al valor actual de la variable genial ya
  6865. 5:09:31sabes cómo acceder a propiedades de
  6866. 5:09:33objetos usando una variable esto no lo
  6867. 5:09:36podemos hacer con la anotación de punto
  6868. 5:09:38solamente con la anotación de corchetes
  6869. 5:09:42porque la notación de puntos tenemos que
  6870. 5:09:44escribir explícitamente el nombre de la
  6871. 5:09:47propiedad no podemos usar una variable
  6872. 5:09:49de pasemos a nuestro siguiente tema y
  6873. 5:09:52sigamos viendo las distintas opciones
  6874. 5:09:53que tenemos para trabajar con objetos en
  6875. 5:09:56javascript
  6876. 5:10:04además de crear un objeto en tu programa
  6877. 5:10:06y acceder a sus propiedades
  6878. 5:10:09también puedes actualizar el valor de
  6879. 5:10:11esas propiedades para permitir que tu
  6880. 5:10:13objeto cambie durante la ejecución del
  6881. 5:10:16programa en este caso vamos a ver un
  6882. 5:10:19ejemplo con un objeto que vamos a llamar
  6883. 5:10:22mochila su color va a ser azul su tamaño
  6884. 5:10:27va a ser mediano podemos también asignar
  6885. 5:10:31otros tipos de datos otras estructuras
  6886. 5:10:33de datos como los valores de las
  6887. 5:10:35propiedades por ejemplo una botella de
  6888. 5:10:37agua y un cuaderno
  6889. 5:10:40ese es el contenido de la mochila una
  6890. 5:10:43vez que ya tenemos estas propiedades
  6891. 5:10:45definidas en nuestro programa vamos a
  6892. 5:10:48acceder a ellas y vamos a tratar de
  6893. 5:10:51actualizar las para acceder a la
  6894. 5:10:53propiedad color
  6895. 5:10:55escribimos el nombre de la variable
  6896. 5:10:57mochila seguido de un punto y luego el
  6897. 5:11:00nombre de la propiedad que es color
  6898. 5:11:03vamos a mostrar el valor inicial que es
  6899. 5:11:07azul aquí lo podemos ver azul pero luego
  6900. 5:11:11digamos que queremos cambiar el color de
  6901. 5:11:13nuestra mochila para actualizar el valor
  6902. 5:11:16de la propiedad lo que hacemos es
  6903. 5:11:18escribir el nombre de la variable que
  6904. 5:11:21contiene el objeto seguido de un punto
  6905. 5:11:23el nombre de la propiedad que queremos
  6906. 5:11:26actualizar y luego le vamos a asignar el
  6907. 5:11:29valor que queremos asignar verde en este
  6908. 5:11:32caso una cadena de caracteres esto va a
  6909. 5:11:35actualizar el valor de azul a verde y lo
  6910. 5:11:38podemos comprobar mostrando lo otra vez
  6911. 5:11:41mochila punto color vamos a abrir la
  6912. 5:11:44consola y vemos el resultado
  6913. 5:11:46exactamente lo que esperábamos
  6914. 5:11:49inicialmente el valor es azul y luego de
  6915. 5:11:52reasignar o de cambiar ese valor ahora
  6916. 5:11:56es verdad aquí en esta línea es verde
  6917. 5:11:58así es cómo resignamos o cambiamos el
  6918. 5:12:01valor
  6919. 5:12:02también podemos trabajar con sus valores
  6920. 5:12:05para modificarlos por ejemplo si
  6921. 5:12:08nosotros queremos agregar algo a la
  6922. 5:12:09mochila tendríamos que acceder al valor
  6923. 5:12:13de la propiedad contenido así que vamos
  6924. 5:12:17a ver cómo podemos actualizar este valor
  6925. 5:12:19podemos usar notación de puntos mochila
  6926. 5:12:22punto contenido y vemos aquí el arreglo
  6927. 5:12:26botella de agua y cuadernos son los dos
  6928. 5:12:29valores iniciales digamos que queremos
  6929. 5:12:31agregar un lápiz a nuestra mochila cómo
  6930. 5:12:34podemos hacerlo mochila punto contenido
  6931. 5:12:37el único que falta es que llamemos al
  6932. 5:12:39método puig
  6933. 5:12:41recuerdas de ese método cuando
  6934. 5:12:43trabajamos con arreglos este es un
  6935. 5:12:45método que nos permite agregar un
  6936. 5:12:47elemento al final de la regla así que
  6937. 5:12:51vamos a agregar la cadena de caracteres
  6938. 5:12:53que diga el lápiz ok y luego de eso
  6939. 5:12:57vamos a volver a mostrar el valor del
  6940. 5:13:00contenido de la mochila vamos a abrir la
  6941. 5:13:02consola y aquí lo podemos ver
  6942. 5:13:05inicialmente sólo tiene una botella de
  6943. 5:13:07agua y un cuaderno y luego de que
  6944. 5:13:10ejecutamos esta línea el nuevo contenido
  6945. 5:13:13es los dos elementos anteriores más el
  6946. 5:13:16lápiz que se agregó al final del arreglo
  6947. 5:13:18genial eso es en el caso de que queramos
  6948. 5:13:21agregar o quitar un elemento de la lista
  6949. 5:13:24si quisiéramos quitar aquí podríamos
  6950. 5:13:27usar por ejemplo pop
  6951. 5:13:29pero si queremos reasignar el contenido
  6952. 5:13:31de esa propiedad completamente por otro
  6953. 5:13:35arreglo completamente nuevo también
  6954. 5:13:37podemos hacerlo igual que resignamos el
  6955. 5:13:41valor de otras propiedades en mochila
  6956. 5:13:43punto contenido que es el nombre de la
  6957. 5:13:46propiedad igual y asignamos otro arreglo
  6958. 5:13:49completamente nuevo y luego si mostramos
  6959. 5:13:53esa propiedad
  6960. 5:13:54mochila punto
  6961. 5:13:57contenido
  6962. 5:14:01bien ya sabes cómo actualizar las
  6963. 5:14:03propiedades de un objeto recuerda
  6964. 5:14:06primero el nombre de la variable seguido
  6965. 5:14:08de un punto el nombre de la propiedad y
  6966. 5:14:12asignamos el valor correspondiente
  6967. 5:14:13también lo puedes hacer connotaciones
  6968. 5:14:16corchetes en lugar de notación de punto
  6969. 5:14:18aquí puedes usar la anotación de
  6970. 5:14:20corchetes y va a funcionar
  6971. 5:14:27también puedes agregar nuevas
  6972. 5:14:29propiedades a un objeto en javascript
  6973. 5:14:33veamos un ejemplo ahora vamos a tener un
  6974. 5:14:35objeto que va a representar un curso
  6975. 5:14:38el curso va a tener un título y es su
  6976. 5:14:41título va a ser aprende javascript desde
  6977. 5:14:45cero bien también luego podemos
  6978. 5:14:47especificar el idioma del curso y
  6979. 5:14:51también tendríamos aquí la duración
  6980. 5:14:53digamos que es un curso de 30 minutos o
  6981. 5:14:5530 horas dependiendo del estándar que
  6982. 5:14:58usemos para en este valor que tenemos un
  6983. 5:15:01objeto con tres propiedades ahora como
  6984. 5:15:04podemos añadir una cuarta propiedad la
  6985. 5:15:07propiedad se va a llamar vistas va a ser
  6986. 5:15:10el número de vistas que ha tenido ese
  6987. 5:15:12curso desde que se publicó la sintaxis
  6988. 5:15:15es exactamente la misma que usamos para
  6989. 5:15:17actualizar el valor de una propiedad
  6990. 5:15:19pero en este caso vamos a escribir el
  6991. 5:15:22nombre de la propiedad que queremos
  6992. 5:15:24agregar el nombre de la variable seguida
  6993. 5:15:28de un punto el nombre de la propiedad
  6994. 5:15:30nueva y luego el valor que queremos
  6995. 5:15:33asignar aquí tenemos
  6996. 5:15:36nuestra propiedad nueva que podemos
  6997. 5:15:39comprobar
  6998. 5:15:40mostrando la en la consola vamos a abrir
  6999. 5:15:43la consola puedes ver que el valor es 34
  7000. 5:15:46mil 500 vistas exactamente lo que
  7001. 5:15:49asignamos en esta línea cuando creamos
  7002. 5:15:51la propiedad si hubiéramos intentado
  7003. 5:15:54acceder a esta propiedad antes de
  7004. 5:15:56crearlo el resultado hubiera sido aun de
  7005. 5:15:59find y esto es muy importante que lo
  7006. 5:16:01sepas también si intentas acceder a una
  7007. 5:16:04propiedad que no existe en un objeto en
  7008. 5:16:07ese momento en particular del programa
  7009. 5:16:09el resultado o el valor que se va a
  7010. 5:16:12retornar el haundi find y por eso es
  7011. 5:16:15bueno también verificar que el valor no
  7012. 5:16:18sea anti find cuando estás trabajando
  7013. 5:16:19con propiedades y también estoy segura
  7014. 5:16:23de que te debes estar preguntando si
  7015. 5:16:24podemos hacer esto mismo connotación de
  7016. 5:16:27corchetes vamos a ver si cerramos la
  7017. 5:16:30consola y usamos notación de corchetes
  7018. 5:16:33para crear la propiedad vista
  7019. 5:16:36luego intentamos acceder a ella aquí
  7020. 5:16:40podemos ver el valor
  7021. 5:16:4234.500 que era exactamente lo que le
  7022. 5:16:45asignamos a la propiedad vistas genial
  7023. 5:16:48ya sabes agregar propiedades nuevas a un
  7024. 5:16:50objeto
  7025. 5:16:56ahora vamos a ver cómo puedes eliminar
  7026. 5:16:59una propiedad de un objeto en ya buscar
  7027. 5:17:02la palabra clave aquí es la palabra
  7028. 5:17:05delete qué significa eliminar o borrar
  7029. 5:17:08en español vamos a ver cómo la puedes
  7030. 5:17:11usar aquí tenemos el objeto que usamos
  7031. 5:17:14en nuestro ejemplo anterior con sus tres
  7032. 5:17:16propiedades títulos idioma y duración
  7033. 5:17:20si queremos borrar
  7034. 5:17:21digamos la propiedad duración ya no
  7035. 5:17:24queremos tener un registro de la
  7036. 5:17:26duración del curso tenemos que escribir
  7037. 5:17:28la palabra clave delete seguida de el
  7038. 5:17:33nombre del objeto el nombre de la
  7039. 5:17:35variable que contiene el objeto luego un
  7040. 5:17:38punto y el nombre de la propiedad
  7041. 5:17:41duración y punto y coma y eso es todo lo
  7042. 5:17:45que tenemos que hacer para borrar esa
  7043. 5:17:47propiedad la palabra delete separada de
  7044. 5:17:50un espacio el nombre de la variable
  7045. 5:17:52punto y el nombre de la propiedad veamos
  7046. 5:17:56y en realidad si se eliminó a esta
  7047. 5:17:58propiedad del objeto curso vamos a
  7048. 5:18:02acceder a la propiedad antes de borrarla
  7049. 5:18:04y vamos a intentar acceder a ella luego
  7050. 5:18:07de borrar la puedes ver que inicialmente
  7051. 5:18:10su valor era 30 aquí cuando accedemos a
  7052. 5:18:13ella antes de borrarla pero luego de
  7053. 5:18:16eliminarlo de borrarla del objeto el
  7054. 5:18:18valor es antifaz porque ya la propiedad
  7055. 5:18:22no existe en el objeto si cambiamos está
  7056. 5:18:25línea de código por una línea de código
  7057. 5:18:26que nos muestre el objeto completo este
  7058. 5:18:30es el objeto que se nos presenta tiene
  7059. 5:18:32un título y tiene un idioma pero ya no
  7060. 5:18:35tiene la propiedad duración luego de que
  7061. 5:18:37la borramos con delete bien vamos a ver
  7062. 5:18:41cómo podemos hacer esto con otra
  7063. 5:18:42propiedad
  7064. 5:18:43digamos que queremos borrar la propiedad
  7065. 5:18:46idioma
  7066. 5:18:48inicialmente ese valor va a ser español
  7067. 5:18:52pero luego de borrar lo tendríamos que
  7068. 5:18:54actualizar aquí el nombre de la
  7069. 5:18:56propiedad y aquí abajo para mostrarlo
  7070. 5:18:59pero lo que va a ocurrir es que el valor
  7071. 5:19:01va a ser on design aquí lo vemos en la
  7072. 5:19:04consola español es lo que tenemos aquí
  7073. 5:19:07antes de borrar la propiedad luego la
  7074. 5:19:09borramos y si intentamos acceder a ella
  7075. 5:19:13luego de borrarla tenemos el valor anti
  7076. 5:19:16file
  7077. 5:19:17genial la clave está en delete así que
  7078. 5:19:21pasemos a nuestro siguiente tema
  7079. 5:19:29a ver cómo podemos usar un objeto para
  7080. 5:19:32reemplazar una sentencia switch con esta
  7081. 5:19:35estructura que tenemos aquí vamos a
  7082. 5:19:38analizar el código y luego lo vamos a
  7083. 5:19:40modificar tenemos una función que se
  7084. 5:19:42llama buscar el elemento químico que va
  7085. 5:19:45a tomar el símbolo del elemento químico
  7086. 5:19:47como argumento y a partir de ese símbolo
  7087. 5:19:50va a retornar el nombre completo del
  7088. 5:19:53elemento químico
  7089. 5:19:54aquí tenemos la variable elemento
  7090. 5:19:57químico le asignamos un valor
  7091. 5:19:58dependiendo del valor de símbolo y luego
  7092. 5:20:01retornamos ese valor el nombre completo
  7093. 5:20:04del elemento qué es lo que ocurre si
  7094. 5:20:07analizamos la estructura de switch aquí
  7095. 5:20:09podemos ver que a partir del valor de
  7096. 5:20:11símbolo vamos a asociar ese símbolo con
  7097. 5:20:15su nombre completo con el elemento
  7098. 5:20:17químico al estaría como asociado
  7099. 5:20:21aluminio ese estaría asociado a azufre
  7100. 5:20:23cl a cloro h
  7101. 5:20:27de áporo oro y el litio
  7102. 5:20:31básicamente lo que estamos haciendo es
  7103. 5:20:33una asociación entre dos valores en este
  7104. 5:20:36caso y para esta sentencia switch o
  7105. 5:20:39específica cuando tienes una sentencia
  7106. 5:20:42switch con esta estructura que asociados
  7107. 5:20:44valores fácilmente podemos escribir
  7108. 5:20:47código más conciso con un objeto
  7109. 5:20:49recuerda que los objetos nos permiten
  7110. 5:20:52asociar una propiedad con su valor en
  7111. 5:20:55este caso vamos a crear un objeto que
  7112. 5:20:57asocie los símbolos químicos con sus
  7113. 5:21:00elementos químicos correspondientes
  7114. 5:21:03veamos cómo podemos hacerlo vamos a
  7115. 5:21:05tener la sentencia switch aquí abajo
  7116. 5:21:07como referencia y vamos a ir escribiendo
  7117. 5:21:09el código vamos a llamar a nuestro
  7118. 5:21:12objeto símbolos químicos también podrías
  7119. 5:21:14llamarlo elementos químicos dependiendo
  7120. 5:21:17lo estamos asociando símbolos a los
  7121. 5:21:19elementos así que es equivalentes
  7122. 5:21:22ahora las propiedades de este objeto van
  7123. 5:21:25a ser los símbolos químicos y vamos a
  7124. 5:21:27usar esas propiedades para acceder a sus
  7125. 5:21:30valores correspondientes que van a ser
  7126. 5:21:32los nombres completos de los elementos
  7127. 5:21:35químicos al aluminio
  7128. 5:21:39ese azufre
  7129. 5:21:42cloro
  7130. 5:21:44h lo tenemos aquí abajo sería el yo
  7131. 5:21:49el yo
  7132. 5:21:51luego tenemos boro y el litio
  7133. 5:21:55genial ya tenemos nuestro objeto estamos
  7134. 5:21:59reestructurando nuestro código de una
  7135. 5:22:01forma específica para poder realizar
  7136. 5:22:04exactamente lo mismo que tenemos en
  7137. 5:22:06switch pero de forma más concisa aquí ya
  7138. 5:22:09estamos logrando asociar cada símbolo
  7139. 5:22:11con su elemento químico correspondiente
  7140. 5:22:14ahora vamos a borrar nuestra sentencia
  7141. 5:22:16switch porque ya asociamos estos valores
  7142. 5:22:18el único cambio que nos falta por hacer
  7143. 5:22:22es acceder al símbolo químico para
  7144. 5:22:25obtener su valor correspondiente acceder
  7145. 5:22:28a esta propiedad ya no vamos a necesitar
  7146. 5:22:30esta variable así que la borramos y
  7147. 5:22:33simplemente usamos el nombre de este
  7148. 5:22:35objeto podemos trabajar con este objeto
  7149. 5:22:38como ha aprendido en las partes
  7150. 5:22:39anteriores del curso podemos acceder a
  7151. 5:22:42sus propiedades con notación de
  7152. 5:22:43corchetes y podemos pasar el valor de
  7153. 5:22:46esta variable símbolo del parámetro
  7154. 5:22:50esto nos va a retornar el valor asociado
  7155. 5:22:53a ese símbolo el nombre completo del
  7156. 5:22:56elemento químico así que esto va a ser
  7157. 5:22:59el nombre completo del elemento químico
  7158. 5:23:00y el valor se va a retornar
  7159. 5:23:03exactamente lo que queríamos y puedes
  7160. 5:23:06ver como nuestro código es mucho más
  7161. 5:23:08conciso si lo modificamos para trabajar
  7162. 5:23:12con un objeto en lugar de switch en este
  7163. 5:23:14caso ahora veamos cada uno de los
  7164. 5:23:17posibles casos para confirmar que
  7165. 5:23:19retorna el valor apropiado tenemos
  7166. 5:23:22aluminio tenemos azufre tenemos cloro
  7167. 5:23:25helio boro y litio así que estamos
  7168. 5:23:30verificando todos los casos vamos a
  7169. 5:23:31abrir la consola
  7170. 5:23:34y podemos ver todas las opciones
  7171. 5:23:36aluminio azufre cloro helio oro y litio
  7172. 5:23:39así que la función retorna a los valores
  7173. 5:23:42que esperábamos y tenemos código mucho
  7174. 5:23:44más conciso simplemente usando un objeto
  7175. 5:23:47para asociar una propiedad a su valor
  7176. 5:23:50correspondiente bien ya sabes cómo usar
  7177. 5:23:53objetos para escribir código más conciso
  7178. 5:23:55en casos como éste en el cual
  7179. 5:23:57necesitamos asociar propiedades a
  7180. 5:23:59valores bien pasemos a nuestro siguiente
  7181. 5:24:02tema del curso
  7182. 5:24:08otra operación muy importante que debes
  7183. 5:24:12aprender a realizar con un objeto es
  7184. 5:24:14verificar si ese objeto tiene una
  7185. 5:24:17propiedad o no recuerda que hace algunos
  7186. 5:24:19minutos en una parte anterior vimos que
  7187. 5:24:22después de borrar una propiedad cuando
  7188. 5:24:25ese objeto ya no tiene la propiedad
  7189. 5:24:27el resultado retornado si intentamos
  7190. 5:24:29acceder a ella es indiferente pero para
  7191. 5:24:33ello podemos verificar si la propiedad
  7192. 5:24:35existe o no antes de usarla como podemos
  7193. 5:24:39verificar eso vamos a ver vamos a crear
  7194. 5:24:42un objeto llamado mi cuaderno con estas
  7195. 5:24:45propiedades color verde categoría 3
  7196. 5:24:50y precio
  7197. 5:24:514.56 para verificar si el objeto tiene o
  7198. 5:24:56no una propiedad específica
  7199. 5:24:58escribimos el nombre del objeto el
  7200. 5:25:01nombre de la variable y luego escribimos
  7201. 5:25:04esto que tenemos aquí estamos llamando
  7202. 5:25:08al método más o un print
  7203. 5:25:12de espanyol podríamos traducirlo como
  7204. 5:25:14tiene esta propiedad estamos preguntando
  7205. 5:25:17si este objeto que tenemos aquí tiene la
  7206. 5:25:21propiedad que vamos a especificar entre
  7207. 5:25:23paréntesis
  7208. 5:25:24digamos color en este caso el objeto si
  7209. 5:25:28tiene la propiedad color así que el
  7210. 5:25:30resultado va a ser ser el resultado
  7211. 5:25:32retornado en esta línea por la llamada
  7212. 5:25:36al método
  7213. 5:25:38para mostrar el resultado en la consola
  7214. 5:25:40vamos a usar con su block y aquí podemos
  7215. 5:25:43ver el resultado
  7216. 5:25:45exactamente lo que esperábamos porque la
  7217. 5:25:48propiedad si existe este método es muy
  7218. 5:25:50útil cuando estamos trabajando por
  7219. 5:25:53ejemplo con un condicional en un
  7220. 5:25:55condicional podemos escribir esto como
  7221. 5:25:58la condición y si el objeto tiene esa
  7222. 5:26:01propiedad la condición va a ser
  7223. 5:26:03verdadera y si no la condición va a ser
  7224. 5:26:05falsa ahora veamos qué ocurre si
  7225. 5:26:08intentamos
  7226. 5:26:09verificar una propiedad que no existe en
  7227. 5:26:14el objeto digamos origen como el país de
  7228. 5:26:16origen
  7229. 5:26:18este resultado debería ser falso falso
  7230. 5:26:21porque el objeto mi cuaderno no tiene
  7231. 5:26:24una propiedad llamada origen si lo
  7232. 5:26:26verificamos en la consola aquí tenemos
  7233. 5:26:28el valor fob falso porque esta propiedad
  7234. 5:26:32no existe en el objeto para ilustrar
  7235. 5:26:34cómo este método es muy muy útil en un
  7236. 5:26:37condicional vamos a crear oa definir una
  7237. 5:26:40función
  7238. 5:26:41la función va a verificar
  7239. 5:26:45si un objeto tiene una propiedad o no
  7240. 5:26:49y va a mostrar un mensaje adecuado para
  7241. 5:26:52tomar dos parámetros el objeto y la
  7242. 5:26:55propiedad así que decimos sí
  7243. 5:26:59esta condición es verdadera es decir si
  7244. 5:27:02el objeto tiene la propiedad que
  7245. 5:27:06especificamos aquí como parámetro
  7246. 5:27:09entonces qué es lo que vamos a retornar
  7247. 5:27:12aquí una cadena que va a ser la unión de
  7248. 5:27:15esta cadena con el valor de la propiedad
  7249. 5:27:17en ese objeto ya aquí sabemos que este
  7250. 5:27:20valor no va a ser anti find porque la
  7251. 5:27:23condición fue verdadera es decir que el
  7252. 5:27:25objeto tiene esa propiedad que
  7253. 5:27:28especificamos y podemos trabajar con
  7254. 5:27:30ella de forma segura sabiendo que no va
  7255. 5:27:33a ser aún de find sino si el objeto no
  7256. 5:27:36tiene la propiedad vamos a retornar esta
  7257. 5:27:38cadena de caracteres el objeto no tiene
  7258. 5:27:41esta propiedad
  7259. 5:27:44y esto es básicamente nuestra función
  7260. 5:27:47vamos a probar la causa punto y llamamos
  7261. 5:27:51a verificar propiedad vamos a pasar un
  7262. 5:27:54objeto que vamos a definir aquí mi
  7263. 5:27:57cuaderno
  7264. 5:27:58color verde categoría 3 y precio
  7265. 5:28:024.56
  7266. 5:28:04vamos a verificar si mi cuaderno tiene
  7267. 5:28:07la propiedad color veamos el resultado
  7268. 5:28:10en la consola si tienes la propiedad
  7269. 5:28:13color porque vemos su valor el valor de
  7270. 5:28:16esa propiedad es verde esta condición
  7271. 5:28:19fue verdadera y aquí se reemplazó el
  7272. 5:28:22valor de la propiedad si tratamos de
  7273. 5:28:24pasar una propiedad que no existe por
  7274. 5:28:27ejemplo origen aquí vemos que el objeto
  7275. 5:28:30no tiene esta propiedad esta condición
  7276. 5:28:33fue falsa así que fuimos a la cláusula
  7277. 5:28:36else y retornamos esta cadena de
  7278. 5:28:38caracteres el objeto no tiene esta
  7279. 5:28:41propiedad también podríamos agregar el
  7280. 5:28:43puntito aquí bien ya sabes cómo usar
  7281. 5:28:45este método hash un propio en un
  7282. 5:28:48condicional y también de forma
  7283. 5:28:50independiente para verificar si un
  7284. 5:28:52objeto tiene una propiedad o no esto es
  7285. 5:28:54muy muy útil a medida que trabajes con
  7286. 5:28:57los objetos porque te garantizan que
  7287. 5:29:00cuando trates de acceder a una propiedad
  7288. 5:29:01el valor no va a ser dónde find buen
  7289. 5:29:04trabajo
  7290. 5:29:05ahora vamos a empezar a manipular
  7291. 5:29:07objetos más complejos que son el tipo de
  7292. 5:29:10objeto con el cual trabajaría por
  7293. 5:29:12ejemplo en desarrollo web
  7294. 5:29:19ya sabes cómo trabajar con objetos en
  7295. 5:29:22javascript y todas sus operaciones
  7296. 5:29:24principales así que vamos a comenzar a
  7297. 5:29:27trabajar con objetos más complejos
  7298. 5:29:29tienen combinaciones de distintos tipos
  7299. 5:29:32de datos como sus valores los valores de
  7300. 5:29:35las propiedades puedes ver que esta
  7301. 5:29:37variable orden es de pizzas contiene un
  7302. 5:29:41arreglo aquí podemos ver los corchetes
  7303. 5:29:43abriendo y cerrando el arreglo esto nos
  7304. 5:29:46dice que es un arreglo de objetos porque
  7305. 5:29:49aquí tenemos las llaves que abren y
  7306. 5:29:51cierran el objeto y dentro de cada
  7307. 5:29:54objeto que tenemos aquí en nuestro
  7308. 5:29:56arreglo tenemos secuencias de
  7309. 5:29:58propiedades y sus valores que siguen un
  7310. 5:30:00formato muy similar las mismas
  7311. 5:30:02propiedades asociadas a distintos
  7312. 5:30:04valores esto es un formato que
  7313. 5:30:06normalmente usamos y es muy similar al
  7314. 5:30:08formato jason así que si en algún
  7315. 5:30:11momento planeas de aprender desarrollo
  7316. 5:30:13web aprender a manipular este tipo de
  7317. 5:30:15objetos es vital
  7318. 5:30:17veamos cómo lo puedes hacer primero que
  7319. 5:30:20todo lo esencial es entender que estamos
  7320. 5:30:23trabajando inicialmente con un arreglo
  7321. 5:30:25así que cada uno de estos objetos tiene
  7322. 5:30:28un lugar en ese arreglo como si fuera un
  7323. 5:30:31elemento como si tuviéramos un arreglo
  7324. 5:30:33con dos cadenas de caracteres o dos
  7325. 5:30:35números pero en este caso tenemos dos
  7326. 5:30:37objetos luego cada objeto tiene su
  7327. 5:30:41conjunto de propiedades y los valores de
  7328. 5:30:45esas propiedades veamos la estructura
  7329. 5:30:47tipo de pixar el primer objeto
  7330. 5:30:50representa una pizza margarita pero el
  7331. 5:30:53segundo objeto representa una pizza de
  7332. 5:30:55cuatro quesos ambos tienen la misma
  7333. 5:30:58propiedad pero sus valores son distintos
  7334. 5:31:00luego tenemos el tamaño de la pizza
  7335. 5:31:03individual y el segundo objeto es de
  7336. 5:31:05tamaño familiar
  7337. 5:31:06la segunda pizza precio 5 con 67 aquí
  7338. 5:31:10puedes ver que podemos mezclar valores
  7339. 5:31:13de distintos tipos no necesariamente
  7340. 5:31:15todos los valores tienen que ser del
  7341. 5:31:17mismo tipo de datos
  7342. 5:31:19luego vemos toppings los toppings están
  7343. 5:31:23representados como otro arreglo sí es
  7344. 5:31:26cierto tenemos un arreglo
  7345. 5:31:29externó que contiene a los objetos luego
  7346. 5:31:32tenemos el objeto y dentro del objeto
  7347. 5:31:35tenemos otro arreglo como el valor de
  7348. 5:31:38una propiedad con este ejemplo puedes
  7349. 5:31:40ver que los objetos son muy muy
  7350. 5:31:42versátiles y podemos trabajar con ellos
  7351. 5:31:45para representar prácticamente cualquier
  7352. 5:31:47data que necesitemos
  7353. 5:31:49aquí representamos los toppings como un
  7354. 5:31:51arreglo porque necesitamos varios
  7355. 5:31:54elementos porque el cliente puede pedir
  7356. 5:31:57más de un topping luego para llevar es
  7357. 5:32:00un valor booleana verdaderos y la pizza
  7358. 5:32:03se ordenó para llevar o falsos y la
  7359. 5:32:06pizza se ordenó para comer en el lugar
  7360. 5:32:08toda la data que necesitamos de la pizza
  7361. 5:32:10está representada en estos objetos para
  7362. 5:32:13cada una de las órdenes como podemos
  7363. 5:32:15acceder a estos objetos vamos a trabajar
  7364. 5:32:18con con su logo la estructura de datos
  7365. 5:32:21principal que contiene los objetos es un
  7366. 5:32:23arreglo
  7367. 5:32:24ese reglón tiene las mismas propiedades
  7368. 5:32:27que aprendiste cuando empezamos a
  7369. 5:32:29trabajar con arreglos el primer objeto o
  7370. 5:32:33el primer elemento está en el índice 0
  7371. 5:32:35el segundo objeto está en el índice 1 y
  7372. 5:32:39los objetos están separados con una coma
  7373. 5:32:41esto es muy importante ok también cuando
  7374. 5:32:44los objetos son parte de un arreglo
  7375. 5:32:46también hay que separarlos con comas
  7376. 5:32:48porque son elementos distintos del
  7377. 5:32:50arreglo
  7378. 5:32:52entonces para acceder al primer objeto
  7379. 5:32:54usamos el índice cero el nombre de la
  7380. 5:32:57variable y el índice cero este índice
  7381. 5:33:01cero nos va a retornar el primer objeto
  7382. 5:33:03y también si queremos el segundo objeto
  7383. 5:33:06podemos cambiar el índice cero por el
  7384. 5:33:09índice uno y sería este objeto el
  7385. 5:33:12resultado veámoslo en la consola aquí
  7386. 5:33:15puedes ver el primer objeto
  7387. 5:33:17tipo tamaño precio toppings y para
  7388. 5:33:22llevar y luego aquí tenemos
  7389. 5:33:26otro objeto
  7390. 5:33:28tipo tamaño precio toppings y para
  7391. 5:33:32llevar accedemos al primer objeto
  7392. 5:33:34primero y luego al segundo objeto con
  7393. 5:33:37sus índices correspondientes
  7394. 5:33:38ahora digamos que queremos acceder al
  7395. 5:33:42tipo de pizza que corresponde al primer
  7396. 5:33:44objeto
  7397. 5:33:45digamos que queremos saber si esa ticks
  7398. 5:33:48es margarita o cualquier otro tipo de
  7399. 5:33:50pizza solo la del tipo del primer objeto
  7400. 5:33:53como lo podemos hacer vamos a trabajar
  7401. 5:33:56con el primer objeto y luego puedes
  7402. 5:33:58replicar lo que estamos haciendo para el
  7403. 5:34:00segundo objeto simplemente cambiando el
  7404. 5:34:03índice de 0 a 1 para acceder a esa
  7405. 5:34:05propiedad usamos notación de punto
  7406. 5:34:08también podemos usar notación de
  7407. 5:34:10corchete accedemos al primer objeto y
  7408. 5:34:13luego accedemos a su propiedad tipo eso
  7409. 5:34:16nos debería retornar el valor margarida
  7410. 5:34:18y efectivamente aquí tenemos el valor
  7411. 5:34:21margarida fue el tipo del primer objeto
  7412. 5:34:24de la primera orden de pizza si queremos
  7413. 5:34:27usar en lugar de notación de punto
  7414. 5:34:29notación de corchete también lo podemos
  7415. 5:34:32hacer con comillas
  7416. 5:34:34aquí las tenemos usamos los corchetes y
  7417. 5:34:37escribimos el nombre de la propiedad
  7418. 5:34:39entre comillas e igual tenemos el valor
  7419. 5:34:41margarita podemos tratar de acceder a
  7420. 5:34:44cualquier otra propiedad por ejemplo
  7421. 5:34:46precio
  7422. 5:34:485.67 la tenemos aquí y si usamos
  7423. 5:34:52notación de corchetes tenemos 5.67 el
  7424. 5:34:55mismo valor bien si queremos acceder a
  7425. 5:34:58la lista de toppings también podemos
  7426. 5:35:00hacerlo
  7427. 5:35:02aquí tenemos los toppings del primer
  7428. 5:35:04objeto y si queremos acceder a los
  7429. 5:35:06toppings del segundo objeto simplemente
  7430. 5:35:09cambiamos el índice a uno aquí vemos
  7431. 5:35:11extra queso y pimentón que corresponden
  7432. 5:35:14al segundo objeto a la lista de toppings
  7433. 5:35:17bien ahora vamos a ver cómo puedes
  7434. 5:35:19agregar una tercera orden de pizza a
  7435. 5:35:22este objeto recuerda que siempre tenemos
  7436. 5:35:24que separar los objetos con una coma
  7437. 5:35:26cuando están contenidos en un arreglo
  7438. 5:35:29cuando son parte de un arreglo así que
  7439. 5:35:32agregamos una coma y luego en la
  7440. 5:35:35siguiente línea colocamos un par de
  7441. 5:35:38llaves
  7442. 5:35:39normalmente el editor de código que
  7443. 5:35:41estamos usando para alinear las llaves
  7444. 5:35:44verticalmente y podemos comenzar a
  7445. 5:35:47escribir nuestro código tipo 2 puntos
  7446. 5:35:50digamos napolitana tamaño individual
  7447. 5:35:56precio
  7448. 5:35:586.78 toppings
  7449. 5:36:01lista vacía
  7450. 5:36:03y
  7451. 5:36:05para llevar esto
  7452. 5:36:08la pizza se pidió para llevar no tiene
  7453. 5:36:12ningún topping agregado de tamaño
  7454. 5:36:14individual es una napolitana y su precio
  7455. 5:36:16fue de 6.78 lee ya tenemos un tercer
  7456. 5:36:21objeto en nuestro arreglo y podemos
  7457. 5:36:23acceder a él con el índice 2 porque es
  7458. 5:36:26el tercer elemento de nuestro arreglo
  7459. 5:36:28genial ya sabes cómo trabajar con este
  7460. 5:36:31objeto que ya es un poco más complejo en
  7461. 5:36:33su estructura simplemente accedes al
  7462. 5:36:35objeto que corresponde y luego accedes a
  7463. 5:36:38su propiedad
  7464. 5:36:44bien en la parte anterior viste cómo
  7465. 5:36:48puedes trabajar con objetos más
  7466. 5:36:50complejos con una estructura más
  7467. 5:36:52elaborada ahora vamos a empezar a hablar
  7468. 5:36:54sobre los objetos anidados que son
  7469. 5:36:57objetos contenidos dentro de otros
  7470. 5:37:00objetos esto te debe sonar familiar
  7471. 5:37:03porque es parecido al concepto de un
  7472. 5:37:05arreglo ni dado que es un arreglo dentro
  7473. 5:37:08de un arreglo en este caso tenemos un
  7474. 5:37:11objeto dentro de otro objeto
  7475. 5:37:13en este ejemplo estoy intentando el
  7476. 5:37:16código con cuatro espacios para que
  7477. 5:37:18podamos ver mejor la estructura del
  7478. 5:37:21objeto en javascript puedes intentar tu
  7479. 5:37:24código con dos o con cuatro espacios lo
  7480. 5:37:27importante es mantener la consistencia
  7481. 5:37:29en todo el código en todo el programa
  7482. 5:37:31bien ahora que ya mencionamos esto
  7483. 5:37:34comenzamos a analizar la estructura de
  7484. 5:37:36este ejemplo tenemos un objeto principal
  7485. 5:37:39que está asignado a la variable en mi
  7486. 5:37:41receta ese objeto principal tiene tres
  7487. 5:37:45propiedades descripción costo e
  7488. 5:37:47ingredientes nosotros nos vamos a
  7489. 5:37:50centrar en esta propiedad que tenemos
  7490. 5:37:52aquí cuyo valor es un objeto esto ya es
  7491. 5:37:56un objeto unidad es un objeto dentro de
  7492. 5:37:59un objeto
  7493. 5:38:00y luego tenemos aquí propiedades masas y
  7494. 5:38:03coberturas que a su vez tienen otros
  7495. 5:38:07objetos como propiedades así que tenemos
  7496. 5:38:10una estructura mucho más elaborada con
  7497. 5:38:12distintos niveles de objetos anidados
  7498. 5:38:15vamos a ver cómo podemos acceder a sus
  7499. 5:38:18elementos por ejemplo si queremos
  7500. 5:38:20acceder a este valor oa este valor como
  7501. 5:38:23podemos hacerlo
  7502. 5:38:25veamos vamos a comenzar accediendo a las
  7503. 5:38:27propiedades principales del objeto mi
  7504. 5:38:30reserva descripción costo e ingredientes
  7505. 5:38:35recuerda que primero escribimos el
  7506. 5:38:37nombre de la variable y luego el nombre
  7507. 5:38:39de la propiedad en este caso descripción
  7508. 5:38:42luego costos y luego ingredientes si
  7509. 5:38:47abrimos la consola para ver el resultado
  7510. 5:38:51podemos ver aquí en los distintos
  7511. 5:38:53valores la descripción es mi postre
  7512. 5:38:55favorito el costo es 15.6 y aquí el
  7513. 5:38:59ingrediente es la parte clave de este
  7514. 5:39:01ejemplo es que tenemos un objeto es un
  7515. 5:39:05objeto anidado que corresponde a la
  7516. 5:39:08propiedad ingredientes vamos a trabajar
  7517. 5:39:11con este objeto así que ella podemos
  7518. 5:39:14borrar estas líneas ya tenemos acceso a
  7519. 5:39:17este objeto
  7520. 5:39:18digamos que queremos acceder a los
  7521. 5:39:20ingredientes necesarios para crear la
  7522. 5:39:23masa de la receta la masa cómo podemos
  7523. 5:39:27hacerlo usando notación de punto
  7524. 5:39:29escribimos la propiedad que queremos
  7525. 5:39:31acceder puedes ver que estamos creando
  7526. 5:39:34como un camino de mi receta vamos a
  7527. 5:39:37ingredientes que es la propiedad del
  7528. 5:39:39objeto
  7529. 5:39:40y luego vamos a la siguiente propiedad
  7530. 5:39:42del objeto ni dado que es masa si
  7531. 5:39:46verificamos el valor en la consola
  7532. 5:39:49podemos ver aquí que es el objeto que
  7533. 5:39:52corresponde a masa harina sal y agua
  7534. 5:39:55harina sal y agua
  7535. 5:39:59vemos el objeto que corresponde a masa
  7536. 5:40:01genial ya estamos adentrándonos en la
  7537. 5:40:04estructura del objeto
  7538. 5:40:07una vez que tenemos ese objeto que
  7539. 5:40:09corresponde a massa podemos seguir
  7540. 5:40:11adentrándonos aún más podemos acceder al
  7541. 5:40:14valor de harina de sal y de agua para
  7542. 5:40:17saber cuánto necesitamos de cada uno
  7543. 5:40:20tenemos masa vamos a acceder al valor de
  7544. 5:40:25la harina y luego al valor de sal cuánta
  7545. 5:40:29sal necesitamos y luego a cuánta agua
  7546. 5:40:32necesitamos
  7547. 5:40:34arena sal y agua
  7548. 5:40:37la propiedad correspondiente
  7549. 5:40:39veamos en la consola podemos ver 100
  7550. 5:40:43gramos de harina una cucharadita de sal
  7551. 5:40:46y una taza de agua que es exactamente
  7552. 5:40:50los valores que tenemos aquí 100 gramos
  7553. 5:40:52una cucharadita y una taza de agua
  7554. 5:40:56genial
  7555. 5:40:58hasta ahora hemos estado usando la
  7556. 5:41:00anotación de punto pero también podemos
  7557. 5:41:03usar la anotación de corchetes en este
  7558. 5:41:06caso lo único que tenemos que hacer es
  7559. 5:41:08reemplazar el punto por corchetes bar de
  7560. 5:41:11corchetes y escribir la propiedad entre
  7561. 5:41:14comillas dentro de los corchetes el
  7562. 5:41:17resultado va a ser exactamente igual
  7563. 5:41:19vamos a
  7564. 5:41:21adaptarlo aquí anotación de corchetes
  7565. 5:41:25cada una de estas propiedades y vas a
  7566. 5:41:28ver el resultado
  7567. 5:41:29100 gramos una cucharadita y una taza
  7568. 5:41:32exactamente lo que teníamos antes con la
  7569. 5:41:35anotación de punto así que todo funciona
  7570. 5:41:38perfectamente como esperábamos la
  7571. 5:41:42ventaja de usar notación de corchetes es
  7572. 5:41:44que podemos escribir aquí una variable
  7573. 5:41:47así que podríamos personalizar los
  7574. 5:41:50valores que accedemos dependiendo del
  7575. 5:41:52valor de una variable esto es muy útil
  7576. 5:41:55por ejemplo si estás interactuando con
  7577. 5:41:57el usuario y el usuario escoge una
  7578. 5:41:58opción si quiere la cantidad de harina o
  7579. 5:42:01la cantidad de azúcar la cantidad de
  7580. 5:42:02chocolate podemos personalizar este
  7581. 5:42:06camino que nos lleva a ese valor con
  7582. 5:42:09esas variables pero solamente es
  7583. 5:42:12obligatoria la anotación de corchetes
  7584. 5:42:14cuando el nombre de la propiedad tiene
  7585. 5:42:16un espacio y si necesitas usar una
  7586. 5:42:18variable si necesitas usar la notación
  7587. 5:42:20de corchetes bien veamos ahora cómo
  7588. 5:42:23podemos acceder a los elementos de la
  7589. 5:42:25cobertura en lugar de la masa
  7590. 5:42:28vamos a borrar esta parte de la línea y
  7591. 5:42:31nuevamente volvemos a ingredientes
  7592. 5:42:34luego de acceder al objeto que
  7593. 5:42:36corresponde ingredientes vamos a acceder
  7594. 5:42:39a la cobertura con notación de punto
  7595. 5:42:42veamos la consola aquí tenemos a azúcar
  7596. 5:42:45chocolate y mantequilla que es el objeto
  7597. 5:42:49que corresponde a cobertura una vez que
  7598. 5:42:51tenemos ese objeto podemos acceder a sus
  7599. 5:42:54valores vamos a hacerlo con notación de
  7600. 5:42:56punto aquí tenemos a azúcar chocolate y
  7601. 5:42:59mantequilla cada una de estas líneas no
  7602. 5:43:02retorna el valor de la propiedad
  7603. 5:43:04específica 120 gramos de azúcar 4
  7604. 5:43:07cucharadas de chocolate y 200 gramos de
  7605. 5:43:10mantequilla
  7606. 5:43:12perfecto ya sabes cómo usar la anotación
  7607. 5:43:15de punto puedes ver cómo estamos
  7608. 5:43:17formando como un camino vamos a ir paso
  7609. 5:43:20por paso en este camino comenzamos con
  7610. 5:43:23el nombre de la variable que contiene el
  7611. 5:43:25objeto principal
  7612. 5:43:27luego vamos a ingredientes que es la
  7613. 5:43:29propiedad que queremos acceder luego en
  7614. 5:43:33cada uno de ellos accedemos a cobertura
  7615. 5:43:36estamos yendo cada vez más adentro en la
  7616. 5:43:38estructura de afuera hacia adentro
  7617. 5:43:40y luego de cobertura accedemos a la
  7618. 5:43:43propiedad que corresponde a azúcar
  7619. 5:43:45chocolate y mantequilla al final para
  7620. 5:43:48llegar a este valor podemos detenernos
  7621. 5:43:51en cualquier punto del camino por
  7622. 5:43:53ejemplo si solo necesitamos acceder al
  7623. 5:43:56objeto de la cobertura podemos acceder
  7624. 5:43:58al objeto art sin acceder a algunas de
  7625. 5:44:01sus propiedades así verdad con este
  7626. 5:44:03valor podemos trabajar en nuestro
  7627. 5:44:05programa si lo necesitamos o podemos
  7628. 5:44:08seguir adentrándonos en su estructura
  7629. 5:44:11con notación de punto y también podemos
  7630. 5:44:14usar notación de corchetes en cualquier
  7631. 5:44:16punto de este camino por ejemplo
  7632. 5:44:19podríamos usar aquí la notación de
  7633. 5:44:21corchetes para acceder a la cobertura
  7634. 5:44:23vamos a reemplazarlo en cada uno de
  7635. 5:44:26estos
  7636. 5:44:28de estas líneas y
  7637. 5:44:31vemos exactamente los mismos valores
  7638. 5:44:33porque el código funciona exactamente
  7639. 5:44:36igual esto es muy útil si necesitamos
  7640. 5:44:38reemplazar el valor de una variable para
  7641. 5:44:41cambiar el resultado dependiendo del
  7642. 5:44:43valor de la variable genial ya sabes
  7643. 5:44:46acceder a cada uno de estos elementos
  7644. 5:44:48vamos a cambiar nuevamente anotación de
  7645. 5:44:51punto
  7646. 5:44:52ahora veamos el recorrido que estamos
  7647. 5:44:54haciendo mi receta ingredientes
  7648. 5:44:57cobertura y luego vamos a cada uno de
  7649. 5:45:00ellos azúcar chocolate mantequilla
  7650. 5:45:02cuando accedamos a los elementos de la
  7651. 5:45:04masa y vamos de mi receta a ingredientes
  7652. 5:45:07luego a masa y harina sal y agua nos
  7653. 5:45:11vamos adentrando en la estructura es muy
  7654. 5:45:13importante que sepas trabajar con
  7655. 5:45:15objetos anidados porque ellos son muy
  7656. 5:45:18importantes para el formato jason jason
  7657. 5:45:21significa javascript up the nation es un
  7658. 5:45:25formato que es muy muy utilizado en
  7659. 5:45:27desarrollo web así que si te interesa
  7660. 5:45:30esa área o cualquier área relacionada
  7661. 5:45:32con javascript va a ser muy útil saber
  7662. 5:45:34cómo trabajar con objetos anidados
  7663. 5:45:37comencemos con nuestro siguiente tema
  7664. 5:45:46también podemos acceder a arreglos
  7665. 5:45:48anidados que son las reglas que se
  7666. 5:45:50encuentran dentro de estructuras más
  7667. 5:45:52complejas como por ejemplo dentro de un
  7668. 5:45:55objeto que es parte de un arreglo
  7669. 5:45:58veamos cómo podemos acceder a sus
  7670. 5:45:59elementos si definimos un arreglo que va
  7671. 5:46:04a contener dos objetos con listas de
  7672. 5:46:06plantas en este caso la primera
  7673. 5:46:09propiedad va a ser tipo no las vamos a
  7674. 5:46:12rodear con comillas pero ya va script lo
  7675. 5:46:15va a ser automáticamente por nosotros
  7676. 5:46:17porque solo tienen una palabra el nombre
  7677. 5:46:19de la propiedad cuál va a ser nuestra
  7678. 5:46:22lista de flores rosas
  7679. 5:46:24tulipanes y dientes de león bien este es
  7680. 5:46:29nuestro primer objeto en el arreglo
  7681. 5:46:32ahora para nuestro segundo objeto vamos
  7682. 5:46:35a usar las mismas propiedades vamos a
  7683. 5:46:38escribirlas
  7684. 5:46:40el tipo de planta va a ser árboles
  7685. 5:46:44y vamos a tener una lista de árboles
  7686. 5:46:46abetos
  7687. 5:46:48vino
  7688. 5:46:50y abedul tres árboles y aquí quitamos
  7689. 5:46:54las líneas en blanco que sobra y tenemos
  7690. 5:46:58nuestro arreglo de objetos estos
  7691. 5:47:02arreglos más pequeños que puedes ver
  7692. 5:47:04aquí son lo que llamamos los arreglos
  7693. 5:47:06anidados los arreglos son parte de un
  7694. 5:47:09objeto y a su vez ese objeto es parte de
  7695. 5:47:12otro arreglo entonces la sintaxis que
  7696. 5:47:15tenemos que usar para acceder a sus
  7697. 5:47:17elementos individuales es distinta vamos
  7698. 5:47:21a ver cómo podemos acceder a esos
  7699. 5:47:23elementos si queremos acceder a este
  7700. 5:47:27elemento por ejemplo la primera flor
  7701. 5:47:30en la estructura
  7702. 5:47:32vamos a crear una variable llamada
  7703. 5:47:35primera flor y vamos a asignarle ese
  7704. 5:47:37valor y luego le vamos a mostrar pero
  7705. 5:47:40como podemos acceder a ese valor
  7706. 5:47:42recuerda que la estructura principal la
  7707. 5:47:44estructura que contiene a los objetos es
  7708. 5:47:47un arreglo toda esta estructura es un
  7709. 5:47:49arreglo cada objeto es un elemento de
  7710. 5:47:52ese arreglo este objeto está en el
  7711. 5:47:55índice cero y este objeto está en el
  7712. 5:47:57índice 1 así que inicialmente tenemos
  7713. 5:48:01que usar el índice 0 para acceder a este
  7714. 5:48:03objeto que contiene este elemento al
  7715. 5:48:06cual queremos acceder
  7716. 5:48:08escribimos el nombre de la variable mis
  7717. 5:48:12plantas
  7718. 5:48:13y usamos el índice de 0 para acceder a
  7719. 5:48:18este objeto luego que tenemos ese objeto
  7720. 5:48:20tenemos que acceder a la propiedad
  7721. 5:48:22correspondiente lista como la propiedad
  7722. 5:48:25tiene una sola palabra podemos usar la
  7723. 5:48:28anotación de punto aquí y accedemos a
  7724. 5:48:32esta lista y luego que accedemos a esa
  7725. 5:48:35lista en este momento ya tenemos este
  7726. 5:48:38arreglo completo pero para acceder a la
  7727. 5:48:41primera flor
  7728. 5:48:43necesitamos usar su índice
  7729. 5:48:45correspondiente recuerda que este
  7730. 5:48:47elemento es parte de este arreglo es el
  7731. 5:48:50primer elemento de la regla
  7732. 5:48:53normalmente esto es un cambio en nuestra
  7733. 5:48:56visión general de las estructuras porque
  7734. 5:48:58normalmente estamos acostumbrados a
  7735. 5:49:00trabajar con arreglos horizontalmente
  7736. 5:49:03pero piensa que esto es simplemente un
  7737. 5:49:05arreglo en orden vertical los espacios
  7738. 5:49:08no afectan en nada es como si tuviéramos
  7739. 5:49:10esto así creo que esto puede ser útil
  7740. 5:49:13para que visualices la estructura así
  7741. 5:49:17aquí rosa sería el primer elemento en el
  7742. 5:49:20índice cero
  7743. 5:49:22así que lo agregamos aquí luego de
  7744. 5:49:25acceder a la lista pero normalmente en
  7745. 5:49:28javascript cuando estamos usando este
  7746. 5:49:30tipo de formato podemos utilizar
  7747. 5:49:33esta forma de escribir el arreglo
  7748. 5:49:35vertical y vemos cada uno de los
  7749. 5:49:38elementos en líneas separadas
  7750. 5:49:41aquí vemos cómo podemos acceder a la
  7751. 5:49:44primera flor vamos a mostrarla en la
  7752. 5:49:46consola
  7753. 5:49:48y efectivamente tenemos el valor rosas
  7754. 5:49:51la cadena de caracteres rosas repasemos
  7755. 5:49:54cómo llegamos hasta rosas comenzamos con
  7756. 5:49:57el nombre de la variable principal mis
  7757. 5:50:00plantas que contiene el arreglo
  7758. 5:50:02luego accedemos al primer objeto del
  7759. 5:50:05arreglo que es este
  7760. 5:50:07luego accedemos a la propiedad lista de
  7761. 5:50:10ese arreglo esto
  7762. 5:50:13y finalmente accedemos a el elemento en
  7763. 5:50:16el índice 0 del arreglo este que tenemos
  7764. 5:50:19acá y finalmente llegamos al valor rosas
  7765. 5:50:22bien ahora vamos a intentarlo con otro
  7766. 5:50:25elemento pero ahora vamos a acceder a
  7767. 5:50:27este objeto de árboles vamos a definir
  7768. 5:50:30una variable que se llame segundo árbol
  7769. 5:50:33como podemos acceder al segundo árbol de
  7770. 5:50:35la lista el pino
  7771. 5:50:39para acceder a ese valor lo primero que
  7772. 5:50:41tenemos que hacer es usar la variable
  7773. 5:50:43principal luego tenemos que usar el
  7774. 5:50:46índice del objeto en este caso es el
  7775. 5:50:49segundo objeto de la lista así que
  7776. 5:50:51usamos el índice uno aquí luego
  7777. 5:50:53accedemos a la lista lista
  7778. 5:50:56y finalmente usamos el índice del
  7779. 5:50:59elemento en el arreglo en este arreglo
  7780. 5:51:02como es el segundo elemento
  7781. 5:51:04sería el índice uno aunque y esa es la
  7782. 5:51:09secuencia que seguimos la variable
  7783. 5:51:11principal luego el objeto
  7784. 5:51:13luego su propiedad el arreglo y el
  7785. 5:51:17índice que corresponde genial vamos a
  7786. 5:51:19mostrar el segundo árbol en la consola y
  7787. 5:51:23aquí vemos pino el segundo árbol de la
  7788. 5:51:26lista efectivamente bien ahora intenta
  7789. 5:51:29acceder a estos elementos abedul a
  7790. 5:51:32tulipanes a dientes de león y también
  7791. 5:51:35puedes intentar acceder a abetos a los
  7792. 5:51:39elementos que no accedemos en el ejemplo
  7793. 5:51:41puedes ver que simplemente estamos
  7794. 5:51:43siguiendo un recorrido a través de la
  7795. 5:51:45estructura vamos en la variable
  7796. 5:51:47principal que contiene el arreglo luego
  7797. 5:51:50entramos en ese arreglo a través de sus
  7798. 5:51:52índices y luego vamos dentro de los
  7799. 5:51:55objetos con sus propiedades y los
  7800. 5:51:57valores de las propiedades
  7801. 5:51:59bien ya sabes cómo acceder a un elemento
  7802. 5:52:02de un arreglo anidada ya sabes cómo
  7803. 5:52:05trabajar con estructuras más complejas
  7804. 5:52:07en javascript
  7805. 5:52:13comencemos con nuestros mini proyectos
  7806. 5:52:16este medio proyecto está enfocado en
  7807. 5:52:18actualizar una colección de discos vamos
  7808. 5:52:22a practicar tus conocimientos de objetos
  7809. 5:52:24de condicionales de cómo puedes acceder
  7810. 5:52:27actualizar y eliminar las propiedades de
  7811. 5:52:30un objeto y mucho más así que comencemos
  7812. 5:52:33leamos esta descripción que tenemos aquí
  7813. 5:52:35este comentario tenemos un objeto que
  7814. 5:52:38representa parte de una colección de
  7815. 5:52:40álbumes musicales cada álbum tiene un
  7816. 5:52:44número de identificación único al cual
  7817. 5:52:46lo vamos a llamar haití y de en inglés
  7818. 5:52:50haití se refiere al número de
  7819. 5:52:51identificación único este haití está
  7820. 5:52:55asociado a otras propiedades con un
  7821. 5:52:57objeto anidado aquí tenemos la colección
  7822. 5:52:59de discos
  7823. 5:53:00puedes ver que aquí tenemos un objeto
  7824. 5:53:03asignado a una variable y dentro de su
  7825. 5:53:06objeto tenemos dos propiedades estos
  7826. 5:53:09números son digamos los haití o los
  7827. 5:53:12números de identificación único de cada
  7828. 5:53:14uno de esos álbumes
  7829. 5:53:16esos números están asociados a objetos
  7830. 5:53:19anidados que describen en más detalle el
  7831. 5:53:23álbum tenemos un álbum con la data
  7832. 5:53:25completa título del álbum artista y
  7833. 5:53:28canciones y tenemos otro álbum que no
  7834. 5:53:31tiene todas esas propiedades por eso
  7835. 5:53:35aquí vemos que no todos los álbumes
  7836. 5:53:36tienen la información completa
  7837. 5:53:39aquí vemos una descripción de cómo debe
  7838. 5:53:41ser la función define una función
  7839. 5:53:44llamada actualizar discos que tome los
  7840. 5:53:46siguientes parámetros va a tener cuatro
  7841. 5:53:49parámetros discos que es el objeto que
  7842. 5:53:52representa la colección de discos el
  7843. 5:53:55aire y del disco del álbum que queremos
  7844. 5:53:58modificar o con el cual queremos
  7845. 5:54:00trabajar la propiedad que puede ser
  7846. 5:54:03artista o canciones y el valor de esa
  7847. 5:54:06propiedad
  7848. 5:54:07tu mente es completar la función
  7849. 5:54:09implementando las siguientes reglas para
  7850. 5:54:12modificar el objeto pasado la función
  7851. 5:54:15que si valor es una cadena vacía
  7852. 5:54:19elimina la propiedad del álbum
  7853. 5:54:21correspondiente es lo que debes hacer
  7854. 5:54:23debes simplemente eliminar esa propiedad
  7855. 5:54:26vamos a ir implementando cada una de
  7856. 5:54:28estas reglas paso a paso pero como el
  7857. 5:54:30proceso detallado
  7858. 5:54:32primero vamos a definir la función
  7859. 5:54:35escriba aquí function y el nombre era
  7860. 5:54:39actualizar discos
  7861. 5:54:42va a tener cuatro parámetros discos ay
  7862. 5:54:46de
  7863. 5:54:46propiedad y valor para implementar la
  7864. 5:54:50primera regla tenemos que confirmar si
  7865. 5:54:53el valor del parámetro valor es una
  7866. 5:54:57cadena vacía
  7867. 5:54:59si esto es verdadero aquí estamos usando
  7868. 5:55:02el operador de igualdad estricta para
  7869. 5:55:05confirmar que el valor sea igual a una
  7870. 5:55:07cadena de caracteres vacía en este caso
  7871. 5:55:10nos piden que eliminemos la propiedad
  7872. 5:55:13que pasamos aquí como argumento y como
  7873. 5:55:16hacemos esto bueno borramos la propiedad
  7874. 5:55:21del álbum correspondiente
  7875. 5:55:23primero accedemos al objeto que contiene
  7876. 5:55:27los álbumes en este caso discos también
  7877. 5:55:29la podemos llamar colección luego
  7878. 5:55:32connotación de corchetes aquí estamos
  7879. 5:55:35accediendo al álbum a partir de su haití
  7880. 5:55:38de su número de identificación único
  7881. 5:55:40esto nos va a retornar el objeto anidado
  7882. 5:55:43que corresponde al álbum por ejemplo si
  7883. 5:55:47el haití es este que tenemos aquí este
  7884. 5:55:50sería el objeto anidado eso es lo que
  7885. 5:55:53tendríamos aquí y luego nos falta
  7886. 5:55:55acceder a la propiedad que especificamos
  7887. 5:55:58como argumento artista o canciones o
  7888. 5:56:01cualquier otra propiedad en este caso
  7889. 5:56:03vamos a acceder a la propiedad y vamos a
  7890. 5:56:05eliminarlo
  7891. 5:56:06genial ya tenemos la primera regla
  7892. 5:56:09implementada ahora vamos a la segunda y
  7893. 5:56:11a la tercera regla que están
  7894. 5:56:13estrechamente relacionadas
  7895. 5:56:15si propiedad el valor de ese parámetro
  7896. 5:56:17es igual a la cadena de caracteres
  7897. 5:56:20canciones canciones pero el álbum no
  7898. 5:56:24tiene esa propiedad no tiene una
  7899. 5:56:27propiedad llamada canciones crea un
  7900. 5:56:29arreglo vacío
  7901. 5:56:31vacío y agrega valor a ese arreglo vamos
  7902. 5:56:36a dar ver esto con más detalle al leerlo
  7903. 5:56:39otra vez si propiedad es igual a la
  7904. 5:56:42cadena de caracteres canciones significa
  7905. 5:56:44que queremos trabajar con esa propiedad
  7906. 5:56:46pero el álbum que especificamos si ese
  7907. 5:56:49álbum no tiene una propiedad llamada
  7908. 5:56:51canciones debemos crear un arreglo vacío
  7909. 5:56:55y agregarle valor a ese arreglo vamos a
  7910. 5:56:58crear la propiedad vamos a inicializar
  7911. 5:57:00su valor a un arreglo vacío y luego
  7912. 5:57:03vamos a agregar el valor a ese arreglo
  7913. 5:57:05vamos a hacerlo aquí en nuestra segunda
  7914. 5:57:08condición el set
  7915. 5:57:11si propiedad es igual a canciones aquí
  7916. 5:57:15estamos usando el operador de igualdad
  7917. 5:57:17estricta vamos a implementar parte de
  7918. 5:57:20esta regla porque nuestra implementación
  7919. 5:57:23va a combinar la segunda y la tercera
  7920. 5:57:24regla ya vas a ver aquí estamos
  7921. 5:57:27accediendo al objeto correspondiente de
  7922. 5:57:30la objetualidad luego accedemos a la
  7923. 5:57:32propiedad canciones porque ya sabemos
  7924. 5:57:34aquí que propiedad es igual a canciones
  7925. 5:57:38y le asignamos un arreglo vacío luego
  7926. 5:57:41para agregar el valor a ese arreglo
  7927. 5:57:44vacío llamamos al método push
  7928. 5:57:47y agregamos el valor que pasamos como
  7929. 5:57:50argumento
  7930. 5:57:51aquí vamos a tener un arreglo porque
  7931. 5:57:55estamos asignando un arreglo vacío y
  7932. 5:57:58luego les vamos a agregar el valor que
  7933. 5:58:00va a ser el primer elemento pero hay un
  7934. 5:58:02detalle no estamos verificando si el
  7935. 5:58:05objeto contenía esa propiedad o no si
  7936. 5:58:08canciones ya existía en el objeto o no
  7937. 5:58:11por qué porque vamos a implementar la
  7938. 5:58:14tercera regla en esta misma parte de
  7939. 5:58:17nuestro código en esta misma cláusula la
  7940. 5:58:20tercera regla dice si propiedad es igual
  7941. 5:58:22a la cadena de caracteres canciones aquí
  7942. 5:58:26tenemos ya esa condición que especifica
  7943. 5:58:28que es igual a canciones
  7944. 5:58:31y valor no es una cadena vacía
  7945. 5:58:35o sea si esta condición es falsa y esta
  7946. 5:58:39es verdadera
  7947. 5:58:42entonces debes agregar el valor al final
  7948. 5:58:45del arreglo de canciones del álbum
  7949. 5:58:47correspondiente
  7950. 5:58:49lo que esto no estoy diciendo es
  7951. 5:58:51simplemente que si queremos agregar una
  7952. 5:58:53canción a la lista de canciones y esa
  7953. 5:58:56propiedad ya existe en el álbum
  7954. 5:58:58correspondiente debemos agregar ese
  7955. 5:59:00valor al final del arreglo del álbum que
  7956. 5:59:03corresponde claro lo que vamos a hacer
  7957. 5:59:06en este caso va a ser usar una sintaxis
  7958. 5:59:08que es concisa y fácil de usar en
  7959. 5:59:10javascript pero que es nueva no la hemos
  7960. 5:59:13visto hasta ahora en el curso aquí la
  7961. 5:59:16tenemos que debe resultar familiar este
  7962. 5:59:19operador
  7963. 5:59:20este es el operador lógico ahora lo que
  7964. 5:59:22este operador nos permite hacer es
  7965. 5:59:24escoger entre dos opciones primero se va
  7966. 5:59:27a intentar acceder a esa propiedad en el
  7967. 5:59:29álbum correspondiente con esta parte de
  7968. 5:59:32la expresión si ese valor no es anti
  7969. 5:59:35find
  7970. 5:59:37este va a ser el valor resultante y se
  7971. 5:59:39va a asignar a la propiedad o sea se va
  7972. 5:59:42a mantener intacto la lista de canciones
  7973. 5:59:44pero si este valor es anti find el
  7974. 5:59:48operador over nos permite como
  7975. 5:59:50especificar un valor de respaldo que en
  7976. 5:59:53este caso va a ser un arreglo vacío esto
  7977. 5:59:57nos permite evitar el caso en el que
  7978. 5:59:59podamos intentar llamar a un método o
  7979. 6:00:01usar ese valor y sea aún diferente ese
  7980. 6:00:04valor lo que va a generar un error si
  7981. 6:00:07este valor es dónde find vamos a tener
  7982. 6:00:10un arreglo vacío que sirve como un
  7983. 6:00:12respaldo con un arreglo vacío aquí si
  7984. 6:00:15vamos a poder llamar al método push de
  7985. 6:00:18forma segura y agregar ese valor no
  7986. 6:00:20vamos a tener ningún error así ya
  7987. 6:00:23estamos cubriendo la segunda y la
  7988. 6:00:25tercera regla si este valor no es anti
  7989. 6:00:28find lo asignamos y luego le agregamos
  7990. 6:00:31el valor y si este valor es handy find
  7991. 6:00:34entonces asignamos un arreglo vacío como
  7992. 6:00:37el valor inicial y le agregamos su valor
  7993. 6:00:40bien ahora podemos con la cuarta y
  7994. 6:00:43última regla si valor no es una cadena
  7995. 6:00:46vacía o sea si esta condición es falsa y
  7996. 6:00:51propiedad no es igual a la cadena de
  7997. 6:00:54caracteres canciones asigna el valor del
  7998. 6:00:57parámetro valor a la propiedad si la
  7999. 6:01:01propiedad no existe debes crearla y
  8000. 6:01:03asignar este valor todo esto lo podemos
  8001. 6:01:06implementar simplemente con la cláusula
  8002. 6:01:08euros que sirve como respaldo porque
  8003. 6:01:12debemos realizar esto si ambas
  8004. 6:01:14condiciones son falsas y en ese caso qué
  8005. 6:01:17es lo que vamos a hacer vamos a
  8006. 6:01:19asignar el valor a la propiedad con esta
  8007. 6:01:24línea simplemente lo que estamos
  8008. 6:01:27haciendo aquí es tomando el valor y lo
  8009. 6:01:29asignamos a la propiedad del álbum
  8010. 6:01:31específico si la propiedad no existe se
  8011. 6:01:35va a crear y si ya existe se va a
  8012. 6:01:37actualizar así que estamos cubriendo
  8013. 6:01:39esos casos posibles
  8014. 6:01:41bien ahora vamos a
  8015. 6:01:44probar nuestra función llamándola
  8016. 6:01:47primero vamos a acceder a la propiedad
  8017. 6:01:50título del álbum de la colección de
  8018. 6:01:53discos vamos a acceder a la propiedad
  8019. 6:01:56título del álbum del álbum
  8020. 6:01:58correspondiente en la colección de
  8021. 6:02:01discos vamos a acceder a esa propiedad
  8022. 6:02:03antes de hacer el cambio y después
  8023. 6:02:06aquí estamos llamando a la función
  8024. 6:02:08actualizar discos pasamos como argumento
  8025. 6:02:12la colección de discos en este caso no
  8026. 6:02:15lo estamos usando como una variable
  8027. 6:02:17global sino que la estamos pasando como
  8028. 6:02:19argumento pasamos el ai 17 8 5 3 que
  8029. 6:02:23corresponde aquí al álbum de los vikings
  8030. 6:02:277 853
  8031. 6:02:29pasamos el nombre de la propiedad que
  8032. 6:02:32queremos actualizar título del álbum y
  8033. 6:02:34el valor es una cadena vacía porque
  8034. 6:02:36vamos a probar esta primera condición
  8035. 6:02:38esta línea debería permitirnos borrar
  8036. 6:02:42esa propiedad título del arco así que
  8037. 6:02:44aquí el resultado debería ser dónde find
  8038. 6:02:47vamos a ver y aquí lo podemos ver
  8039. 6:02:50bitches quest es el título del álbum al
  8040. 6:02:54principio y luego tenemos a different
  8041. 6:02:56porque borramos esa propiedad
  8042. 6:02:59bien ahora actualizamos esto al otro
  8043. 6:03:02álbum 5 439 de abba gold
  8044. 6:03:06cambiamos aquí el haití del álbum y
  8045. 6:03:09vamos a probar la segunda condición si
  8046. 6:03:13la propiedad es igual a canciones veamos
  8047. 6:03:16qué ocurre
  8048. 6:03:17vamos a agregar la canción
  8049. 6:03:20mamma mía
  8050. 6:03:22actualmente el objeto al principio no
  8051. 6:03:24tiene una propiedad canciones aquí lo
  8052. 6:03:27puedes ver solo tiene un título del
  8053. 6:03:29álbum así que nuestra función debería
  8054. 6:03:33asignar un arreglo vacío y luego agregar
  8055. 6:03:36el valor que en este caso es mamá mía a
  8056. 6:03:39esa propiedad
  8057. 6:03:41para ver la propiedad de canciones vamos
  8058. 6:03:45a cambiar la anotación de punto aquí y
  8059. 6:03:47veamos la consola
  8060. 6:03:49exactamente lo que esperábamos primero
  8061. 6:03:51vemos donde find porque la propiedad
  8062. 6:03:53canciones no existía y luego vemos un
  8063. 6:03:56arreglo con el valor mamá mía
  8064. 6:03:59vamos a seguir trabajando con el álbum 5
  8065. 6:04:02439 y en este caso vamos a asignar el
  8066. 6:04:07artista que va a ser el grupo abba
  8067. 6:04:11bien vamos a cambiar aquí la propiedad
  8068. 6:04:14para poder verla en la consola y lo que
  8069. 6:04:18esperábamos de dónde find la propiedad
  8070. 6:04:21de artista pasó a ser haba antes no
  8071. 6:04:24existía y aquí la estamos agregando con
  8072. 6:04:26la cláusula euros que sirve como un
  8073. 6:04:29respaldo bien buen trabajo ya
  8074. 6:04:32completamos nuestro mini proyecto y
  8075. 6:04:35prácticas de cómo trabajar con funciones
  8076. 6:04:37parámetros argumentos condicionales como
  8077. 6:04:40eliminar una propiedad de un objeto cómo
  8078. 6:04:42acceder a una propiedad aprendí esto
  8079. 6:04:45esta nueva sintaxis que nos permite
  8080. 6:04:47asignar un valor que sirva como respaldo
  8081. 6:04:50si este valor es aun de find y
  8082. 6:04:53trabajamos también con todas las
  8083. 6:04:54cláusulas de un condicional infeliz y
  8084. 6:04:56else buen trabajo hasta ahora durante el
  8085. 6:04:59curso y felicitaciones por llegar hasta
  8086. 6:05:01este mini proyecto pasemos a nuestro
  8087. 6:05:03siguiente tema
  8088. 6:05:10ya sabes cómo trabajar con objetos en
  8089. 6:05:12javascript este es un tema muy
  8090. 6:05:14importante así que ahora vamos a pasar a
  8091. 6:05:17otro aspecto del lenguaje de
  8092. 6:05:19programación que nos va a permitir
  8093. 6:05:20escribir programas muy poderosos mucho
  8094. 6:05:24más poderosos de los que hemos podido
  8095. 6:05:26escribir hasta ahora estos son los
  8096. 6:05:28ciclos o bucles los ciclos o bucles nos
  8097. 6:05:31permiten repetir una secuencia de
  8098. 6:05:34instrucciones un número específico de
  8099. 6:05:36veces tenemos dos tipos de ciclos ciclos
  8100. 6:05:39o bucles while y ciclos o bucles faure
  8101. 6:05:43vamos a comenzar viendo los ciclos web
  8102. 6:05:45en español traducimos el término a ciclo
  8103. 6:05:49o bucle se usan de forma prácticamente
  8104. 6:05:53equivalente en inglés el término
  8105. 6:05:55original se denomina el loop yo
  8106. 6:05:59normalmente me voy a referir a ellos
  8107. 6:06:01como ciclos pero bucles también es una
  8108. 6:06:03traducción muy muy aceptada y se usa de
  8109. 6:06:05forma equivalente
  8110. 6:06:07vamos a hablar sobre los ciclos web los
  8111. 6:06:10ciclos wayne se usan cuando no tenemos
  8112. 6:06:14un número específico de iteraciones una
  8113. 6:06:17instalación es una repetición del bloque
  8114. 6:06:19de código que queremos repetir cuando no
  8115. 6:06:22sabemos el número específico de
  8116. 6:06:24iteraciones que queremos realizar pero
  8117. 6:06:26si sabemos qué es lo que tiene que ser
  8118. 6:06:29cierto para continuar el proceso usamos
  8119. 6:06:33un ciclo web hasta este momento con lo
  8120. 6:06:36que has aprendido cómo mostraría un
  8121. 6:06:38mensaje tres cuatro o cinco veces en la
  8122. 6:06:42consola por ejemplo el mensaje hola
  8123. 6:06:44mundo me imagino que lo que harías hasta
  8124. 6:06:46este momento es escribir con su punto lo
  8125. 6:06:50con el mismo mensaje tantas veces como
  8126. 6:06:53quieres mostrar el mensaje pero puedes
  8127. 6:06:55ver que rápidamente esto no va a ser
  8128. 6:06:58práctico porque por ejemplo si
  8129. 6:07:00quisiéramos repetir este mensaje 20
  8130. 6:07:03veces tendríamos que tener 20 líneas
  8131. 6:07:07para algo tan sencillo como mostrar un
  8132. 6:07:09mensaje o hacer una tarea repetitiva
  8133. 6:07:12no deberíamos tomar tantas líneas que
  8134. 6:07:14van a hacer que nuestro código sea casi
  8135. 6:07:16imposible de leer e ineficiente para
  8136. 6:07:19escribir imagínate los programas mucho
  8137. 6:07:21más complejos que controlan funciones
  8138. 6:07:23muchísimos más complejas para eso para
  8139. 6:07:27evitarnos todo este problema de repetir
  8140. 6:07:28código tenemos los ciclos web nos
  8141. 6:07:32permiten escribir ese código simplemente
  8142. 6:07:35con una estructura específica y
  8143. 6:07:37repetirlo vamos a definir una variable y
  8144. 6:07:40igual a cero le asignamos ese valor
  8145. 6:07:44y decimos while esta es la palabra clave
  8146. 6:07:47que usamos para definir un ciclo while
  8147. 6:07:51dentro de los paréntesis tenemos que
  8148. 6:07:53escribir la condición que tiene que ser
  8149. 6:07:56verdadera para continuar el proceso
  8150. 6:08:00puedes pensarlo así la palabra while
  8151. 6:08:02significa en español mientras
  8152. 6:08:05entonces diríamos mientras esta
  8153. 6:08:08condición sea verdadera ejecutamos el
  8154. 6:08:11código que va a estar entre llaves
  8155. 6:08:13digamos que por ejemplo mientras sea
  8156. 6:08:16menor o igual que 3 entonces vamos a
  8157. 6:08:19mostrar un mensaje cual mensaje va a ser
  8158. 6:08:23con su punto lo hola mundo pero tenemos
  8159. 6:08:27que hacer una pequeña actualización aquí
  8160. 6:08:30vamos a explicar todos estos elementos
  8161. 6:08:32esta es la condición que tiene que ser
  8162. 6:08:34verdadera para que estas líneas de
  8163. 6:08:36código se repitan un número de veces
  8164. 6:08:40en el momento en que la condición sea
  8165. 6:08:42falsa y se vuelva a evaluar el proceso
  8166. 6:08:45se detiene
  8167. 6:08:46como inicialmente cero esta condición es
  8168. 6:08:50verdadera y estas líneas se van a
  8169. 6:08:52ejecutar
  8170. 6:08:53mostramos el mensaje e incrementamos el
  8171. 6:08:56valor de i porque si no si dejamos el
  8172. 6:08:59valor de ir siempre en cero
  8173. 6:09:01esta condición siempre va a ser
  8174. 6:09:02verdadera y nunca se va a detener el
  8175. 6:09:04proceso claro en teoría en la práctica
  8176. 6:09:07normalmente podemos detener esos ciclos
  8177. 6:09:10que se llaman ciclos infinitos que no se
  8178. 6:09:13detienen por lógica del programa
  8179. 6:09:16por eso tenemos que actualizar la
  8180. 6:09:19variable y la estamos incrementando así
  8181. 6:09:22que eventualmente esta condición va a
  8182. 6:09:24ser falsa y el proceso se va a detener
  8183. 6:09:26se evalúa la condición cada vez que
  8184. 6:09:28vamos a repetir el código sigue siendo
  8185. 6:09:31verdadera si es verdadera este código se
  8186. 6:09:33ejecuta sigue siendo verdadera este
  8187. 6:09:36código se ejecuta sigue siendo verdadera
  8188. 6:09:39este código se ejecuta y luego si es
  8189. 6:09:42falsa ya el código no se ejecuta y se
  8190. 6:09:46continúa el proceso normal más allá del
  8191. 6:09:49ciclo pues si tuviéramos líneas de
  8192. 6:09:51código aquí se ejecutaría luego de que
  8193. 6:09:54el ciclo terminará veamos la consola
  8194. 6:09:57para que veas aquí podemos ver son
  8195. 6:10:00cuatro veces que se ejecuta el código
  8196. 6:10:02porque la condición sigue siendo
  8197. 6:10:06verdadera hasta que el valor de iu sea
  8198. 6:10:08mayor que 3
  8199. 6:10:10en la primera instalación el valor es
  8200. 6:10:12cero se ejecuta este código y se muestra
  8201. 6:10:14esta línea luego se incrementa el valor
  8202. 6:10:17de y ahora el valor de iu es 1 sigue
  8203. 6:10:21siendo menor o igual que 3 se ejecuta
  8204. 6:10:23este código se muestra por segunda vez y
  8205. 6:10:26se incrementa el valor de y ahora el
  8206. 6:10:28valor de iu es 2 este código se ejecuta
  8207. 6:10:312 y se incrementa el valor de iu y luego
  8208. 6:10:35como el valor de estrés esta es la
  8209. 6:10:38última repetición que se ejecuta se
  8210. 6:10:40incrementa el valor de iu a 4 y en ese
  8211. 6:10:44punto ya la condición es falsa
  8212. 6:10:46el proceso se detiene eso es básicamente
  8213. 6:10:49la lógica de un ciclo uruguay mientras
  8214. 6:10:52la condición sea verdadera el proceso
  8215. 6:10:54continúa y apenas sea falsa el proceso
  8216. 6:10:56se detiene y puedes ver lo poderoso que
  8217. 6:10:58puede ser esto porque en este caso
  8218. 6:11:01estamos repitiendo los 4 veces nada más
  8219. 6:11:03pero si necesitáramos repetirla por
  8220. 6:11:05ejemplo 15 veces aquí puedes ver la
  8221. 6:11:08cantidad de líneas de código que nos
  8222. 6:11:10estamos ahorrando usando un ciclo
  8223. 6:11:13gracias a los ciclos podemos escribir
  8224. 6:11:15programas mucho más poderosos veamos
  8225. 6:11:18otro ejemplo de un ciclo web vamos a
  8226. 6:11:21definir una variable llamada mía regla y
  8227. 6:11:24también vamos a declarar una variable y
  8228. 6:11:26vamos a mostrar el valor inicial del
  8229. 6:11:29arreglo en la consola y luego vamos a
  8230. 6:11:33ejecutar un ciclo while que queremos
  8231. 6:11:36hacer queremos agregar los números entre
  8232. 6:11:380 y 9 a este arreglo como lo podemos
  8233. 6:11:42hacer con un ciclo while fácilmente
  8234. 6:11:45mientras y sea menor que 10 que es lo
  8235. 6:11:50que queremos hacer queremos agregar ese
  8236. 6:11:53valor
  8237. 6:11:55al arreglo usamos el método push
  8238. 6:11:58y le vamos a agregar ese elemento a mi
  8239. 6:12:01arreglo el valor y y luego aumentamos o
  8240. 6:12:05incrementamos el valor de y es
  8241. 6:12:08importante incrementar el valor de que
  8242. 6:12:10veamos cuál es el resultado aquí vemos
  8243. 6:12:12que no tenemos un resultado porque
  8244. 6:12:15piensa porque no tenemos el resultado
  8245. 6:12:17porque el arreglo sigue siendo un
  8246. 6:12:20arreglo vacío
  8247. 6:12:21porque el valor inicial de iu no está
  8248. 6:12:24definido si nosotros inicializa mos el
  8249. 6:12:27valor de y a cero podemos incrementar lo
  8250. 6:12:30de uno en uno como estamos haciendo aquí
  8251. 6:12:33y así vamos a añadir cada uno de estos
  8252. 6:12:35elementos entre 0 y 9
  8253. 6:12:38inicialmente es un arreglo vacío y luego
  8254. 6:12:41de ejecutar este ciclo el arreglo tiene
  8255. 6:12:44estos elementos cómo funciona el proceso
  8256. 6:12:47inicialmente el valor de i es cero así
  8257. 6:12:51que se ejecuta esta línea que agrega el
  8258. 6:12:53valor de y el valor cero al arreglo y
  8259. 6:12:57luego se incrementa el valor de y a 1 1
  8260. 6:13:00sigue siendo menor que 10 así que se
  8261. 6:13:03ejecutó otra vez esta línea y se agrega
  8262. 6:13:05el valor 1 se incrementa el valor de iu
  8263. 6:13:07a 2 y como 2 sigue siendo menor que 10
  8264. 6:13:11se agrega el valor 2 al arreglo y se
  8265. 6:13:14vuelve a incrementar y así sucesivamente
  8266. 6:13:16hasta que la condición sea falsa cuando
  8267. 6:13:19llegamos a este punto del ciclo el valor
  8268. 6:13:23de y es 9 se agrega ese valor al arreglo
  8269. 6:13:26y luego se incrementa ese valor a 10
  8270. 6:13:29cuando llega a 10 esta condición ya no
  8271. 6:13:33es verdadera porque estamos usando un
  8272. 6:13:35operador que compara si y es
  8273. 6:13:37estrictamente menor que díaz esa
  8274. 6:13:40condición si es 10 sería falsa y
  8275. 6:13:43continuamos a esta línea porque ya el
  8276. 6:13:46ciclo terminó y se muestra el arreglo
  8277. 6:13:49este es un detalle que siempre tienes
  8278. 6:13:51que tener presente cuando escribas
  8279. 6:13:53ciclos while los operadores que uses
  8280. 6:13:55para las condiciones van a determinar
  8281. 6:13:58cuántas iteraciones se van a realizar si
  8282. 6:14:01nosotros cambiamos este operador por el
  8283. 6:14:03operador menor o igual que se va a
  8284. 6:14:05ejecutar una iteración más veamos el
  8285. 6:14:08resultado
  8286. 6:14:09aquí puedes ver que ahora si se incluye
  8287. 6:14:11el valor 10 porque cuando el valor de y
  8288. 6:14:15es 10 está condición sigue siendo
  8289. 6:14:17verdadera y se ejecuta el código una vez
  8290. 6:14:20más cuando llega a 11 ya esta condición
  8291. 6:14:23es falsa y el proceso se detiene así que
  8292. 6:14:26tienes que escoger estos operadores de
  8293. 6:14:29comparación
  8294. 6:14:30cuidadosamente cuando trabajas con los
  8295. 6:14:33ciclos while
  8296. 6:14:34veamos otro ejemplo si tenemos un
  8297. 6:14:37arreglo de números
  8298. 6:14:39que contiene de los números 2 3 4 5 6 8
  8299. 6:14:449 y 34 una secuencia de números y usamos
  8300. 6:14:48un ciclo un peón para quitar ciertos
  8301. 6:14:50números de ese arreglo es la condición
  8302. 6:14:53podemos usar en la longitud o el tamaño
  8303. 6:14:57del arreglo
  8304. 6:14:58decimos mientras la longitud del arreglo
  8305. 6:15:01sea mayor que 4 queremos continuar el
  8306. 6:15:04proceso o sea que se va a detener cuando
  8307. 6:15:07la longitud sea menor o igual a 4 y qué
  8308. 6:15:11va a ocurrir en cada iteración se va a
  8309. 6:15:13remover el último elemento de la regla y
  8310. 6:15:16cuando queden cuatro elementos el
  8311. 6:15:18proceso se va a detener si mostramos el
  8312. 6:15:21arreglo luego de este proceso puedes ver
  8313. 6:15:24que sólo quedan cuatro elementos 2 3 4 y
  8314. 6:15:285 que son los primeros 4 elementos
  8315. 6:15:31los otros 4 elementos al final del
  8316. 6:15:33arreglo fueron eliminados con el método
  8317. 6:15:36para bien esta fue la introducción a
  8318. 6:15:39cómo funciona el ciclo while en
  8319. 6:15:41javascript es muy importante que
  8320. 6:15:43recuerdes actualizar las variables para
  8321. 6:15:46que esta condición en algún momento sea
  8322. 6:15:48falsa si esta condición nunca es falsa
  8323. 6:15:52en el proceso en teoría nunca se va a
  8324. 6:15:54detener así que continuemos porque ahora
  8325. 6:15:57tenemos que ver el segundo tipo de ciclo
  8326. 6:15:59bucle el ciclo farc en javascript
  8327. 6:16:07ahora veamos el ciclo bucle for en
  8328. 6:16:10javascript y cómo funciona usamos el
  8329. 6:16:14ciclo for cuando sabemos cuántas
  8330. 6:16:16iteraciones van a ser necesarias y el
  8331. 6:16:18ciclo for nos actualiza de esa variable
  8332. 6:16:21que antes teníamos que actualizar
  8333. 6:16:23nosotros mismos con el ciclo web la
  8334. 6:16:26actualiza automáticamente
  8335. 6:16:28ya vas a ver aquí tenemos un ejemplo
  8336. 6:16:31vamos a hacer algo equivalente a lo que
  8337. 6:16:34hicimos con el ciclo web agregar los
  8338. 6:16:36números desde el 0 hasta el 9 a un
  8339. 6:16:38arreglo pero con el ciclo force la forma
  8340. 6:16:41de escribir el código es un poco
  8341. 6:16:43diferente aquí tenemos la palabra clave
  8342. 6:16:46for por eso suele llamar los ciclos
  8343. 6:16:48fuera la secuencia de instrucciones
  8344. 6:16:51entre llaves que se van a repetir se
  8345. 6:16:53denominan el cuerpo del ciclo que vamos
  8346. 6:16:55a escribir aquí en lugar de escribir una
  8347. 6:16:58condición como escribíamos en el ciclo
  8348. 6:17:00web
  8349. 6:17:01para un ciclo forma tenemos que
  8350. 6:17:04especificar tres aspectos de cómo va a
  8351. 6:17:07ejecutarse el ciclo
  8352. 6:17:10lo primero que tenemos que hacer es
  8353. 6:17:12inicializar el valor de una variable que
  8354. 6:17:16se va a usar y actualizar en el ciclo
  8355. 6:17:19por ejemplo si inicialmente nosotros
  8356. 6:17:21queremos trabajar con una variable i y
  8357. 6:17:25su valor inicial va a ser cero
  8358. 6:17:27escribimos esto aquí con barack y esto
  8359. 6:17:29también puede ser led recuerda que
  8360. 6:17:32cuando vemos cómo se puede declarar una
  8361. 6:17:34variable puede observar o puede ser led
  8362. 6:17:36o puede ser como en un ciclo puede ser
  8363. 6:17:39bar o led y la diferencia es donde va a
  8364. 6:17:42estar definida esta variable esta es la
  8365. 6:17:45primera parte de las condiciones de
  8366. 6:17:47forma que determina cómo va a iniciar el
  8367. 6:17:49valor de esta variable que se llama la
  8368. 6:17:51variable del ciclo en inglés la
  8369. 6:17:54llamaríamos luke pero con la variable
  8370. 6:17:57del ciclo esa variable es la que va a
  8371. 6:17:59decidir si el ciclo se continúa
  8372. 6:18:01ejecutando o no aquí luego separado por
  8373. 6:18:04un punto y coma tenemos la condición que
  8374. 6:18:07va a decidir
  8375. 6:18:09ciclo continúa o no mientras sea menor
  8376. 6:18:13que 10 el ciclo va a continuar y luego
  8377. 6:18:18separado otra vez por un punto y coma y
  8378. 6:18:20un espacio tenemos que decirle a
  8379. 6:18:22javascript cómo queremos actualizar esa
  8380. 6:18:25variable en cada tracción por ejemplo si
  8381. 6:18:28queremos incrementar el valor de i en 1
  8382. 6:18:31escribimos y + + entonces básicamente
  8383. 6:18:35eso es lo que tenemos aquí como iniciar
  8384. 6:18:38el valor de la variable cuál es la
  8385. 6:18:40condición que va a permitir que el ciclo
  8386. 6:18:43se continúe ejecutándose y como
  8387. 6:18:45actualizamos el valor de la variable
  8388. 6:18:47bien qué vamos a hacer en el cuerpo del
  8389. 6:18:51ciclo
  8390. 6:18:52vamos a añadir el valor de ir al arreglo
  8391. 6:18:56en este ejemplo
  8392. 6:18:58desde 0 hasta 9 y vamos a mostrar el
  8393. 6:19:02arreglo aquí puedes ver que tenemos los
  8394. 6:19:05números desde 0 hasta 9 así que lo que
  8395. 6:19:08escribimos es equivalente a nuestro
  8396. 6:19:10ejemplo anterior con un ciclo while la
  8397. 6:19:13ventaja que tienen los ciclos por es que
  8398. 6:19:15podemos especificar todas las
  8399. 6:19:17condiciones importantes para el ciclo
  8400. 6:19:19aquí tenemos el valor inicial de la
  8401. 6:19:22variable del ciclo tenemos la condición
  8402. 6:19:25que tiene que ser verdadera para que el
  8403. 6:19:27ciclo continúe ejecutándose y también
  8404. 6:19:30tenemos aquí lo que queremos hacer con
  8405. 6:19:33esa variable cada vez que comience una
  8406. 6:19:36iteración o cada vez que termine una
  8407. 6:19:38iteración es equivalente
  8408. 6:19:39queremos en este caso incrementar el
  8409. 6:19:41valor de iu en uno pero no
  8410. 6:19:43necesariamente tenemos que incrementar
  8411. 6:19:45este valor de uno en uno podemos
  8412. 6:19:47incrementar lo en otro valor
  8413. 6:19:49en este caso escribiríamos algo así le
  8414. 6:19:52asignamos a la variable y más 2
  8415. 6:19:55veamos el resultado aquí vemos 0 2 4 6 y
  8416. 6:20:008
  8417. 6:20:01inicialmente era 0 luego fue 2 4 6 y 8 y
  8418. 6:20:05cuando la condición esta condición es
  8419. 6:20:08falsa el ciclo se detiene en este caso
  8420. 6:20:11después de 8 se sumó 2 era 10 y como
  8421. 6:20:15estamos usando comparación estricta esta
  8422. 6:20:17condición era falsa
  8423. 6:20:19pero hay una forma más compacta de
  8424. 6:20:21escribir esto recuerda que operador
  8425. 6:20:23podemos usar también podemos usar este
  8426. 6:20:26operador aquí incrementamos el valor
  8427. 6:20:29actual de iu en 2 y lo asignamos a la
  8428. 6:20:31variable y aquí podemos ver el resultado
  8429. 6:20:34exactamente el mismo pero escribimos
  8430. 6:20:36esto de una forma más concisa podemos
  8431. 6:20:39usar cualquier operador para esta
  8432. 6:20:41condición cualquier operador de
  8433. 6:20:43comparación operadores normalmente esta
  8434. 6:20:46condición involucra a la variable del
  8435. 6:20:48ciclo pero no necesariamente tenemos que
  8436. 6:20:51usar la variable del ciclo en el ciclo
  8437. 6:20:54en el cuerpo de ciclo por ejemplo si
  8438. 6:20:56queremos simplemente agregar un valor
  8439. 6:20:58fijo
  8440. 6:21:00también podemos hacerlo aquí puedes ver
  8441. 6:21:02que se agrega ese valor una vez por cada
  8442. 6:21:05iteración
  8443. 6:21:06esto sólo para ilustrar que no necesitas
  8444. 6:21:09usar el valor de iu en el ciclo
  8445. 6:21:10necesariamente pero está allí para
  8446. 6:21:13ayudar a javascript a decidir si el
  8447. 6:21:15ciclo debería continuar o no genial ya
  8448. 6:21:18sabes lo básico de los ciclos while los
  8449. 6:21:20ciclos forest vamos a ver algunos
  8450. 6:21:22ejemplos en los próximos temas
  8451. 6:21:29veamos un ejemplo con el ciclo bucle
  8452. 6:21:33form lo primero que tenemos que hacer es
  8453. 6:21:36declarar el arreglo en ya busquets
  8454. 6:21:39porque vamos a guardar los números
  8455. 6:21:42impares en ese arreglo vamos a tener los
  8456. 6:21:45números impares entre 1 y 19 inclusive
  8457. 6:21:49como lo podemos hacer con un ciclo forma
  8458. 6:21:52veamos cómo podemos escribir las
  8459. 6:21:53condiciones aquí queremos iniciar con un
  8460. 6:21:56valor de igual a 1 así que escribimos
  8461. 6:21:59exactamente eso aquí inicialmente iba a
  8462. 6:22:03ser 1 y queremos continuar mientras el
  8463. 6:22:05valor de y sea menor que 20
  8464. 6:22:09estrictamente menor que 20 que sería
  8465. 6:22:12equivalente a escribir menor o igual que
  8466. 6:22:1419
  8467. 6:22:15pero normalmente podríamos usar también
  8468. 6:22:1820 y qué queremos hacer para obtener los
  8469. 6:22:21números impares si tenemos el número 1
  8470. 6:22:24para obtener el siguiente número impar
  8471. 6:22:27tendríamos que sumar 2 que sería teatres
  8472. 6:22:30del resultado si tenemos tres tendremos
  8473. 6:22:33que sumar dos para obtener cinco y así
  8474. 6:22:36sucesivamente
  8475. 6:22:37así que lo que podemos hacer es
  8476. 6:22:40actualizar el valor de la variable
  8477. 6:22:42incrementando lo en dos por cada
  8478. 6:22:45iteración y así vamos a tener un valor
  8479. 6:22:48impar para y en cada iteración
  8480. 6:22:51comenzando en 1 y luego incrementando de
  8481. 6:22:54dos en dos que vamos a hacer aquí vamos
  8482. 6:22:58a agregar ese número con el método push
  8483. 6:23:01al arreglo al final del arreglo el
  8484. 6:23:05número contenido en la variable
  8485. 6:23:08luego de ejecutar este ciclo vamos a
  8486. 6:23:12mostrar el arreglo en la consola a ver
  8487. 6:23:14que obtenemos aquí podemos ver todos los
  8488. 6:23:17números impares entre 1 y 19 genial con
  8489. 6:23:21solo tres líneas podemos hacer lo que
  8490. 6:23:23nos tomaría muchísimas líneas para
  8491. 6:23:25escribir en ya busquets y solamente con
  8492. 6:23:28tres líneas hicimos exactamente
  8493. 6:23:29actualmente eso y podemos expandir
  8494. 6:23:32nuestro código digamos que queremos
  8495. 6:23:34todos los números impares desde uno
  8496. 6:23:37hasta digamos 50 aquí los puedes ver
  8497. 6:23:41veamos el resultado puedes ver que
  8498. 6:23:44tenemos todos los números impares que
  8499. 6:23:46cumplen esa condición es muy fácil
  8500. 6:23:49realizar operaciones más complejas sin
  8501. 6:23:51escribir más líneas de código y también
  8502. 6:23:53podemos realizar procesos de forma más
  8503. 6:23:55eficiente un reto interesante que quizás
  8504. 6:23:58te gustaría realizar es escribir un
  8505. 6:24:00ciclo for que agregue los números pares
  8506. 6:24:03entre 2 y 26 a un arreglo
  8507. 6:24:06te dejo este ejercicio por si quieres
  8508. 6:24:08intentarlo
  8509. 6:24:09así que pasemos a nuestro siguiente tema
  8510. 6:24:19también podemos contar hacia atrás con
  8511. 6:24:21un ciclo o bucle form
  8512. 6:24:24veamos cómo podemos hacerlo hasta ahora
  8513. 6:24:26habíamos incrementado el valor de i de
  8514. 6:24:29la variable del ciclo pero ahora también
  8515. 6:24:31podemos de reducir su valor veamos cómo
  8516. 6:24:35podemos hacerlo tenemos un ejemplo de un
  8517. 6:24:38ciclo fuerte el valor inicial de iba a
  8518. 6:24:40ser 15 y vamos a continuar ejecutando el
  8519. 6:24:45ciclo mientras el valor de iu sea mayor
  8520. 6:24:48o igual a 10
  8521. 6:24:50esa es la condición que tiene que ser
  8522. 6:24:52verdadera para que el proceso se sigue
  8523. 6:24:55ejecutando
  8524. 6:24:56pero no está aquí algo interesante el
  8525. 6:25:00valor inicial de i es mayor que el valor
  8526. 6:25:03que debería ser el valor final de y para
  8527. 6:25:06detener el proceso por eso tenemos que
  8528. 6:25:11ir reduciendo el valor de ir y cómo lo
  8529. 6:25:13podemos hacer así como incrementamos el
  8530. 6:25:16valor de y en 1 cada vez interacción e
  8531. 6:25:19interacción podemos reducirlo en uno
  8532. 6:25:21cada iteración vamos a ver el resultado
  8533. 6:25:25en cada interacción vamos a mostrar el
  8534. 6:25:27valor de iu en la consola abramos la
  8535. 6:25:30consola aquí lo podemos ver 15 14 13 12
  8536. 6:25:3511 y 10
  8537. 6:25:37mientras el valor de iu es mayor o igual
  8538. 6:25:40a 10 el proceso continúa y el valor de y
  8539. 6:25:44se va reduciendo de uno en uno cuando el
  8540. 6:25:47valor de ya es menor que 10 porque ya se
  8541. 6:25:51mostró el valor 10 aquí entonces para la
  8542. 6:25:53próxima iteración el valor de y sería 9
  8543. 6:25:56cuando el 9 ya esta condición es falsa
  8544. 6:26:00así que el proceso se detiene y eso es
  8545. 6:26:03básicamente lo que pasa cuando
  8546. 6:26:05ejecutamos este programa también tenemos
  8547. 6:26:08otra opción en lugar de reducir este
  8548. 6:26:10valor de un 1 podemos reducirlo de dos
  8549. 6:26:12en dos también es otra opción
  8550. 6:26:15podríamos ir del valor 15 al valor 13 y
  8551. 6:26:20luego al valor 11 y aquí se detendría el
  8552. 6:26:23proceso porque 11 menos 2 sería 9 y ya
  8553. 6:26:27esta condición sería falsa para la
  8554. 6:26:29próxima iteración
  8555. 6:26:30como veis podemos actualizar el valor de
  8556. 6:26:33iu como queramos podemos también
  8557. 6:26:35multiplicarlo por 2 o dividirlo entre 2
  8558. 6:26:37bien veamos un ejemplo con un arreglo
  8559. 6:26:41vamos a definir un arreglo aquí a
  8560. 6:26:43crearlo y a este arreglo le vamos a
  8561. 6:26:46agregar ciertos valores
  8562. 6:26:48cuáles valores bueno y el valor inicial
  8563. 6:26:51de iu va a ser igual a díaz y queremos
  8564. 6:26:54continuar el proceso mientras sea mayor
  8565. 6:26:57que 0 puedes ver que el valor inicial de
  8566. 6:26:59i es mayor que su valor final así que
  8567. 6:27:02tenemos que reducir el valor de iu para
  8568. 6:27:05que no tengamos un ciclo infinito como
  8569. 6:27:08lo vamos a hacer vamos a reducir el
  8570. 6:27:10valor de y de dos en dos en cada
  8571. 6:27:12iteración y así vamos a poder agregar
  8572. 6:27:16estos valores al arreglo y los mostró en
  8573. 6:27:19la consola
  8574. 6:27:21aquí podemos ver el resultado 10 8 6 4 y
  8575. 6:27:262 se va reduciendo de dos en dos y
  8576. 6:27:30cuando ya el valor en la próxima
  8577. 6:27:32iteración sería cero dos menos dos como
  8578. 6:27:36actualizamos la variable sería cero ya
  8579. 6:27:39esta condición es falsa así que no hay
  8580. 6:27:41una próxima iteración y allí se detiene
  8581. 6:27:44el proceso
  8582. 6:27:46genial ya hemos visto cómo puedes
  8583. 6:27:49trabajar con los ciclos for y definir
  8584. 6:27:51distintas condiciones siempre tienes que
  8585. 6:27:54estar muy pendiente de este operador que
  8586. 6:27:57estás usando aquí está condición
  8587. 6:27:59determinar cuántas iteraciones se van a
  8588. 6:28:02realizar y si usas un operador estricto
  8589. 6:28:05aquí el resultado los números de
  8590. 6:28:07iteraciones puede ser distinto aquí
  8591. 6:28:10puedes ver solo con usar este operador
  8592. 6:28:13ya estamos realizando una iteración más
  8593. 6:28:15porque cuando el valor es igual a cero
  8594. 6:28:18también está con verdadera y se realiza
  8595. 6:28:21una iteración adicional en el ciclo buen
  8596. 6:28:24trabajo pasemos a nuestro siguiente tema
  8597. 6:28:33también puedes usar los ciclos for para
  8598. 6:28:36enterar sobre un arreglo y tener sobre
  8599. 6:28:39un arreglo significa que vas a obtener
  8600. 6:28:41cada uno de los elementos de ese arreglo
  8601. 6:28:44y los vas a poder usar en el cuerpo del
  8602. 6:28:48ciclo ya vas a poder hacer algo con cada
  8603. 6:28:50uno de los elementos de ese arreglo
  8604. 6:28:52vamos a ver un ejemplo definimos este
  8605. 6:28:55arreglo que inicialmente va a tener los
  8606. 6:28:58valores 4 6 8 y 2 los mismos principios
  8607. 6:29:02que vas a ver ahorita aplican para
  8608. 6:29:04cualquier tipo de datos que puedas tener
  8609. 6:29:06aquí para cualquier tipo de elementos
  8610. 6:29:09incluyendo objetos incluyendo cadenas de
  8611. 6:29:12caracteres incluyendo arreglos anidados
  8612. 6:29:15y cualquier otro tipo de datos vamos en
  8613. 6:29:18este caso vamos a sumar todos estos
  8614. 6:29:21valores usando un ciclo y el total de la
  8615. 6:29:24suma la vamos a acumular e ir acumulando
  8616. 6:29:26en esta variable total que inicialmente
  8617. 6:29:29tiene un valor cero veamos como
  8618. 6:29:31escribimos este ciclo fuera para sumar
  8619. 6:29:34todos los valores tenemos que ir
  8620. 6:29:36acumulando cada uno de estos valores en
  8621. 6:29:38el total
  8622. 6:29:40para eso vamos a tener que acceder a
  8623. 6:29:42cada uno de esos valores en una
  8624. 6:29:44iteración del ciclo vamos a necesitar
  8625. 6:29:47cuatro iteraciones porque tenemos cuatro
  8626. 6:29:50elementos
  8627. 6:29:51inicialmente el valor de i va a ser cero
  8628. 6:29:54la variable del ciclo porque vamos a
  8629. 6:29:57usar la variable y como índice el índice
  8630. 6:30:00del arreglo recuerda que los índices de
  8631. 6:30:03los arreglos comienzan desde cero y
  8632. 6:30:06luego se incrementan 0 1 2 y 3 así que
  8633. 6:30:10vamos a comenzar con cero y cuál va a
  8634. 6:30:13ser la condición para que el proceso
  8635. 6:30:15siga
  8636. 6:30:16mientras el valor de iu sea
  8637. 6:30:19estrictamente menor que la longitud o el
  8638. 6:30:23tamaño del arreglo sea mientras i sea un
  8639. 6:30:27índice válido porque es menor que la
  8640. 6:30:30longitud del arreglo
  8641. 6:30:32entonces vamos a continuar el proceso y
  8642. 6:30:35vamos a incrementar el valor de iu en 1
  8643. 6:30:38antes de la próxima iteración porque
  8644. 6:30:41aquí tenemos un operador estricto un
  8645. 6:30:44operador de comparación estricta y no
  8646. 6:30:47puede ser igual el tamaño del arreglo
  8647. 6:30:49porque estamos comenzando a contar desde
  8648. 6:30:51cero recuerde que los índices comienzan
  8649. 6:30:54desde cero entonces el último índice va
  8650. 6:30:58a ser la longitud del arreglo menos uno
  8651. 6:31:00ese es el último índice válido para ese
  8652. 6:31:04arreglo por eso es que estamos usando
  8653. 6:31:06este operador estricto si usáramos el
  8654. 6:31:08operador menor e igual que cuando if sea
  8655. 6:31:12igual que la longitud no está definido
  8656. 6:31:14ese índice para ese arreglo vamos a
  8657. 6:31:17implementar qué es lo que va a ser el
  8658. 6:31:19ciclo vamos a agregar un valor a la
  8659. 6:31:22variable total con este operador vamos a
  8660. 6:31:25sumar el valor en el índice y del
  8661. 6:31:29arreglo aquí puedes ver que estamos
  8662. 6:31:31usando la variable del ciclo y que
  8663. 6:31:34inicialmente cero
  8664. 6:31:36así que inicialmente este valor va a ser
  8665. 6:31:39el valor que está en el índice cero
  8666. 6:31:42este número cuatro luego para la
  8667. 6:31:45siguiente iteración la variable y se va
  8668. 6:31:47a actualizar este elemento luego va a
  8669. 6:31:50ser el número seis y así sucesivamente
  8670. 6:31:53en la variable y para la próxima
  8671. 6:31:56iteración va a ser 2 el número 8 va a
  8672. 6:31:59corresponder a esta parte y luego el
  8673. 6:32:02número 2 para cada declaración vamos a
  8674. 6:32:04ir acumulando esos números en el total y
  8675. 6:32:07podemos mostrar el total en la consola
  8676. 6:32:10luego del proceso aquí tenemos el número
  8677. 6:32:1320 4 6 10 + 8 18 + 220 y esto es
  8678. 6:32:18exactamente lo que ocurrió podemos verlo
  8679. 6:32:21con más detalle lo que ocurre en el
  8680. 6:32:24ciclo si usamos con su punto log dentro
  8681. 6:32:27del ciclo vamos a mostrar el valor de y
  8682. 6:32:30vamos a mostrar el valor de mi arreglo
  8683. 6:32:34en el índice i
  8684. 6:32:36antes para separarlo vamos a colocar un
  8685. 6:32:39mensaje iteración y vamos a concatenar
  8686. 6:32:42lo con el valor de y vamos a mostrar
  8687. 6:32:45iteración 0 iteración una iteración 2
  8688. 6:32:48bitter acción 3 el número va a
  8689. 6:32:50corresponder al valor de i y aquí vamos
  8690. 6:32:53a ver el elemento que vamos a acumular
  8691. 6:32:55es el elemento que estamos usando aquí
  8692. 6:32:58que vamos a abrir la consola y vemos
  8693. 6:33:01esto aquí iteración 0 cuando el valor de
  8694. 6:33:04y es igual a 0
  8695. 6:33:05tenemos 4 iteración 1 el valor es 6 que
  8696. 6:33:10es el segundo elemento iteración 2 el
  8697. 6:33:12elemento es 8 y iteración 3
  8698. 6:33:16el elemento 2 finalmente todo se suma y
  8699. 6:33:19vemos el total que es 20 aquí estamos
  8700. 6:33:22empezando a contar desde cero porque
  8701. 6:33:24quería mostrarte el valor de la variable
  8702. 6:33:27y para cada trazo usar con su punto love
  8703. 6:33:30dentro del ciclo es muy útil para
  8704. 6:33:32entender cómo funciona y cómo se van
  8705. 6:33:35actualizando los valores a medida que se
  8706. 6:33:38ejecutan las iteraciones te recomiendo
  8707. 6:33:40totalmente usar con su punto long dentro
  8708. 6:33:43de un ciclo
  8709. 6:33:44si quieres visualizar cómo funciona
  8710. 6:33:47genial veamos otro ejemplo
  8711. 6:33:49reiterar sobre un arreglo digamos que
  8712. 6:33:52tenemos un arreglo de cadenas de
  8713. 6:33:54caracteres que representan lenguajes de
  8714. 6:33:57programación ya los que payton
  8715. 6:34:00jabón y sep los flash vamos a escribir
  8716. 6:34:04este nombre lenguaje vamos a asignarle
  8717. 6:34:07ese nombre a la variable pero también
  8718. 6:34:10puedes llamarla lenguajes de
  8719. 6:34:11programación digamos que queremos
  8720. 6:34:13mostrar cada una de esas cadenas en
  8721. 6:34:16mayúscula queremos convertir todos sus
  8722. 6:34:18caracteres a mayúsculas entonces lo que
  8723. 6:34:21podemos hacer es integrar sobre el
  8724. 6:34:23arreglo porque queremos hacer algo con
  8725. 6:34:26cada uno de sus elementos como podemos
  8726. 6:34:29integrar sobre el arreglo iniciamos el
  8727. 6:34:31valor de la variable y en cero para
  8728. 6:34:34poder usarla como índice como hicimos en
  8729. 6:34:36nuestro ejemplo anterior y vamos a
  8730. 6:34:38continuar integrando mientras el valor
  8731. 6:34:41de i sea menor que la longitud del
  8732. 6:34:45arreglo lenguajes mientras eso ocurra
  8733. 6:34:48esta condición es prácticamente fija si
  8734. 6:34:51comienzas desde cero y quieres integrar
  8735. 6:34:53sobre todos los elementos de un arreglo
  8736. 6:34:55ok
  8737. 6:34:57así que esto se va a volver algo
  8738. 6:35:00rutinario que vas a escribir normalmente
  8739. 6:35:02en javascript mientras sea menor que la
  8740. 6:35:05longitud del arreglo y vamos a
  8741. 6:35:08incrementar el valor de i en uno bien
  8742. 6:35:11ahora vamos a mostrar el elemento que
  8743. 6:35:13queremos mostrar pero que debemos
  8744. 6:35:15mostrarlo en mayúscula para eso vamos a
  8745. 6:35:18llamar a un método específico primero
  8746. 6:35:21necesitamos acceder al elemento a la
  8747. 6:35:24cadena de caracteres que corresponde a
  8748. 6:35:26la iteración para eso escribimos el
  8749. 6:35:29nombre del arreglo lenguajes y entre
  8750. 6:35:32corchetes
  8751. 6:35:33el índice de ese elemento que es el
  8752. 6:35:36valor de la variable i y para convertir
  8753. 6:35:39esa cadena de caracteres a mayúscula
  8754. 6:35:41tenemos un método muy útil que es su opi
  8755. 6:35:44que es el pri que jms en español
  8756. 6:35:47significa mayúscula entonces esto lo
  8757. 6:35:50convierte a mayúscula convierte la
  8758. 6:35:52cadena de caracteres a mayúsculas usamos
  8759. 6:35:55un punto el nombre del método y lo
  8760. 6:35:57llamamos con paréntesis vacíos
  8761. 6:36:00todo esto va a resultar en un elemento
  8762. 6:36:03de este arreglo convertido a mayúscula y
  8763. 6:36:07luego lo mostramos veamos en la consola
  8764. 6:36:10el resultado
  8765. 6:36:12puedes verlo aquí ya vásquez luego
  8766. 6:36:14python
  8767. 6:36:16luego java y luego simples los nuevos
  8768. 6:36:20sep los pros ya puedes ver este patrón y
  8769. 6:36:22cómo se repite cuando queremos integrar
  8770. 6:36:25sobre los elementos de un arreglo
  8771. 6:36:27estamos inicial izando la variable con
  8772. 6:36:30el valor cero
  8773. 6:36:31continuamos mientras ese valor sea menor
  8774. 6:36:34que la longitud del arreglo
  8775. 6:36:36incrementamos la variable del ciclo en
  8776. 6:36:38uno cada iteración y luego accedemos a
  8777. 6:36:42cada elemento del arreglo con el valor
  8778. 6:36:44de y como el índice veamos otro ejemplo
  8779. 6:36:47más que tengo aquí para ti en este caso
  8780. 6:36:50vamos a trabajar con un ciclo por dentro
  8781. 6:36:52de una función vamos a definir una
  8782. 6:36:55función que va a contar la cantidad de
  8783. 6:36:58números pares en un arreglo va a tomar
  8784. 6:37:02un parámetro llamado arreglo
  8785. 6:37:04y va a mantener
  8786. 6:37:06un registro al mantener un acumulado del
  8787. 6:37:09total de números pares que hemos
  8788. 6:37:12encontrado hasta el momento ese
  8789. 6:37:15acumulado este total se va a actualizar
  8790. 6:37:17a medida que consigamos números pares en
  8791. 6:37:20el arreglo porque vamos a integrar sobre
  8792. 6:37:22todos sus elementos dentro de la función
  8793. 6:37:25podemos escribir un ciclo fuera
  8794. 6:37:28y cómo vamos a instalar sobre el arreglo
  8795. 6:37:30usamos el mismo patrón que ya hemos
  8796. 6:37:33visto inicializa mos del valor de acero
  8797. 6:37:36y continuamos el proceso mientras i sea
  8798. 6:37:39menor que la longitud del arreglo y
  8799. 6:37:43actualizamos el valor de e
  8800. 6:37:45incrementándolo en uno cada vez para
  8801. 6:37:47cada iteración luego decimos el elemento
  8802. 6:37:51que corresponde a esta integración es
  8803. 6:37:54par si el resto de su división entre dos
  8804. 6:37:57es igual a cero
  8805. 6:38:00entonces
  8806. 6:38:03incrementamos el total en 1 eso es lo
  8807. 6:38:06que estamos haciendo aquí estamos
  8808. 6:38:09incrementando el valor de la variable en
  8809. 6:38:111 y luego cuando el ciclo termine y ya
  8810. 6:38:14hayamos procesado todos los elementos
  8811. 6:38:16del arreglo para contar cuántos pares
  8812. 6:38:18hay vamos a retornar el valor de la
  8813. 6:38:21variable total bien vamos a probar con
  8814. 6:38:24con su punto olor a ver cómo funciona
  8815. 6:38:27esta función contar números pares y
  8816. 6:38:31entre paréntesis vamos a pasar un
  8817. 6:38:33arreglo que no tiene ningún número par
  8818. 6:38:35para ver si funciona correctamente y nos
  8819. 6:38:38retorna el valor cero aquí podemos ver
  8820. 6:38:40el valor cero ahora si agregamos un
  8821. 6:38:44número par
  8822. 6:38:45digamos 2 ahora vemos el número 1 porque
  8823. 6:38:48hay un número par si agregamos 2 números
  8824. 6:38:52pares más ahora tenemos tres números
  8825. 6:38:54pares y el resultado es correcto y
  8826. 6:38:57también podemos mezclar los números
  8827. 6:38:59pares en el medio porque estamos
  8828. 6:39:00haciendo una instalación por cada
  8829. 6:39:03elemento del arreglo así que no importa
  8830. 6:39:05donde aparezcan de igual forma se van a
  8831. 6:39:08detectar y aquí podemos ver que hay tres
  8832. 6:39:11números pares 1 2 y 3 lo cual es
  8833. 6:39:15correcto bien ya vimos varios ejemplos
  8834. 6:39:18de cómo puedes trabajar con un ciclo for
  8835. 6:39:20para integrar sobre los elementos de un
  8836. 6:39:22arreglo buen trabajo pasemos a nuestro
  8837. 6:39:25siguiente tema del curso
  8838. 6:39:33ya sabes cómo trabajar con ciclo for y
  8839. 6:39:36ciclos web también es muy útil poder
  8840. 6:39:39escribir ciclos dentro de otros ciclos
  8841. 6:39:42eso es lo que nosotros llamamos ciclos
  8842. 6:39:44anidados vamos a ver un ejemplo de un
  8843. 6:39:47ciclo for anidado vamos a tener un ciclo
  8844. 6:39:49for dentro de otro ciclo four son muy
  8845. 6:39:52útiles para procesar estructuras de
  8846. 6:39:54datos multidimensionales por ejemplo
  8847. 6:39:57digamos que tenemos un arreglo y ese
  8848. 6:40:00arreglo contiene arreglos
  8849. 6:40:05123456789 como podemos hacer alguna
  8850. 6:40:09operación con cada uno de los elementos
  8851. 6:40:11de cada uno de los arreglos si nosotros
  8852. 6:40:15usamos un ciclo for para operar sobre
  8853. 6:40:17los elementos de este arreglo veamos que
  8854. 6:40:20obtenemos vamos a usar el mismo patrón
  8855. 6:40:23que hemos usado hasta ahora para enterar
  8856. 6:40:25sobre los elementos de un arreglo
  8857. 6:40:28iniciamos con la variable igual a cero
  8858. 6:40:30la condición es que sea menor que la
  8859. 6:40:32longitud o el tamaño del arreglo e
  8860. 6:40:35incrementamos el valor de y el uno por
  8861. 6:40:37cada instalación
  8862. 6:40:39vamos a mostrar cada uno de esos
  8863. 6:40:41elementos que obtenemos mi arreglo en el
  8864. 6:40:45índice y
  8865. 6:40:47iba a tomar los valores 0 para este
  8866. 6:40:51arreglo 1 para este arreglo y 2 para
  8867. 6:40:54este arreglo porque recuerda que como
  8868. 6:40:57son arreglos anidados cada uno ocupa un
  8869. 6:41:00índice específico del arreglo externo
  8870. 6:41:03puedes repasar este tema en la parte del
  8871. 6:41:06curso sobre arreglos anidados cada uno
  8872. 6:41:08tiene su índice correspondiente cuál es
  8873. 6:41:11el resultado aquí lo podemos ver primero
  8874. 6:41:14se toma el arreglo 1 el arreglo en el
  8875. 6:41:17índice 0 luego se toma el arreglo en el
  8876. 6:41:21índice 1 y finalmente se toma el arreglo
  8877. 6:41:25en el índice 2 necesitamos trabajar con
  8878. 6:41:28el arreglo anidado esto es usted cuando
  8879. 6:41:32necesitamos trabajar con el arreglo
  8880. 6:41:34anidado pero qué pasa si queremos
  8881. 6:41:37trabajar con los elementos de ese
  8882. 6:41:39arreglo anidado algo que podríamos hacer
  8883. 6:41:42es asignar ese arreglo anidado a una
  8884. 6:41:44variable
  8885. 6:41:45y luego podemos cerrar sobre los
  8886. 6:41:49elementos y luego podemos escribir otro
  8887. 6:41:52ciclo fork para integrar sobre ese
  8888. 6:41:55arreglo anidado aquí creo que puedes ya
  8889. 6:41:58empezar a ver el patrón vamos a hacer
  8890. 6:42:00exactamente lo mismo que hicimos con el
  8891. 6:42:02arreglo externo pero con el arreglo
  8892. 6:42:05anidado es el mismo patrón nota que
  8893. 6:42:08estamos usando una variable distinta
  8894. 6:42:10cuando usas ciclos anidados es mejor
  8895. 6:42:13usar variables con un nombre distinto
  8896. 6:42:15para el ciclo anidado para evitar
  8897. 6:42:17cambios inesperados en la variable del
  8898. 6:42:20ciclo en este caso estamos usando jota y
  8899. 6:42:23normalmente vas a conseguir ese tipo de
  8900. 6:42:25letra y jk pero esta vez queremos
  8901. 6:42:28instalar sobre el arreglo anidado por
  8902. 6:42:31eso escribimos aquí arreglo unidad y
  8903. 6:42:34escribimos su longitud conseguimos un
  8904. 6:42:36longitud porque tenemos que mantener la
  8905. 6:42:38misma condición lo que es que estamos
  8906. 6:42:40cambiando de arreglo y lo que hacemos es
  8907. 6:42:42incrementar el valor de jota esto es muy
  8908. 6:42:46importante tienes que incrementar el
  8909. 6:42:47valor de jota y una fuente común de
  8910. 6:42:50errores es incrementar y nuevo aquí
  8911. 6:42:52tienes que incrementar a j para que
  8912. 6:42:55funcione correctamente o la variable que
  8913. 6:42:57corresponda al ciclo unidad luego de
  8914. 6:43:00esto qué es lo que vamos a hacer vamos a
  8915. 6:43:04mostrar cada uno de esos elementos
  8916. 6:43:08arreglo anidado j
  8917. 6:43:11este es un elemento del arreglo anidado
  8918. 6:43:13un número y este es el arreglo unidad
  8919. 6:43:17estamos como desglosando el contenido de
  8920. 6:43:20la estructura de datos primero para cada
  8921. 6:43:23una de las iteraciones vamos a conseguir
  8922. 6:43:26un arreglo uno de estos arreglos
  8923. 6:43:28completos y luego vamos a tener una
  8924. 6:43:32instalación por cada elemento de ese
  8925. 6:43:34arreglo podemos hacer algo con cada uno
  8926. 6:43:37de esos elementos vamos a mostrar unos
  8927. 6:43:39mensajes en la consola para poder
  8928. 6:43:41entender mejor el proceso nueva
  8929. 6:43:44iteración arreglo y aquí vamos a mostrar
  8930. 6:43:51ciclo anidado elemento
  8931. 6:43:56vamos a mostrar aquí el mensaje
  8932. 6:43:59principal con símbolos especiales para
  8933. 6:44:01poder distinguirlos ciclón y dad ya vas
  8934. 6:44:05a ver que va a ser muy útil esta
  8935. 6:44:06anotación también sería bueno mostrar el
  8936. 6:44:08arreglo aquí podemos concatenar lo con
  8937. 6:44:11el arreglo anidado estoy preparando todo
  8938. 6:44:15aquí para que sea más fácil entender qué
  8939. 6:44:19es lo que está pasando cuando los ciclos
  8940. 6:44:21se van ejecutando
  8941. 6:44:22nueva iteración corresponde al ciclo
  8942. 6:44:25externo ok
  8943. 6:44:27luego tenemos el arreglo anidado y aquí
  8944. 6:44:30cuando veamos ciclo anidado y elemento
  8945. 6:44:33vamos a ver el elemento correspondiente
  8946. 6:44:36aquí podemos ver el resultado nueva
  8947. 6:44:39iteración comienza el ciclo externo el
  8948. 6:44:42arreglo que seleccionamos es el arreglo
  8949. 6:44:45que corresponde a uno dos tres que
  8950. 6:44:47tenemos aquí
  8951. 6:44:48luego estamos en el ciclo anidado y
  8952. 6:44:51vamos a analizar obtener elemento por
  8953. 6:44:54elemento el elemento es 1 así que vemos
  8954. 6:44:57aquí 1 ciclo 'en y dado comienzo otra
  8955. 6:45:00vez el elemento es 2 se actualizó el
  8956. 6:45:03segundo elemento del arreglo luego
  8957. 6:45:05tenemos el elemento 3
  8958. 6:45:08y comenzamos una nueva interacción
  8959. 6:45:10porque porque ya se ejecutó una
  8960. 6:45:13iteración por cada elemento de este
  8961. 6:45:16arreglo ahora comenzamos con el otro
  8962. 6:45:18arreglo pero para eso comenzamos una
  8963. 6:45:22nueva iteración del ciclo externo
  8964. 6:45:24seleccionamos un nuevo arreglo 4 5 y 6 y
  8965. 6:45:28vamos a tener tres iteraciones del ciclo
  8966. 6:45:30anidado una para cuatro una para cinco y
  8967. 6:45:35una para seis
  8968. 6:45:36luego comenzamos otra interacción del
  8969. 6:45:39ciclo externo de este ciclo que tenemos
  8970. 6:45:42aquí afuera para seleccionar el próximo
  8971. 6:45:45arreglo anidado que tiene los números 7
  8972. 6:45:498 y 9 y tenemos tres iteraciones del
  8973. 6:45:53ciclo unida 2 7 8 y 9 y allí termina el
  8974. 6:45:58proceso esto es lo que estamos haciendo
  8975. 6:46:00básicamente si quitamos los mensajes con
  8976. 6:46:04con su punto los puedes ver que el
  8977. 6:46:06código es más compacto podemos verlo
  8978. 6:46:10mejor para cada uno de los arreglos
  8979. 6:46:12vamos a
  8980. 6:46:13tener una iteración y después para cada
  8981. 6:46:17instalación vamos a tener tres
  8982. 6:46:18iteraciones porque es una por cada
  8983. 6:46:20elemento y así es básicamente cómo
  8984. 6:46:23funcionan los ciclos anidados tenemos
  8985. 6:46:27iteraciones del ciclo externo y para
  8986. 6:46:29cada instalación del ciclo externo
  8987. 6:46:32tenemos iteraciones del ciclo interno
  8988. 6:46:35que se cumplen o se ejecutan como uno
  8989. 6:46:38esperaría por cada una de las
  8990. 6:46:41iteraciones del ciclo externo genial ya
  8991. 6:46:44sabes cómo trabajar con ciclos anidados
  8992. 6:46:47este concepto requiere práctica para
  8993. 6:46:50entender cómo funciona este tipo de
  8994. 6:46:52ciclo los ciclos anidados así que te
  8995. 6:46:54recomiendo practicar escribiendo
  8996. 6:46:56distintos tipos de ciclo for ciclos
  8997. 6:46:58organizados y usa con su punto log para
  8998. 6:47:01entender cómo van evolucionando las
  8999. 6:47:03variables y cómo se van actualizando así
  9000. 6:47:06que comenzamos con nuestro siguiente
  9001. 6:47:08tema
  9002. 6:47:15vamos a ver un tercer tipo de ciclo que
  9003. 6:47:18podemos usar en java skate que es
  9004. 6:47:21básicamente un ciclo web pero con un
  9005. 6:47:23pequeño cambio en el ciclo de uruguay
  9006. 6:47:27podremos traducirlo en español a hacer
  9007. 6:47:31mientras hacer tal cosa mientras una
  9008. 6:47:35condición es verdadera vamos a comparar
  9009. 6:47:37este tipo de ciclo con el ciclo web
  9010. 6:47:39comenzamos con un ejemplo del ciclo
  9011. 6:47:41while declaramos una variable y le
  9012. 6:47:45asignamos el valor 5 inicialmente esta
  9013. 6:47:48variable va a tener valor 5 y vamos a
  9014. 6:47:50decir en el ciclo wild vamos a repetir
  9015. 6:47:53una instrucción mientras el valor de x
  9016. 6:47:56sea menor que 10 entonces vamos a
  9017. 6:47:59mostrar el valor de x en este caso
  9018. 6:48:03y luego demostrar ese valor lo vamos a
  9019. 6:48:05incrementar en 1 así que vamos a tener
  9020. 6:48:08los números desde 5 hasta 9 aquí lo
  9021. 6:48:11vemos en la consola desde 5 hasta 9 esto
  9022. 6:48:15es un ciclo web pero un ciclo de uruguay
  9023. 6:48:17aún nos permite hacer otra cosa ya vas a
  9024. 6:48:20ver
  9025. 6:48:21tenemos que tomar esta parte del ciclo
  9026. 6:48:25guayo en la primera línea y escribirla
  9027. 6:48:28luego de la llave que cierra
  9028. 6:48:30esta llave agregamos punto y coma al
  9029. 6:48:33final y aquí
  9030. 6:48:35escribimos la palabra clave y puedes ver
  9031. 6:48:38que está en un color distinto porque es
  9032. 6:48:40una palabra clave en javascript y allí
  9033. 6:48:43tenemos un ciclo de uruguay la
  9034. 6:48:46diferencia de este ciclo con el ciclo
  9035. 6:48:48wire es que siempre se va a ejecutar al
  9036. 6:48:52menos una vez la secuencia de
  9037. 6:48:53instrucciones que tenemos aquí cuando
  9038. 6:48:56nosotros teníamos el ciclo aguayo
  9039. 6:48:58permíteme escribirlo aquí
  9040. 6:49:01nuevamente teníamos el ciclo while aquí
  9041. 6:49:05esta condición se evaluaba para ver si
  9042. 6:49:07era verdadera o falsa si era verdadera
  9043. 6:49:10se ejecutaba esta secuencia de
  9044. 6:49:13instrucciones por primera vez y será
  9045. 6:49:15falsa no se ejecutaban las instrucciones
  9046. 6:49:18simplemente se saltaba el ciclo y se
  9047. 6:49:21seguía más allá del ciclo pero con un
  9048. 6:49:23ciclo de uruguay esta secuencia de
  9049. 6:49:26instrucciones se ejecuta antes de
  9050. 6:49:29evaluar esta condición al menos una vez
  9051. 6:49:32entramos en el ciclo se ejecuta estas
  9052. 6:49:35líneas de código y luego evaluamos la
  9053. 6:49:38condición si es verdadera las ejecutamos
  9054. 6:49:41nuevamente y si es falsa continuamos la
  9055. 6:49:44ejecución normal del programa esa es la
  9056. 6:49:47diferencia que esta secuencia de
  9057. 6:49:49instrucciones se va a ejecutar al menos
  9058. 6:49:51una vez en un ciclo de uruguay el huevo
  9059. 6:49:54no necesariamente porque esta condición
  9060. 6:49:56puede ser falsa desde el principio y
  9061. 6:49:58puede ser que el ciclo no se ejecuten y
  9062. 6:50:01una sola vez no haya ni una sola
  9063. 6:50:03iteración
  9064. 6:50:05veamos un ejemplo vamos a asignarle el
  9065. 6:50:07valor 16 aquí inicialmente cuando la
  9066. 6:50:11definimos en el ciclo to one'
  9067. 6:50:13no vamos a verificar la condición que
  9068. 6:50:17tenemos acá hasta después de ejecutar
  9069. 6:50:19estas dos líneas el resultado es 16 se
  9070. 6:50:23muestra el valor de x se incrementa su
  9071. 6:50:27valor en 1 y luego se verifica la
  9072. 6:50:30condición
  9073. 6:50:32esa condición en este momento es falsa
  9074. 6:50:35porque el valor de x17
  9075. 6:50:37cuando se mostró x era 16 luego se
  9076. 6:50:41incrementó a 17 y esta condición es
  9077. 6:50:45falsa así que el ciclo no continúa pero
  9078. 6:50:49se ejecutado esta secuencia de
  9079. 6:50:50instrucciones una vez ahora veamos el
  9080. 6:50:53ciclo aguayo que pasa si tenemos esa
  9081. 6:50:56misma situación nuevamente vamos a
  9082. 6:50:58asignar el valor 16 a la variable x que
  9083. 6:51:02ocurre en este caso si comentamos este
  9084. 6:51:05ciclo anterior podemos ver que no se
  9085. 6:51:07muestra ningún valor en la consola
  9086. 6:51:09porque porque esta condición es falsa
  9087. 6:51:12desde el inicio x no es menor que 10
  9088. 6:51:15sino que su valor inicial antes de
  9089. 6:51:18llegar al ciclo era 16 esta secuencia de
  9090. 6:51:21instrucciones no se ejecuta ni una sola
  9091. 6:51:24vez y esa es la diferencia con el ciclo
  9092. 6:51:26de uruguay y estoy segura de que puedes
  9093. 6:51:29preguntar para qué me va a servir un
  9094. 6:51:31ciclo de uruguay y cuáles son las
  9095. 6:51:33situaciones de la vida real en las que
  9096. 6:51:35podría necesitarlo
  9097. 6:51:37una de las situaciones ideales para un
  9098. 6:51:39ciclo to work es cuando necesitas que el
  9099. 6:51:42usuario ingrese un valor tienes que
  9100. 6:51:44verificar si ese valor es válido o no
  9101. 6:51:46pero tienes que pedírselo al usuario al
  9102. 6:51:49menos una vez luego de que ingrese el
  9103. 6:51:52valor aquí en esta condición la puedes
  9104. 6:51:55verificar
  9105. 6:51:56si es válido continúas el programa y si
  9106. 6:52:00no es válido continúas pidiendo el valor
  9107. 6:52:02al usuario hasta que ingrese un valor
  9108. 6:52:04válido para tu programa bien ya sabes la
  9109. 6:52:09diferencia entre while y two way y
  9110. 6:52:11cuando puedes usar este tipo de ciclos
  9111. 6:52:13puedes trabajar con ciclos fort con
  9112. 6:52:15ciclos web y con ciclos de uruguay o en
  9113. 6:52:18javascript en la próxima parte vamos a
  9114. 6:52:21aplicar sus conocimientos para buscar un
  9115. 6:52:24perfil en una lista de contactos así que
  9116. 6:52:27te veo allí
  9117. 6:52:34ahora vamos a combinar tu conocimiento
  9118. 6:52:36de arreglos objetos ciclos y funciones
  9119. 6:52:41en este mini proyecto vamos a definir
  9120. 6:52:44una función que nos va a permitir buscar
  9121. 6:52:47un contacto en una lista de contactos
  9122. 6:52:50digamos que tenemos en nuestra lista
  9123. 6:52:53tres contactos puedes ver que esos
  9124. 6:52:55contactos están representados como
  9125. 6:52:58objetos aquí lo vemos de forma vertical
  9126. 6:53:01con cada propiedad y su valor
  9127. 6:53:05correspondiente pero esos objetos siguen
  9128. 6:53:08siendo elementos de un arreglo aquí
  9129. 6:53:10puedes ver el corchete que abre y el
  9130. 6:53:13corchete que cierra siguen siendo
  9131. 6:53:15elementos de un arreglo así que cada uno
  9132. 6:53:18de estos objetos ocupa un índice
  9133. 6:53:21específico en ese arreglo este objeto es
  9134. 6:53:24el primero así que tiene índice cero
  9135. 6:53:27éste tiene índice 1 y éste tiene índice
  9136. 6:53:312 así que simplemente podemos integrar
  9137. 6:53:34sobre el arreglo como lo hemos hecho
  9138. 6:53:36hasta ahora con un ciclo fuera
  9139. 6:53:39a cada uno de esos objetos y eso es lo
  9140. 6:53:42que vamos a hacer vamos a definir una
  9141. 6:53:44función que va a permitirnos conseguir
  9142. 6:53:48una propiedad de un contacto vamos a
  9143. 6:53:51buscar el contacto en base a su nombre
  9144. 6:53:53vamos a asumir que el nombre es único y
  9145. 6:53:56en base a una propiedad que nosotros
  9146. 6:53:59especificamos vamos a obtener su valor
  9147. 6:54:01si la propiedad existe veamos como vamos
  9148. 6:54:05a implementar esta función se va a
  9149. 6:54:07llamar buscar perfil en la función va a
  9150. 6:54:10tomar un nombre y una propiedad por
  9151. 6:54:13ejemplo digamos que yo quiero conseguir
  9152. 6:54:16el apellido de el contacto con el nombre
  9153. 6:54:19no ahora buscamos el nombre del contacto
  9154. 6:54:22y luego de conseguir al contacto
  9155. 6:54:24buscamos el valor de la propiedad que
  9156. 6:54:27especificamos en este caso sería
  9157. 6:54:29apellido y el valor retornado sería nada
  9158. 6:54:32va a funcionar con cualquier propiedad
  9159. 6:54:34que pasemos aquí y si la propiedad no
  9160. 6:54:36existe vamos a retornar una cadena
  9161. 6:54:38específica en este caso estoy intentando
  9162. 6:54:41el código con cuatro espacios para que
  9163. 6:54:43puedas ver mejor la estructura del
  9164. 6:54:45objeto
  9165. 6:54:46también vamos a intentar la función con
  9166. 6:54:48cuatro espacios en javascript puedes
  9167. 6:54:51usar dos espacios o cuatro espacios lo
  9168. 6:54:54importante es que sea consistente el uso
  9169. 6:54:56de los espacios
  9170. 6:54:57vamos a escribir un ciclo for aquí para
  9171. 6:55:02poder integrar sobre los elementos del
  9172. 6:55:04arreglo vamos a acceder al arreglo
  9173. 6:55:09directamente en el arreglo contactos que
  9174. 6:55:12es una variable global puede ser usada
  9175. 6:55:15dentro de las funciones del programa
  9176. 6:55:17porque está definida en el programa
  9177. 6:55:20principal puedes ver el mismo patrón que
  9178. 6:55:22hemos usado para integrar sobre los
  9179. 6:55:25elementos de un arreglo
  9180. 6:55:27inicialmente el valor de i es igual a 0
  9181. 6:55:29porque vamos a usar y como un índice y
  9182. 6:55:32vamos a continuar el proceso mí y vamos
  9183. 6:55:35a continuar el proceso mientras el valor
  9184. 6:55:38de y sea menor que el tamaño de la lista
  9185. 6:55:41de contactos su longitud
  9186. 6:55:43y en cada instalación vamos a
  9187. 6:55:45incrementar el valor de iu en 1 así que
  9188. 6:55:48escribimos y + + dentro del ciclo que
  9189. 6:55:52vamos a hacer tenemos un condicional
  9190. 6:55:54vamos a acceder a cada uno de los
  9191. 6:55:56contactos en el arreglo usando el índice
  9192. 6:56:00y recuerda que la variable i es la
  9193. 6:56:03variable del ciclo y se va a actualizar
  9194. 6:56:05automáticamente
  9195. 6:56:07inicialmente su valor va a ser cero así
  9196. 6:56:09que vamos a poder acceder al elemento
  9197. 6:56:12del arreglo en el índice 0 luego cuando
  9198. 6:56:15se actualice a 1 podemos acceder al
  9199. 6:56:18elemento en el índice 1 que es este
  9200. 6:56:20objeto y luego en el índice 2 tenemos
  9201. 6:56:23este objeto y así sucesivamente para
  9202. 6:56:26cualquier cantidad de contactos que
  9203. 6:56:28tengamos en el arreglo entonces aquí
  9204. 6:56:31estamos accediendo al contacto
  9205. 6:56:33correspondiente pero en base a su nombre
  9206. 6:56:37y para eso vamos a acceder a la
  9207. 6:56:39propiedad nombre del contacto que
  9208. 6:56:42corresponde
  9209. 6:56:43aquí accedemos al objeto y aquí
  9210. 6:56:46connotación de punto estamos accediendo
  9211. 6:56:49a su nombre y luego lo comparamos con el
  9212. 6:56:53operador de igualdad estricta con el
  9213. 6:56:55nombre que queremos conseguir este es el
  9214. 6:56:58nombre de contacto que queremos
  9215. 6:57:00conseguir si eso es verdad si
  9216. 6:57:02conseguimos al contacto que buscamos
  9217. 6:57:05entonces qué vamos a hacer en ese caso
  9218. 6:57:09tenemos que retornar el valor de la
  9219. 6:57:11propiedad que corresponde vamos a tomar
  9220. 6:57:15ese contacto el que estamos verificando
  9221. 6:57:18y vamos a acceder a la propiedad que
  9222. 6:57:21especificamos como parámetro aquí no
  9223. 6:57:24podemos usar notación de punto porque
  9224. 6:57:27esta es una variable si usáramos
  9225. 6:57:29notación de punto en lugar de notación
  9226. 6:57:31de corchetes se buscaría una propiedad
  9227. 6:57:34cuyo nombre cuyo nombre en realidad sea
  9228. 6:57:37propiedad o sea no no se va a reemplazar
  9229. 6:57:39el valor de la variable aquí sino que se
  9230. 6:57:43va a buscar una propiedad con este
  9231. 6:57:44nombre y eso no es lo que queremos
  9232. 6:57:48queremos que se reemplace aquí el valor
  9233. 6:57:50de esta variable del parámetro así que
  9234. 6:57:53usamos notación de corchetes
  9235. 6:57:55si esa propiedad existe su valor se va a
  9236. 6:57:58retornar pero también tenemos que
  9237. 6:58:01manejar el caso en el que la propiedad
  9238. 6:58:03no exista por ejemplo si se intenta
  9239. 6:58:06acceder a una propiedad que no está en
  9240. 6:58:09el objeto del contacto tenemos que
  9241. 6:58:11retornar una cadena de caracteres que
  9242. 6:58:15avise que ocurrió este caso hay en
  9243. 6:58:17javascript hay una forma muy sencilla y
  9244. 6:58:20concisa de escribirlo decimos si la
  9245. 6:58:23propiedad existe retorne a esa propiedad
  9246. 6:58:26pero si esa propiedad no existe este
  9247. 6:58:29valor va a ser anti find y por lo tanto
  9248. 6:58:32no podemos usar el operador org para
  9249. 6:58:37retornar esta cadena de caracteres en su
  9250. 6:58:39lugar la propiedad no existe
  9251. 6:58:43en una sola línea estamos diciendo si la
  9252. 6:58:45propiedad existe retorna la propiedad y
  9253. 6:58:48si no existe retorna la cadena de
  9254. 6:58:51caracteres que tenemos aquí es como un
  9255. 6:58:53respaldo y esos son casos que tenemos
  9256. 6:58:56que siempre prevenir en nuestro código
  9257. 6:58:58que podría salir mal si eso no se cumple
  9258. 6:59:01eso es en el caso de que el contacto en
  9259. 6:59:04realidad exista porque se consiguió su
  9260. 6:59:07nombre pero la propiedad no existe
  9261. 6:59:09también está la posibilidad de que el
  9262. 6:59:12contacto no exista el contacto en sí en
  9263. 6:59:16ese caso el ciclo for va a ejecutar
  9264. 6:59:19todas sus iteraciones una por cada
  9265. 6:59:21contacto en la lista esta condición
  9266. 6:59:24nunca va a ser nunca va a ser verdadera
  9267. 6:59:27y por lo tanto se va a completar este
  9268. 6:59:30ciclo y se va a pasar a la siguiente
  9269. 6:59:33línea
  9270. 6:59:34qué deberíamos hacer retornar una cadena
  9271. 6:59:38de caracteres que diga el contacto no
  9272. 6:59:41está en la lista de contactos y así
  9273. 6:59:45tenemos nuestra función implementada
  9274. 6:59:48vamos a enterar sobre los elementos de
  9275. 6:59:51el arreglo contactos cada uno de esos
  9276. 6:59:54elementos es un objeto accedemos a ese
  9277. 6:59:57objeto y decidimos si su nombre es igual
  9278. 7:00:00el nombre que buscamos retornamos la
  9279. 7:00:02propiedad sino si la propiedad no existe
  9280. 7:00:06retornamos esta cadena y si nunca se
  9281. 7:00:09consigue ese contacto retornamos esta
  9282. 7:00:12cadena de caracteres el contacto no está
  9283. 7:00:14en la lista genial
  9284. 7:00:17vamos a probar nuestra función buscar
  9285. 7:00:20perfil vamos a llamar a la función con
  9286. 7:00:24el nombre en ahora y digamos que
  9287. 7:00:27queremos acceder a sus gustos and ahora
  9288. 7:00:30le gustan la pizza y la programación
  9289. 7:00:33vamos a ver en la consola vamos a ver en
  9290. 7:00:37la consola pero como el resultado se
  9291. 7:00:39retorna para mostrarlo en la consola
  9292. 7:00:42tenemos que usar con su punto lock aquí
  9293. 7:00:45abrimos la consola y veamos el resultado
  9294. 7:00:47pizza y programación exactamente lo que
  9295. 7:00:51esperábamos
  9296. 7:00:53ahora probemos con el siguiente contacto
  9297. 7:00:55ya vamos a buscar perfil
  9298. 7:00:58y tenemos a harry y queremos buscar su
  9299. 7:01:03apellido
  9300. 7:01:04queremos saber su apellido si abrimos la
  9301. 7:01:06consola aquí vemos potter vamos a borrar
  9302. 7:01:10este línea aquí vemos potter solo
  9303. 7:01:13mantenemos la de harry y apellido ahora
  9304. 7:01:17sí quiero acceder a el número de
  9305. 7:01:21teléfono de sherlock también lo puedo
  9306. 7:01:24hacer y aquí veo el valor que tenemos
  9307. 7:01:27aquí exactamente el mismo genial
  9308. 7:01:30funciona correctamente cuando el
  9309. 7:01:32contacto y la propiedad están en el
  9310. 7:01:34arreglo probemos también está en el
  9311. 7:01:37contacto o si el contacto no existe
  9312. 7:01:40digamos que queremos acceder al contacto
  9313. 7:01:42no ahora pero a una propiedad que no
  9314. 7:01:46existe en ese contacto en este objeto
  9315. 7:01:49sabemos que en ahora es un contacto aquí
  9316. 7:01:52es el primer objeto pero no tiene una
  9317. 7:01:55propiedad llamada dirección aquí en
  9318. 7:01:58estas opciones
  9319. 7:01:59veamos el resultado la propiedad no
  9320. 7:02:02existe exactamente lo que tenemos aquí
  9321. 7:02:05cuando se trata de acceder a la
  9322. 7:02:07propiedad dirección en ese objeto este
  9323. 7:02:11valor es anti find porque la propiedad
  9324. 7:02:13no existe en ese caso se retorna esta
  9325. 7:02:17cadena de caracteres ahora veamos el
  9326. 7:02:20caso final en el cual el contacto no
  9327. 7:02:22existe digamos que queremos acceder al
  9328. 7:02:25número de pop en ese caso el contacto no
  9329. 7:02:28está en la lista de retorno esta cadena
  9330. 7:02:32de caracteres porque el ciclo se
  9331. 7:02:34completó esta condición esta condición
  9332. 7:02:37nunca fue verdadera nunca se retorno un
  9333. 7:02:40valor así que el ciclo se completó y
  9334. 7:02:43pasamos a esta línea y se retorna este
  9335. 7:02:45mensaje genial ya completamos este mini
  9336. 7:02:49proyecto puedes ver como ya puedes
  9337. 7:02:51combinar todos tus conocimientos para
  9338. 7:02:53trabajar con arreglos con objetos con
  9339. 7:02:57funciones con parámetros argumentos
  9340. 7:03:00ciclos condicionales sentencias vistas
  9341. 7:03:04y cadenas de caracteres y operadores
  9342. 7:03:07todo se va combinando para permitirte
  9343. 7:03:10escribir programas más poderosos
  9344. 7:03:18ahora vamos a ver cómo puedes generar un
  9345. 7:03:21número aleatorio en javascript tenemos
  9346. 7:03:23todas las herramientas que necesitamos
  9347. 7:03:25para generar un número aleatorio en
  9348. 7:03:27javascript simplemente tenemos que usar
  9349. 7:03:30la palabra más que significa matemáticas
  9350. 7:03:33vamos a definir una función que se va a
  9351. 7:03:37llamar generar fracción aleatoria esta
  9352. 7:03:40función no va a tomar argumentos sino
  9353. 7:03:43que va a retornar un valor aleatorio
  9354. 7:03:45como vamos a generar ese valor
  9355. 7:03:49la clave es escribir esto que tenemos
  9356. 7:03:51aquí más más con la m mayúscula si lo
  9357. 7:03:55escribimos con minúscula ves que no
  9358. 7:03:57tiene ningún color especial pero cuando
  9359. 7:04:00lo escribimos con mayúscula si tiene un
  9360. 7:04:03color especial porque representa lo que
  9361. 7:04:06podemos ver aquí es un objeto que nos da
  9362. 7:04:09a funciones matemáticas básicas y
  9363. 7:04:11constantes
  9364. 7:04:13una de esas funciones matemáticas
  9365. 7:04:15básicas que podemos usar es la función
  9366. 7:04:18random que significa aleatorio en
  9367. 7:04:20español esta función no toma ningún
  9368. 7:04:24parámetro no necesita argumentos para
  9369. 7:04:27retornar un valor aleatorio
  9370. 7:04:29el método retorna un valor aleatorio
  9371. 7:04:32entre 0 y 1 pero 1 el 1 no está incluido
  9372. 7:04:37en los posibles resultados así que en
  9373. 7:04:40notación matemática tendríamos algo así
  9374. 7:04:43tendríamos 0 y el 1 no estaría incluido
  9375. 7:04:47en el resultado
  9376. 7:04:49el 0 si estaría incluido en los posibles
  9377. 7:04:52resultados
  9378. 7:04:53así que para generar un rango vamos a
  9379. 7:04:56tener que hacer algo específico porque
  9380. 7:04:58el 1 no va a estar incluido allí vamos a
  9381. 7:05:00probar nuestra función vamos a llamarla
  9382. 7:05:03y vamos a mostrar en la consola el valor
  9383. 7:05:06general vamos a llamarla muchas veces
  9384. 7:05:09tres cuatro cinco o seis veces y vemos
  9385. 7:05:13el resultado aquí vemos que los
  9386. 7:05:15resultados son números aleatorios con
  9387. 7:05:17muchos decimales
  9388. 7:05:19esos números aleatorios van a ser muy
  9389. 7:05:21útiles para generar números aleatorios
  9390. 7:05:23en un rango específico por ejemplo si
  9391. 7:05:26necesitamos números entre 3 y 5 entre 10
  9392. 7:05:28y 15 vamos a poder hacerlo en base a
  9393. 7:05:31estos valores que los vamos a tener que
  9394. 7:05:33transformar un poquito
  9395. 7:05:35pero este es el principio básico nunca
  9396. 7:05:38uno de estos resultados puede ser uno
  9397. 7:05:40que recuerda eso entre cero y uno pero
  9398. 7:05:44nunca pueden ser uno exactamente no
  9399. 7:05:47necesariamente necesitas llamar a más
  9400. 7:05:49punto random dentro de una función
  9401. 7:05:51también en este caso lo hicimos para
  9402. 7:05:55definir una función que podríamos llamar
  9403. 7:05:57pero también podemos llamarlo
  9404. 7:06:00simplemente en nuestro programa donde
  9405. 7:06:02necesitemos ese valor aleatorio o
  9406. 7:06:05podemos asignar el valor una variable
  9407. 7:06:07puedes ver aquí que generó un número
  9408. 7:06:09aleatorio y también podemos asignarlo
  9409. 7:06:13a una variable por ejemplo aquí tenemos
  9410. 7:06:16var número aleatorio
  9411. 7:06:19esto va a generar el valor y lo
  9412. 7:06:21asignamos a una variable y luego si
  9413. 7:06:24mostramos el valor de esa variable en la
  9414. 7:06:27consola vamos a tener el resultado
  9415. 7:06:29puedes ver el número que tenemos acá en
  9416. 7:06:32la próxima parte vamos a ver cómo puede
  9417. 7:06:35generar números aleatorios
  9418. 7:06:37enteros en ya busquets lo veremos en la
  9419. 7:06:40próxima parte así que te veo allí
  9420. 7:06:48así como puede generar números decimales
  9421. 7:06:51aleatorios en javascript también podemos
  9422. 7:06:54escribir una expresión que nos permita
  9423. 7:06:57convertir esos números decimales a
  9424. 7:07:00números enteros dentro de un rango
  9425. 7:07:02específico
  9426. 7:07:04vamos a ver cómo puedes obtener un
  9427. 7:07:07número aleatorio
  9428. 7:07:09entre 0 y 19 digamos por ejemplo lo que
  9429. 7:07:13tenemos que escribir es
  9430. 7:07:16esto que tenemos aquí más flores esto va
  9431. 7:07:20a ser toda la magia de la expresión más
  9432. 7:07:22vimos que es un objeto que nos permite
  9433. 7:07:25usar funciones y constantes matemáticas
  9434. 7:07:27esencial es una de esas funciones
  9435. 7:07:30representada como un método explore flor
  9436. 7:07:34lo que hace es
  9437. 7:07:36aquí nos lo explica la documentación es
  9438. 7:07:39retornar el mayor número entero que es
  9439. 7:07:43menor o igual a su argumento numérico al
  9440. 7:07:46número que pasamos entre paréntesis lo
  9441. 7:07:49que hace flor básicamente es que trunca
  9442. 7:07:52la parte de encima básicamente lo que
  9443. 7:07:55hace es tomar la parte entera de lo que
  9444. 7:07:57está entre paréntesis
  9445. 7:07:58entre paréntesis tenemos que generar ese
  9446. 7:08:02número aleatorio + punto brandon
  9447. 7:08:04recuerda que ese número aleatorio va a
  9448. 7:08:06estar entre 0 y 10 puede ser uno de esos
  9449. 7:08:10valores pero uno nunca va a ser uno de
  9450. 7:08:13esos valores no incluye al valor 1 como
  9451. 7:08:16podemos transformar este valor en un
  9452. 7:08:18entero
  9453. 7:08:19para obtener el rango que queremos hay
  9454. 7:08:22que multiplicarlo por un entero
  9455. 7:08:24vamos a ver la lógica que tenemos acá
  9456. 7:08:27este valor va a ser un decimal entre 0 y
  9457. 7:08:311 sin incluir 1 como no puede ser 1 este
  9458. 7:08:35producto nunca va a ser 20 va a ser 19
  9459. 7:08:39punto algo nunca 20 exactamente y como
  9460. 7:08:43estamos aplicando la función flor ese
  9461. 7:08:46número va a ser truncado adiós 19 si es
  9462. 7:08:5019 punto algo el resultado va a ser 19
  9463. 7:08:55lo que se va a asignar a esta variable
  9464. 7:08:57ahí ya tenemos un límite superior para
  9465. 7:09:00el rango de valores que podemos obtener
  9466. 7:09:02y el valor de más punto random puede ser
  9467. 7:09:060 es el mínimo valor que puede tener así
  9468. 7:09:09que 0 por 20 sería 0 y cuando lo
  9469. 7:09:12aplicamos flórez el resultado sería 0 y
  9470. 7:09:15el valor aquí sería 0 así que estamos
  9471. 7:09:18obteniendo un rango de valores que va
  9472. 7:09:21desde 0 hasta 19 inclusivo y es
  9473. 7:09:24exactamente lo que necesitábamos si
  9474. 7:09:27mostramos este número aleatorio en la
  9475. 7:09:30consola podemos verlo en este caso es 12
  9476. 7:09:34el número aleatorio que se generó
  9477. 7:09:36probablemente el resultado de haya sido
  9478. 7:09:3812 puntos algo y este método flor lo
  9479. 7:09:42redondeo o lo lo truncó truncó los
  9480. 7:09:45decimales y el número 12 tomó la parte
  9481. 7:09:48ente parte entera ahora vamos a hacer
  9482. 7:09:51algo interesante que puedes usar en tus
  9483. 7:09:53programas vamos a definir una función
  9484. 7:09:56que genere un número entero aleatorio
  9485. 7:09:59esa función va a tener un solo parámetro
  9486. 7:10:03el límite superior del rango de números
  9487. 7:10:06que queremos generar y vamos a escribir
  9488. 7:10:09la expresión que teníamos antes de forma
  9489. 7:10:12general vamos a retornar el valor
  9490. 7:10:15y vamos a aplicar el método flor
  9491. 7:10:18vamos a generar un número aleatorio
  9492. 7:10:20entre 0 y 1 sin incluir 1 pero esta vez
  9493. 7:10:25en lugar de multiplicar por 20 que era
  9494. 7:10:27un número fijo un número que no podíamos
  9495. 7:10:30cambiar vamos a multiplicarlo por el
  9496. 7:10:34valor del parámetro que es el límite
  9497. 7:10:36superior entonces eso ya nos está
  9498. 7:10:39permitiendo generar valores enteros
  9499. 7:10:41entre 0 y el límite superior sin incluir
  9500. 7:10:45lo que aquí podemos agregar un
  9501. 7:10:47comentario generar 3 0
  9502. 7:10:51y el límite superior sin incluirlo bien
  9503. 7:10:57vamos a probar esta función si la
  9504. 7:11:00llamamos con un valor de 5 vamos a poder
  9505. 7:11:03generar un valor aleatorio un número
  9506. 7:11:06entero aleatorio entre 0 y 5 siempre va
  9507. 7:11:10a ser entero el resultado porque estamos
  9508. 7:11:12usando el método flores vamos a mostrar
  9509. 7:11:15el valor en la consola
  9510. 7:11:17y vamos a mostrar
  9511. 7:11:19digamos cinco veces cinco valores
  9512. 7:11:22aleatorios aquí puedes ver 0 4 3 3 y 2 0
  9513. 7:11:28es una de las posibles opciones que
  9514. 7:11:31podemos obtener pero 5 no es una de las
  9515. 7:11:34posibilidades
  9516. 7:11:35y no lo vemos tampoco entre estas
  9517. 7:11:37opciones es pero estas opciones fueron
  9518. 7:11:40generadas aleatoriamente si queremos
  9519. 7:11:43también intentar generar muchos números
  9520. 7:11:45aleatorios podemos hacerlo con un ciclo
  9521. 7:11:48vamos a dejar con un ciclo vamos a dejar
  9522. 7:11:51solo una de estas líneas y vamos a
  9523. 7:11:53escribir un ciclo para repetir este
  9524. 7:11:57proceso de generar un número aleatorio
  9525. 7:12:01cuantas veces queremos repetir la
  9526. 7:12:03operación
  9527. 7:12:04digamos que queremos repetirla
  9528. 7:12:0715 veces 15 números aleatorios
  9529. 7:12:10vamos a ejecutar este código 15 veces
  9530. 7:12:14esta línea y si abrimos la consola
  9531. 7:12:17podemos ver estos resultados puedes ver
  9532. 7:12:20que todos los números enteros están en
  9533. 7:12:23el rango de 0 hasta 4 inclusive en
  9534. 7:12:26ningún lado vemos el número 5 genial ya
  9535. 7:12:29sabes cómo generar un entero aleatorio
  9536. 7:12:32en javascript
  9537. 7:12:34desde cero hasta un límite superior
  9538. 7:12:36también hay una forma de generar números
  9539. 7:12:39enteros aleatorios en un rango
  9540. 7:12:41específico con un límite inferior y un
  9541. 7:12:44límite superior es lo que vamos a ver en
  9542. 7:12:46la próxima parte te espero allí
  9543. 7:12:54anteriormente estábamos en parte
  9544. 7:12:57limitados a generar un número entero
  9545. 7:12:59entre 0 y un límite superior pero
  9546. 7:13:02también podemos generar números enteros
  9547. 7:13:05aleatorios en un rango específico con un
  9548. 7:13:08límite inferior y un límite superior
  9549. 7:13:10digamos entre 5 y 15 entre 20 y 50 entre
  9550. 7:13:14cualquier rango que queramos especificar
  9551. 7:13:17claro con de números enteros para eso
  9552. 7:13:20tenemos que definir una función esa
  9553. 7:13:23función se va a llamar rango aleatorio
  9554. 7:13:25puedes asignarle cualquier nombre que
  9555. 7:13:28desees
  9556. 7:13:29y va a tener dos parámetros límite
  9557. 7:13:32inferior y límite superior para obtener
  9558. 7:13:37un número en ese rango aleatorio un
  9559. 7:13:39entero vamos a tener que escribir una
  9560. 7:13:42expresión parecida a la anterior pero
  9561. 7:13:44con ciertos cambios primero tenemos otra
  9562. 7:13:48vez flores s si lo vamos a volver a usar
  9563. 7:13:51también tenemos que generar un número
  9564. 7:13:54aleatorio entre 0 y 1 pero en este caso
  9565. 7:13:57en lugar de sólo multiplicar por el
  9566. 7:14:00límite superior vamos a tener que
  9567. 7:14:03multiplicar por
  9568. 7:14:04una expresión un poco más compleja esa
  9569. 7:14:09expresión es el límite superior
  9570. 7:14:11menos el límite inferior más 1
  9571. 7:14:17y luego
  9572. 7:14:19a ese resultado luego de haber
  9573. 7:14:21redondeado a este resultado se les suma
  9574. 7:14:24el límite inferior y esta es la
  9575. 7:14:28expresión que nos permite generar un
  9576. 7:14:30entero en ese rango
  9577. 7:14:33seguimos usando el método flor seguimos
  9578. 7:14:36usando el método random pero ahorita
  9579. 7:14:39estamos multiplicando por este valor el
  9580. 7:14:42límite superior menos el límite inferior
  9581. 7:14:45eso nos da como el tamaño del intervalo
  9582. 7:14:49más uno porque queremos incluir el
  9583. 7:14:52límite inferior
  9584. 7:14:54y luego a ese valor que se genera le
  9585. 7:14:58vamos a sumar el límite inferior
  9586. 7:15:00eso nos va a retornar un entero en ese
  9587. 7:15:02rango vamos a comprobarlo con algunas
  9588. 7:15:06pruebas
  9589. 7:15:08llamamos a rango aleatorio y probemos
  9590. 7:15:11con un límite inferior 3 y un límite
  9591. 7:15:13superior 8 vamos a llamar a esta función
  9592. 7:15:17varias veces a ver qué números obtenemos
  9593. 7:15:20recuerda que el rango entre 3 y 8 aquí
  9594. 7:15:23podemos verlo 5 5 3 4 7 y 4 son números
  9595. 7:15:29enteros en el rango que especificamos
  9596. 7:15:31podemos hacer como en el ejemplo
  9597. 7:15:33anterior y usar un ciclo para generar
  9598. 7:15:36varios digamos 15 números aleatorios y
  9599. 7:15:42vemos que siempre se mantienen en ese
  9600. 7:15:43rango en este caso vamos a ver que el
  9601. 7:15:46límite superior si se incluye en los
  9602. 7:15:49posibles resultados
  9603. 7:15:50aquí lo puedes ver 7 883 8
  9604. 7:15:55638 6 7 6 5 8 y 5 son todos números en
  9605. 7:16:01el rango entre 3 y 8 inclusive ambos
  9606. 7:16:05límites ahora vamos a ver cómo funciona
  9607. 7:16:08la función pares y que nos permite
  9608. 7:16:10generar un número entero
  9609. 7:16:12vamos a ver en la próxima parte del
  9610. 7:16:14curso
  9611. 7:16:20en chabás que podemos usar una función
  9612. 7:16:24específica que nos da el lenguaje para
  9613. 7:16:26convertir una cadena de caracteres que
  9614. 7:16:30representa un número en un número porque
  9615. 7:16:33recuerda que esto no es igual que esto
  9616. 7:16:37en un lenguaje de programación
  9617. 7:16:40este elemento es del tipo de dato string
  9618. 7:16:43o cadena de caracteres y este elemento
  9619. 7:16:46es un número entero lo que vamos a ver
  9620. 7:16:49ahora es cómo podemos convertir una
  9621. 7:16:51cadena de caracteres que representa un
  9622. 7:16:54número porque este es el número 5 cómo
  9623. 7:16:56lo podemos convertir al tipo de datos
  9624. 7:16:59entero para poder trabajar y operar con
  9625. 7:17:03ese valor en nuestro programa veamos
  9626. 7:17:06vamos a usar con su punto log para
  9627. 7:17:08mostrar el resultado pero la función que
  9628. 7:17:11nos interesa en este momento se llama
  9629. 7:17:14parte int
  9630. 7:17:16significa cómo convertir o
  9631. 7:17:20procesar un entero podemos decirlo así
  9632. 7:17:23esta función lo que hace es convertir
  9633. 7:17:25una cadena de caracteres a un entero que
  9634. 7:17:28es exactamente lo que nos dice la
  9635. 7:17:29documentación aquí en inglés convertir
  9636. 7:17:32una cadena de caracteres a un entero
  9637. 7:17:34cual cadena de caracteres bueno la que
  9638. 7:17:37vamos a pasar entre paréntesis
  9639. 7:17:39la cadena de caracteres es 5
  9640. 7:17:43vamos a mostrarla en la consola
  9641. 7:17:46aquí podemos ver 5 también podemos
  9642. 7:17:50convertir un número negativo entero
  9643. 7:17:54como ves aquí tenemos menos 47 y lo
  9644. 7:17:57bueno de esto es que podemos empezar a
  9645. 7:17:59operar con estos valores si lo queremos
  9646. 7:18:02en nuestro programa usando operaciones
  9647. 7:18:04aritméticas que normalmente usaríamos
  9648. 7:18:07con números también puedes convertir 0
  9649. 7:18:10de cadena de carácter a un entero y un
  9650. 7:18:13número decimal en ese caso el número
  9651. 7:18:16decimal se trunca se convierte a un
  9652. 7:18:20número en un número entero truncando o
  9653. 7:18:22eliminando la parte decimal en este caso
  9654. 7:18:24es 6 no se redondea porque en caso de
  9655. 7:18:27que se redondeará tendríamos 7 sino que
  9656. 7:18:30sólo se mantiene la parte entera aquí
  9657. 7:18:33puedes ver 6.2 el resultado es
  9658. 7:18:35exactamente el mismo sin importar en la
  9659. 7:18:37parte decimal también puedes usar esta
  9660. 7:18:40función para convertir un número decimal
  9661. 7:18:42en un número entero además
  9662. 7:18:44probemos funciona exactamente como
  9663. 7:18:47queríamos truncó la parte decimal pero
  9664. 7:18:50este era un número decimal no era una
  9665. 7:18:51cadena de caracteres pero si tratábamos
  9666. 7:18:54de convertir un valor que en realidad no
  9667. 7:18:56representa un número vamos a tener un
  9668. 7:18:58valor específico
  9669. 7:18:59por ejemplo a veces esta cadena de
  9670. 7:19:02caracteres no representa un número y por
  9671. 7:19:05lo tanto la función va a retornar esto
  9672. 7:19:08en n en javascript significa not el
  9673. 7:19:12nombre significa que no es un número
  9674. 7:19:15válido y por lo tanto no se pudo
  9675. 7:19:17convertir a un entero bien ya sabes que
  9676. 7:19:20puedes jon pero vamos a
  9677. 7:19:22comprobar nosotros mismos en la práctica
  9678. 7:19:25las ventajas de usar esta función
  9679. 7:19:28digamos que tenemos dos variables y
  9680. 7:19:31digamos que por alguna razón en nuestro
  9681. 7:19:34programa esas variables tienen cadenas
  9682. 7:19:36de caracteres asignadas pero en realidad
  9683. 7:19:38queremos trabajar con enteros si por
  9684. 7:19:43ejemplo necesitamos sumar los valores
  9685. 7:19:45que es lo que vamos a obtener una
  9686. 7:19:48concatenación o una unión de esas
  9687. 7:19:50cadenas de caracteres que no es lo que
  9688. 7:19:52queremos en este caso lo que necesitamos
  9689. 7:19:54hacer
  9690. 7:19:56es convertir las cadenas de caracteres a
  9691. 7:19:59enteros cuando llamamos a esta función
  9692. 7:20:02el valor retornado va a ser un entero
  9693. 7:20:04con todas sus propiedades
  9694. 7:20:06igual que aquí así que ahora sí vamos a
  9695. 7:20:09poder operar con estos valores como si
  9696. 7:20:12fueran números enteros aquí vemos que el
  9697. 7:20:14resultado es 12 el resultado correcto de
  9698. 7:20:17sumar 5 y 7 matemáticamente bien bien ya
  9699. 7:20:22sabes usar la función pares y esto es
  9700. 7:20:24muy importante en javascript y también
  9701. 7:20:27lo puedes usar con una pequeña variación
  9702. 7:20:30especificando la base esto lo vamos a
  9703. 7:20:33ver en el próximo tema así que
  9704. 7:20:35continuemos
  9705. 7:20:41también puedes usar la función park de
  9706. 7:20:45una forma que es todavía más poderosa
  9707. 7:20:47digamos porque puedes convertir una
  9708. 7:20:51cadena de caracteres en otro sistema
  9709. 7:20:53numérico al sistema decimal como un
  9710. 7:20:56entero veamos un ejemplo vamos a mostrar
  9711. 7:20:59el resultado con causa
  9712. 7:21:01y vamos a llamar a la función pares int
  9713. 7:21:05pero en este caso
  9714. 7:21:06vamos a pasar una cadena de caracteres
  9715. 7:21:08con ceros y unos cual sistemas numéricos
  9716. 7:21:12ese es el sistema numérico binario para
  9717. 7:21:16eso para especificar que el sistema
  9718. 7:21:18numérico de este número es binario
  9719. 7:21:21tenemos que pasar un segundo argumento
  9720. 7:21:23con un valor 2 que representa la base de
  9721. 7:21:26ese sistema es base 2 vamos a ver el
  9722. 7:21:29resultado el resultado es el número
  9723. 7:21:32decimal 55 que tenemos aquí y es
  9724. 7:21:36exactamente el equivalente de este
  9725. 7:21:38número binario
  9726. 7:21:40el sistema decimal puedes hacer la
  9727. 7:21:43conversión en las herramientas online y
  9728. 7:21:45vas a confirmar que si es el valor de
  9729. 7:21:47semana también podemos pasar el número
  9730. 7:21:50como un número como un número en
  9731. 7:21:53javascript sin ser una cadena de
  9732. 7:21:55caracteres necesariamente en este caso
  9733. 7:21:58sólo escribimos el número binario y
  9734. 7:22:00especificamos que la base de ese número
  9735. 7:22:02es 2 y tenemos el mismo resultado que si
  9736. 7:22:05lo escribiéramos como una cadena de
  9737. 7:22:07caracteres
  9738. 7:22:08genial nuestro es muy poderoso veamos un
  9739. 7:22:11ejemplo ahora con el sistema hexadecimal
  9740. 7:22:14cuya base es 16 en el sistema
  9741. 7:22:18hexadecimal podemos usar ciertas letras
  9742. 7:22:22este es un ejemplo de un número en el
  9743. 7:22:25sistema extra decimal su equivalente en
  9744. 7:22:29el sistema decimal sería vamos a ver
  9745. 7:22:32tenemos que cambiar aquí la base a 16 y
  9746. 7:22:35aquí tenemos el resultado 15
  9747. 7:22:381882
  9748. 7:22:40es exactamente el número en decimal si
  9749. 7:22:42usamos cualquier herramienta online que
  9750. 7:22:45convierta de hexadecimal a décimas en
  9751. 7:22:48este caso no funcionaría pasarlo esta
  9752. 7:22:50secuencia de caracteres sin las comillas
  9753. 7:22:52nos daría un error de sintaxis o que
  9754. 7:22:55sólo con el número binario que podríamos
  9755. 7:22:58hacer esa excepción pero aquí como
  9756. 7:23:00tenemos letras necesitamos representarlo
  9757. 7:23:02como una cadena de caracteres y tenemos
  9758. 7:23:05el número entero en el sistema decimal
  9759. 7:23:13ahora vamos a hablar un poquito sobre el
  9760. 7:23:16operador condicional también llamado el
  9761. 7:23:18operador ternario este operador nos
  9762. 7:23:21permite compactar lo que sería un
  9763. 7:23:24condicional en una sola línea ya vas a
  9764. 7:23:27ver como digamos que definimos una
  9765. 7:23:29función llamada retornar mínimo
  9766. 7:23:33esta función va a tomar dos valores xy
  9767. 7:23:37se iba a retornar el mínimo de ambos
  9768. 7:23:39valores
  9769. 7:23:41como lo haríamos con un condicional como
  9770. 7:23:44implementaríamos esta funcionalidad aquí
  9771. 7:23:47en la condición verificaremos si x es
  9772. 7:23:50menor que ya se retorna x si no se
  9773. 7:23:55retorna de aquí también tenemos que
  9774. 7:23:58escribir el punto y coma que es lo que
  9775. 7:24:01ocurre este condicional va a funcionar
  9776. 7:24:03correctamente
  9777. 7:24:05pero hay una forma más concisa de
  9778. 7:24:07escribir esta misma secuencia de
  9779. 7:24:10instrucciones en javascript y es el
  9780. 7:24:12operador condicional o ternario lo que
  9781. 7:24:15vamos a hacer es compactar todo esto en
  9782. 7:24:19una línea que va a comenzar con la
  9783. 7:24:21sentencia richard
  9784. 7:24:23vamos a borrar el condicional por ahora
  9785. 7:24:26pero ya sabes qué es lo que queremos
  9786. 7:24:28hacer con la función
  9787. 7:24:30escribimos richard y que vamos a
  9788. 7:24:32retornar el operador condicional
  9789. 7:24:35comienza con una condición la condición
  9790. 7:24:39va a ser esta la condición que
  9791. 7:24:41escribimos en el condicional anterior si
  9792. 7:24:43esa condición es verdadera vamos a
  9793. 7:24:46retornar el valor x este signo de
  9794. 7:24:49interrogación nos permite decir si esta
  9795. 7:24:52condición es verdadera retorna este
  9796. 7:24:55valor sino si la condición es falsa
  9797. 7:24:58retorna este valor
  9798. 7:25:00y esto es básicamente lo que vamos a
  9799. 7:25:03tener es un condicional compactado en
  9800. 7:25:06una sola línea con dos símbolos que
  9801. 7:25:08reemplazan toda esa sintaxis esta es la
  9802. 7:25:11condición y decidimos si esa condición
  9803. 7:25:13es verdadera retorna o evalúa a ese
  9804. 7:25:17valor que está inmediatamente luego de
  9805. 7:25:20el signo de interrogación y si esta
  9806. 7:25:22condición es falsa evalúa a este valor
  9807. 7:25:26en este caso como tenemos una sentencia
  9808. 7:25:29al victorense va a retornar cualquiera
  9809. 7:25:32de estos dos valores dependiendo del
  9810. 7:25:34resultado pero si no tuviéramos restaron
  9811. 7:25:37por ejemplo si tuviéramos solo con su
  9812. 7:25:39punto lo también lo que haríamos sería
  9813. 7:25:42solo mostrar cualquiera de estos dos
  9814. 7:25:44valores dependiendo del valor de esta
  9815. 7:25:47condición vamos a probar vamos a probar
  9816. 7:25:50la función estamos usando ahorita con su
  9817. 7:25:53punto loc
  9818. 7:25:54para mostrarte que puedes usar un
  9819. 7:25:56condicional donde lo necesites por
  9820. 7:25:59ejemplo vamos a llamar esta función con
  9821. 7:26:01los valores 4 y 7
  9822. 7:26:03si vemos la consola
  9823. 7:26:05el resultado es 4 que es el mínimo de
  9824. 7:26:07ambos valores así que funciona
  9825. 7:26:09correctamente vamos a probar con otras
  9826. 7:26:11combinaciones si pasamos 8 y 2 y 5 y 5
  9827. 7:26:15para probar distintos tipos de
  9828. 7:26:18combinaciones ahora que es el mínimo y
  9829. 7:26:21qué pasa si ambos son iguales aquí vemos
  9830. 7:26:24el resultado tenemos 4 para el primero
  9831. 7:26:26que es el mínimo tenemos 2 para el
  9832. 7:26:29segundo y 5 porque ambos valores son
  9833. 7:26:32iguales
  9834. 7:26:33así que está funcionando correctamente
  9835. 7:26:35exactamente lo que queríamos si esta
  9836. 7:26:37condición es verdadera la expresión se
  9837. 7:26:40reemplaza por el valor de x y si esta
  9838. 7:26:42condición es falsa la expresión se
  9839. 7:26:45reemplaza por el valor de y en este caso
  9840. 7:26:48estamos mostrando pero también podríamos
  9841. 7:26:51retornar el valor aquí lo podemos
  9842. 7:26:53retornar y lo que tendríamos que hacer
  9843. 7:26:56para mostrarlo en la consola es
  9844. 7:26:59simplemente escribir con su punto log
  9845. 7:27:01vamos a copiar y pegar aquí y agregamos
  9846. 7:27:04los paréntesis exactamente el mismo
  9847. 7:27:07resultado pero ahora retornamos el valor
  9848. 7:27:09x o el valor jet dependiendo de la
  9849. 7:27:11condición como puedes ver en lugar de
  9850. 7:27:13todas las líneas del condicional estamos
  9851. 7:27:15escribiendo esto de forma muy compacta
  9852. 7:27:18en una sola línea genial
  9853. 7:27:21ahora vamos a ver otro ejemplo
  9854. 7:27:24si definimos dos variables
  9855. 7:27:275 y b igual a 9 que se va a mostrar en
  9856. 7:27:32la consola si tenemos este operador
  9857. 7:27:35ternario
  9858. 7:27:37la condición es que sea mayor que ve en
  9859. 7:27:40este caso si es mayor que ven se retorna
  9860. 7:27:43a 2
  9861. 7:27:46y si no se retorna ve por tres analiza
  9862. 7:27:50esta estructura del operador ternario y
  9863. 7:27:54trata de determinar qué valor se va a
  9864. 7:27:56mostrar en la consola
  9865. 7:27:59vamos a ver la consola el valor es 27
  9866. 7:28:03porque esta condición es falsa no es
  9867. 7:28:08mayor que ve a 5 y 29 como esta
  9868. 7:28:11condición es falsa pasamos a esta opción
  9869. 7:28:14que está luego de los dos puntos
  9870. 7:28:17la expresión total va a evaluar a peu
  9871. 7:28:19por 339 por 327 si la condición fuese
  9872. 7:28:26verdadera por ejemplo si fuese 15
  9873. 7:28:29veríamos 17 que es a más 2 porque la
  9874. 7:28:33condición sería verdadera y en la
  9875. 7:28:36primera opción sería el resultado a más
  9876. 7:28:38217 porque hay 15 genial ya sabes cómo
  9877. 7:28:43trabajar con el operador ternario
  9878. 7:28:45recuerda esta es la estructura principal
  9879. 7:28:47primero tenemos la condición luego un
  9880. 7:28:51signo de interrogación el resultado si
  9881. 7:28:54la expresión es verdadera
  9882. 7:28:56luego dos puntos y el resultado si la
  9883. 7:28:58expresión es falsa
  9884. 7:29:00bien pasamos a la siguiente parte en la
  9885. 7:29:03que vamos a ver cómo puedes usar
  9886. 7:29:04múltiples operadores condicionales u
  9887. 7:29:07operadores ternarios
  9888. 7:29:15puedes combinar el poder de los
  9889. 7:29:18operadores condicionales o ternarios
  9890. 7:29:20escribiendo múltiples operadores
  9891. 7:29:23condicionales o ternarios uno dentro del
  9892. 7:29:26otro similar al concepto que vimos
  9893. 7:29:28anteriormente de anidado vamos a
  9894. 7:29:31escribir una función comparar números
  9895. 7:29:33vamos a definir esta función
  9896. 7:29:36esta función va a comparar dos números a
  9897. 7:29:38ive
  9898. 7:29:39sí
  9899. 7:29:41es igual a b en este caso digamos que
  9900. 7:29:45tenemos garantizado que ambos valores
  9901. 7:29:47van a ser del mismo tipo de datos eso lo
  9902. 7:29:50podemos especificar en la documentación
  9903. 7:29:52de la función así que vamos a usar este
  9904. 7:29:55operador de igualdad también podemos
  9905. 7:29:57usar el operador de igualdad estricta si
  9906. 7:30:00queremos verificar que el el tipo de
  9907. 7:30:02dato es igual es el mismo pero en este
  9908. 7:30:05caso vamos a trabajar con el de igualdad
  9909. 7:30:07en este caso si son iguales queremos
  9910. 7:30:09retornar una cadena de caracteres que
  9911. 7:30:11diga que ahí ven son iguales si ese no
  9912. 7:30:15es el caso entonces si es mayor que b
  9913. 7:30:18queremos retornar una cadena que diga
  9914. 7:30:21que a es mayor que b
  9915. 7:30:24y si te ese no es el caso tampoco es
  9916. 7:30:27menor que ve así que retornamos la
  9917. 7:30:30cadena a es menor que b
  9918. 7:30:34o el equivalente también podríamos poner
  9919. 7:30:37que p es mayor que a ver ya tenemos
  9920. 7:30:42nuestro condicional como podemos
  9921. 7:30:44reemplazarlo con un operador condicional
  9922. 7:30:47o ternario que nos permita simular la
  9923. 7:30:50funcionalidad de la cláusula el cif
  9924. 7:30:53veamos ya sabes lo que queremos lograr
  9925. 7:30:55por eso escribí el condicional aquí
  9926. 7:30:58inicialmente sabes lo que queremos
  9927. 7:31:00lograr con el operador condicional así
  9928. 7:31:02que vamos a comenzar a escribir lo
  9929. 7:31:04primero es escribir la sentencia richard
  9930. 7:31:07porque vamos a retornar el valor
  9931. 7:31:09retornado por el operador condicional lo
  9932. 7:31:13primero que hacemos con el operador
  9933. 7:31:14condicional siempre es escribir la
  9934. 7:31:16condición en este caso verificamos si es
  9935. 7:31:19igual a b estamos usando el operador de
  9936. 7:31:23igualdad ahora si ese es el caso que
  9937. 7:31:26queremos hacer queremos retornar la
  9938. 7:31:28cadena a y b son iguales
  9939. 7:31:31pero si ese no es el caso que queremos
  9940. 7:31:34hacer o sea cómo podemos simular que
  9941. 7:31:37tenemos una cláusula el shift recuerda
  9942. 7:31:40que cuando usamos un operador
  9943. 7:31:41condicional o ternario este es el valor
  9944. 7:31:44resultante si la condición es verdadera
  9945. 7:31:47pero si la condición es falsa el valor
  9946. 7:31:50que escribamos después de los dos puntos
  9947. 7:31:52es el valor que se va a retornar en este
  9948. 7:31:56caso como queremos seguir verificando
  9949. 7:31:59otras condiciones no vamos a escribir un
  9950. 7:32:02valor directamente aquí sino otro
  9951. 7:32:05operador condicional cuando escribimos
  9952. 7:32:07varias condiciones como vamos a hacer
  9953. 7:32:10ahorita es recomendado dividir este
  9954. 7:32:13operador en varias líneas para alinear
  9955. 7:32:16las condiciones verticalmente ponemos
  9956. 7:32:19los dos puntos aquí y aquí escribimos
  9957. 7:32:21nuestra condición
  9958. 7:32:24si esta condición es falsa este valor no
  9959. 7:32:27se retorna y pasamos aquí
  9960. 7:32:29después de los dos puntos ok escribimos
  9961. 7:32:32esta condición después de los dos puntos
  9962. 7:32:34y en este caso que es lo que queremos
  9963. 7:32:36retornar
  9964. 7:32:37queremos retornar una cadena que diga
  9965. 7:32:40que a es mayor que ven y si ese tampoco
  9966. 7:32:44es el caso si esta condición es falsa
  9967. 7:32:46entonces queremos retornar otro valor
  9968. 7:32:49otra cadena b es mayor que a
  9969. 7:32:55y allí tenemos nuestro operador
  9970. 7:32:57condicional o ternario es el equivalente
  9971. 7:33:00al condicional que escribimos
  9972. 7:33:01anteriormente tenemos nuestras dos
  9973. 7:33:04condiciones y tenemos lo que sería el
  9974. 7:33:08equivalente a la clausula eus como un
  9975. 7:33:10valor por defecto al que va a evaluar
  9976. 7:33:12esta expresión que se va a retornar si
  9977. 7:33:15las condiciones son falsas
  9978. 7:33:17en este caso veamos la lógica o si esta
  9979. 7:33:20condición es verdadera se retorna este
  9980. 7:33:21valor si esta condición es falsa pasamos
  9981. 7:33:25a este operador condicional y en la
  9982. 7:33:27lógica se va repitiendo si esta
  9983. 7:33:30condición es verdadera este valor se va
  9984. 7:33:32a retornar y si es falsa pasamos a la
  9985. 7:33:36siguiente parte que es este valor que
  9986. 7:33:38tenemos aquí que es como el valor de
  9987. 7:33:40respaldo si ambas son falsas genial
  9988. 7:33:44veamos cómo funciona la función con
  9989. 7:33:46algunos casos de prueba digamos 11 y 27
  9990. 7:33:50en este caso b es mayor que a así que
  9991. 7:33:54deberíamos ver ese mensaje tenemos que
  9992. 7:33:57mostrar este mensaje en la consola b es
  9993. 7:34:00mayor que a exactamente lo que
  9994. 7:34:02esperábamos
  9995. 7:34:04ahora vamos a cambiar los valores
  9996. 7:34:0627 y 11 ahora el mayor que ve a es mayor
  9997. 7:34:10que ver y finalmente 15 y 15 para probar
  9998. 7:34:14la primera condición
  9999. 7:34:16ahí ves son iguales genial con 1515 esta
  10000. 7:34:21condición es verdadera así que tenemos
  10001. 7:34:23esta cadena de caracteres luego con las
  10002. 7:34:26otras combinaciones de valores por
  10003. 7:34:27ejemplo 27 y 11 está condición era falsa
  10004. 7:34:31pero esta condición si era verdadera así
  10005. 7:34:34que esta cadena es el retorno y luego
  10006. 7:34:37con 11 y 27 ambas condiciones eran
  10007. 7:34:41falsas así que este valor se retorna por
  10008. 7:34:44defecto como la clausura es
  10009. 7:34:46genial ya sabes cómo usar múltiples
  10010. 7:34:49operadores condicionales o ternarios
  10011. 7:34:52recuerda que puedes alinear estas
  10012. 7:34:54condiciones para que sea más fácil de
  10013. 7:34:56leer y de entender visualmente y en la
  10014. 7:34:59última línea tiene el valor que se va a
  10015. 7:35:02retornar si las condiciones son falsas
  10016. 7:35:04bien pasemos a nuestro siguiente tema
  10017. 7:35:14buen trabajo y felicitaciones por llegar
  10018. 7:35:16a esta parte del curso ahora vamos a
  10019. 7:35:19empezar a ver la diferencia entre
  10020. 7:35:21declarar una variable comparar y
  10021. 7:35:23declarar la con ley una de las
  10022. 7:35:26diferencias principales es que cuando
  10023. 7:35:29declaramos una variable con var por
  10024. 7:35:32ejemplo en este caso digamos que
  10025. 7:35:35declaramos una variable que se llama
  10026. 7:35:37campista una persona que está acampando
  10027. 7:35:39que es parte de un campamento como
  10028. 7:35:42explicó horgan cuando la declaramos con
  10029. 7:35:45la palabra clave para james y david
  10030. 7:35:48vamos a poder hacerlo dos o más veces
  10031. 7:35:51podemos a declarar una variable más de
  10032. 7:35:54una vez vamos a mostrar el valor
  10033. 7:35:57en la consola y vemos david no vemos
  10034. 7:36:00ningún error porque la variable se pudo
  10035. 7:36:02declarar dos veces con var
  10036. 7:36:05pero cuando usamos led
  10037. 7:36:07la situación es diferente porque con led
  10038. 7:36:10no podemos declarar una variable más de
  10039. 7:36:12una vez es como una revisión extra que
  10040. 7:36:15hace en nuestro código de havas que para
  10041. 7:36:18avisarnos que no podemos volver a
  10042. 7:36:20declarar la digamos que la declaramos
  10043. 7:36:22con led y la tratamos de volver a
  10044. 7:36:25declarar ahora vemos error de sintaxis
  10045. 7:36:29el identificador otra forma de
  10046. 7:36:32referirnos a las variables nombre en el
  10047. 7:36:34programa el identificador campista ya ha
  10048. 7:36:38sido declarado absorber y pin declare
  10049. 7:36:41esta parte dice que ya ha sido declarado
  10050. 7:36:44ya fue declarado en el programa una vez
  10051. 7:36:46no la puedes volver a declarar lo que
  10052. 7:36:49podemos hacer es reasignar el valor o
  10053. 7:36:52cambiar el valor pero no podemos volver
  10054. 7:36:54a escribir la palabra let si borramos
  10055. 7:36:57led ahora si vemos el valor actualizado
  10056. 7:37:00david
  10057. 7:37:02sólo podemos usarla una sola vez
  10058. 7:37:05bien sigamos viendo más sobre el ámbito
  10059. 7:37:08de bar y led y cómo afectan dónde
  10060. 7:37:11podemos utilizar las variables en
  10061. 7:37:13nuestro programa
  10062. 7:37:21ahora hablemos sobre la diferencia en el
  10063. 7:37:24ámbito de las variables que son
  10064. 7:37:26declaradas con burt y con led cuando
  10065. 7:37:28usamos vaart estamos creando
  10066. 7:37:31algunas de estas dos opciones o una
  10067. 7:37:33variable global si está en el programa
  10068. 7:37:35principal o una variable local si está
  10069. 7:37:39definida en una función esas variables
  10070. 7:37:41si está dentro de una función se va a
  10071. 7:37:44poder utilizar en toda esa función pero
  10072. 7:37:46no fuera de la función lo que habíamos
  10073. 7:37:49visto anteriormente para las variables
  10074. 7:37:51globales y locales por ejemplo esta
  10075. 7:37:54sería una variable global vamos a
  10076. 7:37:57asignar el valor 4
  10077. 7:37:59si queremos usarla en nuestro programa
  10078. 7:38:02vamos a poder hacerlo sin ningún
  10079. 7:38:04problema fuera de la función o dentro de
  10080. 7:38:07alguna función que necesitemos podemos
  10081. 7:38:10mostrar el valor de la variable global y
  10082. 7:38:14actualizarla si necesitamos aquí vamos a
  10083. 7:38:17llamar a la función
  10084. 7:38:19para mostrar que podemos ver el valor de
  10085. 7:38:22la variable global y acceder a él aquí
  10086. 7:38:25tenemos 4 y 4 perfecto luego también
  10087. 7:38:28podemos dentro de la función usar bajar
  10088. 7:38:32para definir una variable local que solo
  10089. 7:38:35puede ser usada dentro de la función
  10090. 7:38:38podemos mostrar su valor también vemos 4
  10091. 7:38:414 y 8 que es el valor de la variable
  10092. 7:38:44local fuera de la función podemos
  10093. 7:38:47acceder a la variable global pero si
  10094. 7:38:50tratamos de acceder a la variable local
  10095. 7:38:52vamos a ver qué es lo que pasa vamos a
  10096. 7:38:55tener un error si abrimos la consola
  10097. 7:38:59puedes ver esto error de referencia mi
  10098. 7:39:02variable local no está definida cuando
  10099. 7:39:05intentamos acceder a esta variable local
  10100. 7:39:07que definimos dentro de la función en el
  10101. 7:39:11programa principal tenemos un error no
  10102. 7:39:14está definida la variable porque era
  10103. 7:39:16local cuando usamos para ese es el
  10104. 7:39:18efecto
  10105. 7:39:19pero ahora cuando usamos le estamos
  10106. 7:39:23restringiendo aún más el ámbito de la
  10107. 7:39:26variable el bloque o la expresión
  10108. 7:39:29específica donde se usa el bloque de
  10109. 7:39:31código su alcance está limitado a esa
  10110. 7:39:34expresión al bloque oa la declaración
  10111. 7:39:37donde se define vamos a ver un ejemplo
  10112. 7:39:41y aquí podemos cerrar la consola y
  10113. 7:39:44borrar el código que tenemos hasta ahora
  10114. 7:39:46digamos que queremos escribir un ciclo
  10115. 7:39:49force en nuestro programa puede ser
  10116. 7:39:51dentro de una función o en el programa
  10117. 7:39:53principal hasta ahora nosotros hemos
  10118. 7:39:55usado var en los ciclos para definir las
  10119. 7:39:58variables digamos que queremos
  10120. 7:40:00implementar este ciclo y ejecutarlo en
  10121. 7:40:03el programa estamos usando var si usamos
  10122. 7:40:07var en el ciclo esa variable va a tener
  10123. 7:40:12el ámbito que corresponda a donde está
  10124. 7:40:15definido el ciclo no está escrito el
  10125. 7:40:17ciclo por ejemplo aquí estamos en el
  10126. 7:40:19ámbito global porque estamos estamos en
  10127. 7:40:23el programa principal si estuviera
  10128. 7:40:25dentro de una función esta variable solo
  10129. 7:40:27se podría usar dentro de la función y
  10130. 7:40:30sería una variable local y por eso como
  10131. 7:40:33es una variable global en este caso
  10132. 7:40:35podemos usar la variable y aunque el
  10133. 7:40:38ciclo ya haya terminado porque sigue
  10134. 7:40:41presente en ese ámbito global de todo el
  10135. 7:40:44programa
  10136. 7:40:45veamos el resultado
  10137. 7:40:47aquí podemos ver ese valor 3 para
  10138. 7:40:50distinguir el mensaje vamos a vamos a
  10139. 7:40:53mostrar aquí la cadena variable para
  10140. 7:40:56distinguirlo de los valores que se
  10141. 7:40:59mostraron en el ciclo una vez que
  10142. 7:41:01terminó el ciclo entramos aquí y su
  10143. 7:41:04valor es 3 porque fue incrementada antes
  10144. 7:41:07de salir del ciclo pero aún así se puede
  10145. 7:41:10usar fuera del ciclo esa es la
  10146. 7:41:12diferencia si usamos led si escribimos
  10147. 7:41:15leds aquí en lugar de parar la variable
  10148. 7:41:19sólo se va a poder usar dentro del ciclo
  10149. 7:41:21no vamos a usarla aquí fuera de ese
  10150. 7:41:24bloque de código definido por las llaves
  10151. 7:41:27vamos a ver el resultado tenemos los
  10152. 7:41:30valores 0 1 y 2 que fueron mostrados por
  10153. 7:41:33el ciclo for y finalmente tenemos este
  10154. 7:41:36mensaje error de referencia y no está
  10155. 7:41:39definida cuando llegamos a este punto
  10156. 7:41:42del programa y sólo existe dentro de
  10157. 7:41:46este bloque de código
  10158. 7:41:47pero existe fuera así que en realidad
  10159. 7:41:51para variables de ciclo normalmente
  10160. 7:41:53podemos usar leds si no las necesitamos
  10161. 7:41:55fuera del ciclo también
  10162. 7:41:59hay una diferencia notable cuando usamos
  10163. 7:42:01leds en un condicional
  10164. 7:42:04vamos a ver digamos que tenemos un
  10165. 7:42:06condicional que
  10166. 7:42:08muestra un color
  10167. 7:42:11dependiendo del valor de esta variable
  10168. 7:42:13mostrar color si esta variable es
  10169. 7:42:16verdadera muestra el color y si no lo
  10170. 7:42:18muestra el color dentro del condicional
  10171. 7:42:21que es un bloque de código específico
  10172. 7:42:22podemos definir una variable usando leds
  10173. 7:42:26esa variable la estamos definiendo con
  10174. 7:42:29led así que solamente se va a poder usar
  10175. 7:42:31en este bloque de código
  10176. 7:42:34determinado por las llaves rodeado por
  10177. 7:42:37las llaves podemos usarlas dentro de ese
  10178. 7:42:39bloque sin problema vamos a decir mi
  10179. 7:42:42color
  10180. 7:42:43favorito es
  10181. 7:42:47y agregamos el color
  10182. 7:42:50al final de la cadena
  10183. 7:42:52ahora si intentamos acceder a la
  10184. 7:42:55variable color fuera de este bloque de
  10185. 7:42:58código que vamos a tener
  10186. 7:43:01vemos que dentro del bloque la variable
  10187. 7:43:04funciona perfectamente
  10188. 7:43:06aquí estamos dentro del bloque de código
  10189. 7:43:08pero una vez que nos vamos fuera de ese
  10190. 7:43:10bloque al programa principal tenemos
  10191. 7:43:13este error de referencia porque color no
  10192. 7:43:16está definida en esta parte del programa
  10193. 7:43:19como usamos led no se puede acceder
  10194. 7:43:22ahora diga ahora digamos que queremos
  10195. 7:43:25acceder a esa variable fuera del bloque
  10196. 7:43:27lo que haríamos es cambiarle por bar y
  10197. 7:43:31puedes ver que ahora el error desaparece
  10198. 7:43:34y podemos acceder a su valor más allá de
  10199. 7:43:37ese bloque de código donde fue definida
  10200. 7:43:39o declarar esas son las diferencias
  10201. 7:43:42principales entre bar y let bar crea una
  10202. 7:43:46variable que se puede usar a nivel
  10203. 7:43:48global con ámbito global o dentro de una
  10204. 7:43:51función pero les es más restrictivo y
  10205. 7:43:54restringe el ámbito de esa variable al
  10206. 7:43:56bloque de código o álex donde la
  10207. 7:43:59variable fue declarado definida genial
  10208. 7:44:03ya sabes estas diferencias y puedes
  10209. 7:44:05trabajar con bari lecce y escoger cuál
  10210. 7:44:08necesitas para tu programa los mismos
  10211. 7:44:11principios aplican si estuviéramos
  10212. 7:44:12dentro de una función va a ser va a
  10213. 7:44:15permitir que la variable se use en la
  10214. 7:44:17función pero si usamos led va a estar
  10215. 7:44:20restringido su uso hasta el bloque de
  10216. 7:44:23codhes vamos a pasar a nuestro siguiente
  10217. 7:44:26tema donde vamos a empezar a hablar
  10218. 7:44:27sobre la palabra reservada const que es
  10219. 7:44:30la tercera opción que tenemos para crear
  10220. 7:44:32o declarar una variable se ve en el
  10221. 7:44:35próximo tema
  10222. 7:44:42ahora es momento de ver la tercera
  10223. 7:44:44opción que podemos usar para declarar
  10224. 7:44:47una variable en javascript la palabra
  10225. 7:44:50reservado palabra clave consiste const
  10226. 7:44:53es una abreviación de constante en
  10227. 7:44:56inglés constant son variables que solo
  10228. 7:44:59pueden ser usadas para acceder a ese
  10229. 7:45:02valor no podemos modificar el valor una
  10230. 7:45:05vez que ya haya sido asignado por
  10231. 7:45:08primera vez veamos un ejemplo si
  10232. 7:45:11declaramos una variable con cost
  10233. 7:45:15y la llamamos mi constante y le
  10234. 7:45:19asignamos el valor 35
  10235. 7:45:23vamos a acceder a su valor para
  10236. 7:45:25mostrarte que si se puede acceder al
  10237. 7:45:28valor de la constante aquí tenemos es 35
  10238. 7:45:32pero veamos qué ocurre si queremos
  10239. 7:45:34cambiar el valor de esta variable por
  10240. 7:45:36ejemplo a 15 que va a ocurrir aquí vemos
  10241. 7:45:40un error en la segunda línea error de
  10242. 7:45:43tipo type r mi constante es read omb
  10243. 7:45:48read audi significa que sólo se puede
  10244. 7:45:51leer no se puede reasignar su valor o
  10245. 7:45:54modificar su valor después de que haya
  10246. 7:45:57sido asignado inicialmente
  10247. 7:45:59y aquí hay algo curioso que crees que va
  10248. 7:46:02a ocurrir si intentamos hacer esto
  10249. 7:46:04anteriormente comparar podíamos declarar
  10250. 7:46:07una variable y luego asignarle un valor
  10251. 7:46:09en otra línea también lo podríamos hacer
  10252. 7:46:12con led pero qué ocurre con cost vamos a
  10253. 7:46:15abrir la consola y vemos nos dice error
  10254. 7:46:17de sintaxis las declaraciones camps
  10255. 7:46:20requieren un valor de inicialización o
  10256. 7:46:24sea que no podemos partir esto en dos
  10257. 7:46:26líneas tenemos que asignar
  10258. 7:46:28en la misma línea y aquí vemos 35
  10259. 7:46:32correctamente
  10260. 7:46:34genial
  10261. 7:46:36muy importante es que por convención en
  10262. 7:46:38javascript las constantes como este
  10263. 7:46:41valor se escriben en mayúscula y se
  10264. 7:46:44separan las palabras con un guión bajo
  10265. 7:46:46eso lo usamos para distinguirlas
  10266. 7:46:49visualmente y para que nosotros y otros
  10267. 7:46:52desarrolladores sepan que no deben
  10268. 7:46:54tratar de cambiar el valor de esa
  10269. 7:46:56constante si la escribimos todo en
  10270. 7:46:59mayúsculas podemos ver este formato
  10271. 7:47:01igual la podemos usar en con su punto
  10272. 7:47:05lotes y vemos el valor 35 genial ahora
  10273. 7:47:09vamos a ver un ejemplo con una función
  10274. 7:47:12que vamos a usar para calcular el área
  10275. 7:47:15de un círculo ya me imagino que tienes
  10276. 7:47:18una idea de qué constante vamos a
  10277. 7:47:20declarar en esta función una constante
  10278. 7:47:23muy famosa vamos a declarar una
  10279. 7:47:25constante pi
  10280. 7:47:28en este caso vamos a usar el valor 3.14
  10281. 7:47:31digamos que queremos usar de forma
  10282. 7:47:33constante ese valor con dos decimales
  10283. 7:47:35aunque sabemos que tiene infinitos
  10284. 7:47:37decimales y vamos a verificar si el
  10285. 7:47:41radio es menor que cero si es menor que
  10286. 7:47:44cero vamos a usar el patrón de retorno
  10287. 7:47:47anticipado que aprendiste durante el
  10288. 7:47:49curso para retornar el valor and i find
  10289. 7:47:52si ese no es el caso entonces vamos a
  10290. 7:47:54retornar el valor de pi por el radio
  10291. 7:47:58elevado al cuadrado
  10292. 7:48:01este es el operador que nos permite
  10293. 7:48:03elevar un valor al cuadrado o cualquier
  10294. 7:48:07otra potencia dos asteriscos un
  10295. 7:48:10asterisco multiplicación y dos
  10296. 7:48:11asteriscos es elevar esta base a este
  10297. 7:48:15exponente ok así estamos implementando
  10298. 7:48:18la fórmula de tipo radio al cuadrado
  10299. 7:48:20para el área del círculo sino
  10300. 7:48:23definiéramos el pi como una constante
  10301. 7:48:25algo como esto podría ocurrir en nuestro
  10302. 7:48:28programa digamos qué no la estamos
  10303. 7:48:32definiendo como una constante así que la
  10304. 7:48:34vamos a escribir en minúscula
  10305. 7:48:37yo puedo cambiar el valor de pi a
  10306. 7:48:39digamos menos 45.2
  10307. 7:48:41imagínate el error que va a tener
  10308. 7:48:44nuestro programa si hacemos este cambio
  10309. 7:48:46inesperado sin darnos cuenta ese es el
  10310. 7:48:49riesgo que corremos cuando no creamos
  10311. 7:48:51constantes sino variables si necesitamos
  10312. 7:48:55que ese valor se mantenga exactamente
  10313. 7:48:58igual durante todo el programa
  10314. 7:49:00deberíamos declarar la con cost ahora
  10315. 7:49:03vamos a llamar a esta función con
  10316. 7:49:06distintos valores
  10317. 7:49:09el resultado de
  10318. 7:49:1178.5 si el radio 5 y 10 sería 314 el
  10319. 7:49:17área del círculo ok ya sabes la
  10320. 7:49:20importancia de usar como cuando queremos
  10321. 7:49:23que el valor de una variable no cambie
  10322. 7:49:25durante toda la ejecución del programa
  10323. 7:49:35vamos a hablar de un aspecto de cons que
  10324. 7:49:38debes tener presente cuando lo uses en
  10325. 7:49:41javascript cuando declaren una variable
  10326. 7:49:44con contesten ya ves que eso no
  10327. 7:49:46significa que ese valor no puede cambiar
  10328. 7:49:50significa que no podemos asignar un
  10329. 7:49:53valor nuevo a esa variable para ilustrar
  10330. 7:49:57esto vamos a ver cómo podemos mutar un
  10331. 7:49:59arreglo que fue declarado con coast
  10332. 7:50:02usamos como para declarar mi arreglo y
  10333. 7:50:06usamos la convención establecida para
  10334. 7:50:08las constantes el arreglo va a tener los
  10335. 7:50:11números 1 2 3 y 4
  10336. 7:50:14si intentamos reasignar el valor a otro
  10337. 7:50:18arreglo completamente distinto oa otro
  10338. 7:50:20arreglo en general que es lo que va a
  10339. 7:50:23ocurrir un error porque definimos el
  10340. 7:50:27arreglo con camps aquí lo vemos error de
  10341. 7:50:29tipo de tipo de dato me arreglo es read
  10342. 7:50:33omb y solo se puede leer o acceder al
  10343. 7:50:36valor pero algo que sí debes tener
  10344. 7:50:39presente es que no podemos asignar un
  10345. 7:50:42valor nuevo esa variable pero si podemos
  10346. 7:50:45cambiar los elementos de este regla
  10347. 7:50:48porque por ejemplo si hacemos esto
  10348. 7:50:50escribimos mi arreglo y reasignamos el
  10349. 7:50:53valor en el índice 0 a 5 y resignamos el
  10350. 7:50:57valor en el índice 1 a 6 y resignamos el
  10351. 7:51:03valor en el índice 2 a 7 y hacemos lo
  10352. 7:51:07mismo con el índice 3 a 8
  10353. 7:51:11si ahora mostramos el valor de mi
  10354. 7:51:15arreglo vamos a ver qué ocurre
  10355. 7:51:18sorprendentemente el arreglo fue mutado
  10356. 7:51:21cambio así que si podemos reasignar los
  10357. 7:51:24valores individuales de esta estructura
  10358. 7:51:26de datos de este arreglo que tenemos
  10359. 7:51:29aquí lo que no podemos es hacer una
  10360. 7:51:31asignación directa a esta variable luego
  10361. 7:51:34de declarar la pero si podemos usar la
  10362. 7:51:37notación de corchetes para reasignar los
  10363. 7:51:40valores del arreglo ahora vamos a ver
  10364. 7:51:43cómo puedes impedir la mutación de un
  10365. 7:51:45objeto y te digo que va a tener que ver
  10366. 7:51:48con el congelamiento si te da curiosidad
  10367. 7:51:50pasar la siguiente tema del curso
  10368. 7:51:58después del ejemplo de la parte anterior
  10369. 7:52:00estoy segura de que te debes estar
  10370. 7:52:03preguntando si existe alguna forma en
  10371. 7:52:05javascript de impedir la mutación de un
  10372. 7:52:08objeto de no permitir que se cambie la
  10373. 7:52:11estructura de un objeto en el caso
  10374. 7:52:14anterior era un arreglo pero ahorita
  10375. 7:52:16estamos hablando de objetos como los
  10376. 7:52:18objetos que vimos en esa parte
  10377. 7:52:20específica del curso y en realidad si
  10378. 7:52:23lines hay una forma de hacer que un
  10379. 7:52:25objeto sea inmutable en javascript
  10380. 7:52:29vamos a ver esto con un ejemplo
  10381. 7:52:32definamos un objeto con led simplemente
  10382. 7:52:35para comenzar a usar estas palabras
  10383. 7:52:37claves para definir variables y vamos a
  10384. 7:52:41asociar un color con su código
  10385. 7:52:44hexadecimal
  10386. 7:52:46digamos verde el tono de verde que cogí
  10387. 7:52:49corresponde a este código el azul
  10388. 7:52:52corresponde al código uno ve el negro
  10389. 7:52:55corresponde a 0 0 0 0 0
  10390. 7:53:00y finalmente blanco
  10391. 7:53:02que corresponde
  10392. 7:53:04efe efe
  10393. 7:53:06ok ya tenemos los colores que vamos a
  10394. 7:53:09necesitar y digamos que no queremos que
  10395. 7:53:12es objeto mute en ningún momento no
  10396. 7:53:15queremos cambiar estos valores en
  10397. 7:53:18ninguna circunstancia y no queremos que
  10398. 7:53:20se agreguen colores ni se borren colores
  10399. 7:53:23de este objeto básicamente queremos
  10400. 7:53:25congelarlo precisamente esa posibilidad
  10401. 7:53:28está disponible en javascript con el
  10402. 7:53:31método freeze que en inglés significa
  10403. 7:53:33congelar así que piensa en el invierno
  10404. 7:53:36cuando recuerdes este método cómo
  10405. 7:53:39podemos hacerlo con
  10406. 7:53:41objeto podemos ver la descripción nos da
  10407. 7:53:45funcionalidad que es común para todos
  10408. 7:53:47los objetos en javascript
  10409. 7:53:49pero en particular nos da acceso al
  10410. 7:53:52método freeze
  10411. 7:53:54este es un método que según su
  10412. 7:53:56descripción previene la modificación de
  10413. 7:54:00atributos de propiedades existentes y
  10414. 7:54:03sus valores y previenen la
  10415. 7:54:05incorporación o edición de nuevas
  10416. 7:54:07propiedades al objeto básicamente
  10417. 7:54:10congela el objeto en ese estado cuando
  10418. 7:54:12se ejecuta la línea entre paréntesis
  10419. 7:54:15tenemos que pasar la variable que
  10420. 7:54:17contiene el objeto
  10421. 7:54:19y así ya lo estamos congelando veamos
  10422. 7:54:22qué pasa si queremos agregar una
  10423. 7:54:26propiedad nueva por ejemplo a amarillo
  10424. 7:54:29con este código veamos el objeto luego
  10425. 7:54:33de intentar hacer este cambio veamos la
  10426. 7:54:36consola tenemos un error de tipo cuando
  10427. 7:54:39intentamos agregar esta propiedad error
  10428. 7:54:42de tipo no se puede agregar la propiedad
  10429. 7:54:45amarillo porque el objeto no es
  10430. 7:54:48extensivo lo que significa como
  10431. 7:54:50extensible no se le puede agregar nuevas
  10432. 7:54:52propiedades porque ya lo estamos
  10433. 7:54:55congelando aquí arriba ahora si
  10434. 7:54:57intentamos cambiar a cambiar el valor de
  10435. 7:55:00alguna propiedad existente vamos a ver
  10436. 7:55:02qué pasa digamos que queremos cambiarlo
  10437. 7:55:07este valor
  10438. 7:55:09este valor digamos vemos este error
  10439. 7:55:11error de tipo no se puede asignar a una
  10440. 7:55:14propiedad que únicamente se puede leer
  10441. 7:55:17ruiz dónde recuerdas que vimos ese
  10442. 7:55:19término es un tema anterior
  10443. 7:55:21que significa que sólo podemos acceder a
  10444. 7:55:23la propiedad y no la podemos cambiar esa
  10445. 7:55:26propiedad es verde del objeto tal el
  10446. 7:55:29objeto que estamos modificando
  10447. 7:55:31intentando modificar que es colores bien
  10448. 7:55:34así que ya puedes ver el efecto que
  10449. 7:55:37tiene freeze sobre un objeto digamos que
  10450. 7:55:40quiero borrar una propiedad de ese
  10451. 7:55:42objeto con delete vamos a intentar
  10452. 7:55:45borrar la propiedad verde a ver qué
  10453. 7:55:48ocurre nuevamente error de tipo no se
  10454. 7:55:51puede borrar la propiedad verde del
  10455. 7:55:53objeto porque ya lo congelamos así que
  10456. 7:55:57nuestro objeto está seguro de cualquier
  10457. 7:55:59acción durante el programa luego de
  10458. 7:56:01haberlo congelado genial ya sabes cómo
  10459. 7:56:04crear objetos inmutables en chabás que
  10460. 7:56:06en el próximo tema vamos a ver algo
  10461. 7:56:09interesante que se llama las funciones
  10462. 7:56:11flechas que nos permiten escribir
  10463. 7:56:12funciones de forma más concisa en
  10464. 7:56:15javascript
  10465. 7:56:22ahora vamos a ver un concepto nuevo
  10466. 7:56:24llamado funciones flecha las funciones
  10467. 7:56:28flechas son un tipo más compacto de
  10468. 7:56:31funciones que podemos escribir en
  10469. 7:56:33javascript que normalmente se utilizan
  10470. 7:56:35cuando necesitamos definir funciones
  10471. 7:56:38anónimas funciones anónimas son
  10472. 7:56:41funciones que no tienen un nombre
  10473. 7:56:42específico por ejemplo a veces vamos a
  10474. 7:56:45necesitar definir una función de esta
  10475. 7:56:48forma en lugar de la forma tradicional
  10476. 7:56:50que hemos usado que podemos hacer aquí
  10477. 7:56:53podemos retornar un nuevo objeto de
  10478. 7:56:55fecha esto nada más crea una un objeto
  10479. 7:56:59con la fecha actual del sistema o que
  10480. 7:57:02estamos retornando en este objeto y lo
  10481. 7:57:05vamos a usar como ejemplo para cómo
  10482. 7:57:07podemos transformar esta función en una
  10483. 7:57:11función flecha vas a ver que es muy muy
  10484. 7:57:13conciso aquí lo que estamos haciendo es
  10485. 7:57:16definiendo una función anónima esta
  10486. 7:57:19función no tiene un nombre específico
  10487. 7:57:20puedes ver que sólo escribimos function
  10488. 7:57:24usamos paréntesis vacíos porque no
  10489. 7:57:26recibe ningún parámetro y luego el
  10490. 7:57:29cuerpo de la función es solamente una
  10491. 7:57:31sentencia richard y retorna un objeto
  10492. 7:57:34luego asignamos esa función a una
  10493. 7:57:38variable que se define con cost así que
  10494. 7:57:40actúa como una constante llamada fecha
  10495. 7:57:43podemos transformar esta función en una
  10496. 7:57:46función flecha de esta forma quitamos la
  10497. 7:57:50palabra clave function y luego quitamos
  10498. 7:57:54la llave que abre la función y la
  10499. 7:57:56sentencia richard en este caso porque
  10500. 7:57:59sólo tenemos una sola línea y lo que
  10501. 7:58:01hacemos es escribir el símbolo
  10502. 7:58:03característico de las funciones flecha
  10503. 7:58:06un siglo igual y en lo que llamamos
  10504. 7:58:09nosotros el operador de mallorca este
  10505. 7:58:12símbolo que en realidad parece una
  10506. 7:58:14flechita está creando una función flecha
  10507. 7:58:18que toma estos parámetros que en este
  10508. 7:58:21caso es ninguno porque está vacía la
  10509. 7:58:24lista
  10510. 7:58:25y retorna este objeto así puedes ver
  10511. 7:58:28cómo podemos definir una función de
  10512. 7:58:31forma mucho más compacta si es necesario
  10513. 7:58:33con las funciones flecha en las próximas
  10514. 7:58:36partes vamos a trabajar con funciones
  10515. 7:58:38flecha así que te espero allí
  10516. 7:58:40particularmente la próxima parte vamos a
  10517. 7:58:43ver cómo podemos agregar parámetros a
  10518. 7:58:45estas funciones una cosa que te quería
  10519. 7:58:48mencionar es que las funciones flecha
  10520. 7:58:50como ésta esta es la función son muy
  10521. 7:58:53útiles cuando necesitamos pasar una
  10522. 7:58:55función como argumento a otra función lo
  10523. 7:58:58que hacemos es escribirla directamente
  10524. 7:59:00como el argumento
  10525. 7:59:07vamos a ver cómo puedes definir
  10526. 7:59:10funciones flechas que tomen uno o más
  10527. 7:59:13parámetros en el ejemplo anterior la
  10528. 7:59:16función flecha no tomaba ningún
  10529. 7:59:18parámetro solo retornaba un objeto vamos
  10530. 7:59:21a ver cómo podemos implementarlo en este
  10531. 7:59:24ejemplo vamos a definir una función
  10532. 7:59:26anónima que es va a tomar el valor x y
  10533. 7:59:31va a retornar el valor x + 3 por eso
  10534. 7:59:35vamos a asignar la a la variable sumar 3
  10535. 7:59:38ahora digamos que queremos transformar
  10536. 7:59:40esta función en una función flecha para
  10537. 7:59:44escribir la de forma más concisa en el
  10538. 7:59:46programa lo único que tenemos que hacer
  10539. 7:59:48es eliminar las palabras clave function
  10540. 7:59:51y en este caso como sólo tenemos una
  10541. 7:59:54línea y esa línea retorna un valor lo
  10542. 7:59:58que hacemos es eliminar la llave que
  10543. 8:00:01abre el cuerpo de la función eliminar la
  10544. 8:00:04palabra clave richter
  10545. 8:00:06y colocar el símbolo de la flechita
  10546. 8:00:09también borramos la llave que cierra el
  10547. 8:00:13cuerpo de la función y aquí tenemos el
  10548. 8:00:16equivalente en una función flecha como
  10549. 8:00:19veis es muy muy compacto para este tipo
  10550. 8:00:21de funciones y nos permite escribirla en
  10551. 8:00:25una sola línea podemos llamar a la
  10552. 8:00:27función con el nombre de la variable a
  10553. 8:00:32la que la estamos asignando por ejemplo
  10554. 8:00:34si llamamos a sumar tres pasando el
  10555. 8:00:37valor 4 en el valor retornado debería
  10556. 8:00:40ser 7 con su punto lo sumar 3 y en la
  10557. 8:00:45consola vemos el valor 7 lo cual es
  10558. 8:00:47correcto está funcionando como
  10559. 8:00:49esperábamos este es el parámetro y este
  10560. 8:00:52es el valor a retornar ahora vamos a
  10561. 8:00:55hacer algo distinto vamos a definir una
  10562. 8:00:58función anónima vamos a asignar a la
  10563. 8:01:02variable concatenar y vamos a tomar dos
  10564. 8:01:06parámetros arreglo uno y arreglo dos
  10565. 8:01:10puedes escribir lo abreviado o más
  10566. 8:01:14descriptivo arreglo uno y arreglo dos yo
  10567. 8:01:17lo voy a abreviar para hacer más concisa
  10568. 8:01:20en el código y que vamos a retornar
  10569. 8:01:23vamos a retornar los dos arreglos
  10570. 8:01:25concatenados o los dos arreglos unidos
  10571. 8:01:29los elementos del arreglo todos se van a
  10572. 8:01:31añadir al final del arreglo 1 así que
  10573. 8:01:34vamos a hacerlo llamando al método con
  10574. 8:01:37catch esto es un método que puedes
  10575. 8:01:40llamar para unir un arreglo con otra
  10576. 8:01:43escribimos el nombre del arreglo al cual
  10577. 8:01:46le vamos a añadir esos elementos vamos a
  10578. 8:01:49concatenar lo con el segundo arreglo y
  10579. 8:01:52ese es el valor que vamos a retornar de
  10580. 8:01:54nuestra función
  10581. 8:01:56también podemos llamarla concatenar
  10582. 8:01:58arreglos que hay para ser más
  10583. 8:02:00descriptivos veamos el resultado inicial
  10584. 8:02:03para confirmar que se comporta igual
  10585. 8:02:06cuando la transformaremos a una fecha
  10586. 8:02:08vamos a concatenar este rey con un
  10587. 8:02:12segundo arreglo que tiene los elementos
  10588. 8:02:143 4 y 5 el resultado debería ser un
  10589. 8:02:18arreglo con todos los elementos y aquí
  10590. 8:02:21lo podemos ver esta llamada la función
  10591. 8:02:24retorno este arreglo un arreglo con los
  10592. 8:02:27elementos 1 2 3 4 y 5 vamos a
  10593. 8:02:31transformar esta función en una función
  10594. 8:02:33flecha exactamente igual que vimos en el
  10595. 8:02:37ejemplo anterior
  10596. 8:02:37eliminamos la palabra expansión
  10597. 8:02:40eliminamos la llave que abre el cuerpo
  10598. 8:02:43de la función también borramos la
  10599. 8:02:45sentencia arbitraria en la palabra clave
  10600. 8:02:47y tenemos que escribir el simbolito key
  10601. 8:02:50de flecha la flecha separa la lista de
  10602. 8:02:53los parámetros del valor que vamos a
  10603. 8:02:55retornar y borramos la llave que cierra
  10604. 8:02:57el cuerpo de la función
  10605. 8:03:00y así tenemos nuestra función flecha si
  10606. 8:03:04abrimos la consola nuevamente podemos
  10607. 8:03:06ver que los cambios no afectan los
  10608. 8:03:08cambios no afectaron para nada el
  10609. 8:03:10resultado tenemos código más conciso y
  10610. 8:03:14el mismo resultado la misma
  10611. 8:03:15funcionalidad genial estos casos que
  10612. 8:03:18estamos viendo eran funciones que sólo
  10613. 8:03:20tenían una línea que retornaban un valor
  10614. 8:03:23si la función original tiene más de una
  10615. 8:03:26línea tenemos que mantener las llaves
  10616. 8:03:29veamos un ejemplo si nosotros teníamos
  10617. 8:03:31una función que tomaban dos parámetros a
  10618. 8:03:34ive
  10619. 8:03:35la vamos a llamar sumar pero va a ser
  10620. 8:03:38una suma personalizada digamos porque
  10621. 8:03:41vamos a declarar aquí en este bloque de
  10622. 8:03:45código porque estamos usando la palabra
  10623. 8:03:47let la palabra clave let un número que
  10624. 8:03:50vamos a sumar a la suma de amave aquí
  10625. 8:03:55esto es sólo un ejemplo para ilustrar
  10626. 8:03:57qué pasaría si la función tiene más de
  10627. 8:04:00una línea
  10628. 8:04:01en este caso lo que haríamos para
  10629. 8:04:04definir la función flecha sería
  10630. 8:04:06simplemente borrar la palabra clave y
  10631. 8:04:09antes de la llave que abre el cuerpo de
  10632. 8:04:13la función colocamos el símbolo de la
  10633. 8:04:16flechita y allí tenemos la misma función
  10634. 8:04:20que teníamos antes lo que estamos es
  10635. 8:04:22removiendo quitando la palabra clave
  10636. 8:04:25expansión y agregando el símbolo de la
  10637. 8:04:27flechita va a funcionar exactamente
  10638. 8:04:29igual podemos comprobarlo aquí si
  10639. 8:04:32tenemos 1 1 y 6 el resultado debería ser
  10640. 8:04:368 vamos a mostrarlo aquí vemos el
  10641. 8:04:40resultado 8 genial ya sabes cómo
  10642. 8:04:44convertir funciones anónimas a funciones
  10643. 8:04:46flechas
  10644. 8:04:55también puedes asignar un valor por
  10645. 8:04:58defecto a los parámetros de una función
  10646. 8:05:01flecha esto es útil cuando queremos
  10647. 8:05:04permitir que el usuario omita algún
  10648. 8:05:06argumento para usar el valor por defecto
  10649. 8:05:09por ejemplo si definimos una función
  10650. 8:05:14y la asignamos a la variable incrementar
  10651. 8:05:17va a ser esta función flecha número y
  10652. 8:05:22valor del incremento usamos el símbolo
  10653. 8:05:25de flecha y que vamos a retornar el
  10654. 8:05:29número más el valor del incremento para
  10655. 8:05:31asignar un valor por defecto al
  10656. 8:05:34incremento vamos a simplemente escribir
  10657. 8:05:36un signo igual y el valor por defecto
  10658. 8:05:39para ese parámetro así si omitimos este
  10659. 8:05:43argumento se va a asignar el valor por
  10660. 8:05:45defecto este principio también aplica a
  10661. 8:05:48las funciones normales y a las funciones
  10662. 8:05:49que hemos estado definiendo y a las
  10663. 8:05:51funciones anónimas
  10664. 8:05:53veamos cómo funciona si llamamos a la
  10665. 8:05:56función incrementar
  10666. 8:05:58y pasamos el valor 5 nada más para este
  10667. 8:06:02número se debería usar el valor por
  10668. 8:06:04defecto que es 1 el incremento por
  10669. 8:06:07defecto y efectivamente el valor
  10670. 8:06:10retornado es 65 se incrementó en 1 que
  10671. 8:06:13es el valor por defecto
  10672. 8:06:15pero si pasamos el valor del incremento
  10673. 8:06:19como segundo argumento también debería
  10674. 8:06:22funcionar y se debería personalizar el
  10675. 8:06:25valor de este parámetro el resultado
  10676. 8:06:27debería hacer 88 aquí lo tenemos
  10677. 8:06:30exactamente lo que esperábamos así es
  10678. 8:06:33como puedes asignarle un valor por
  10679. 8:06:36defecto a un parámetro de tu función el
  10680. 8:06:39nombre del parámetro en la lista de
  10681. 8:06:40parámetros seguido de un signo igual y
  10682. 8:06:43el valor por defecto que quieres asignar
  10683. 8:06:52ahora vamos a ver un operador que te va
  10684. 8:06:55a permitir escribir funciones muy
  10685. 8:06:57versátiles en javascript se llama el
  10686. 8:07:00operador rest este operador te permite
  10687. 8:07:03pasar cualquier número de argumentos a
  10688. 8:07:07una función y que esos argumentos se
  10689. 8:07:09agrupen como un arreglo veamos un
  10690. 8:07:12ejemplo para ilustrar qué es lo que hace
  10691. 8:07:14este operador vamos a definir una
  10692. 8:07:18función y vamos a tomar un cierto número
  10693. 8:07:21de argumentos pero ese número de
  10694. 8:07:23argumentos no va a ser fijo así que la
  10695. 8:07:26técnica que hemos estado usando de
  10696. 8:07:28explícitamente escribir parámetros en la
  10697. 8:07:31lista no nos va a funcionar porque al
  10698. 8:07:35momento de llamar a la función cada uno
  10699. 8:07:37de esos parámetros debe tener un valor y
  10700. 8:07:41no podemos pasar más valores ni menos
  10701. 8:07:43valores de los que tenemos
  10702. 8:07:46explícitamente declarados en la lista
  10703. 8:07:49pero para solucionar ese problema y
  10704. 8:07:51crear funciones que sean más versátiles
  10705. 8:07:53podemos usar el operador best que
  10706. 8:07:56consiste en escribir tres puntos seguido
  10707. 8:08:00de la palabra arcs esta palabra no
  10708. 8:08:03necesariamente es arcs es una variable
  10709. 8:08:06que estamos creando ahora que se utiliza
  10710. 8:08:08para abreviar la palabra argumentos pero
  10711. 8:08:11no necesariamente tiene que ser este
  10712. 8:08:13nombre podemos escribir cualquier nombre
  10713. 8:08:16de una variable lo importante aquí es
  10714. 8:08:19que antes de ese nombre tengamos tres
  10715. 8:08:21puntos este es el operador rest cuando
  10716. 8:08:24lo escribimos en una lista de parámetros
  10717. 8:08:27vamos a mostrar los argumentos y cómo se
  10718. 8:08:31recibieron en la función vamos a llamar
  10719. 8:08:34a esta función con distintos números de
  10720. 8:08:38argumentos si pasamos un argumento aquí
  10721. 8:08:41vemos inmediatamente que tenemos un
  10722. 8:08:43arreglo con un solo elemento el
  10723. 8:08:46argumento que fue el valor uno pero nota
  10724. 8:08:49que es un arreglo no tenemos el
  10725. 8:08:51argumento como tal sino el arreglo este
  10726. 8:08:55operador convierte todos los argumentos
  10727. 8:08:57en elementos de un solo arreglo o sea
  10728. 8:09:00este parámetro va a ser un arreglo
  10729. 8:09:04y por eso es que nos permite tomar
  10730. 8:09:07cualquier número de argumentos digamos
  10731. 8:09:101 y 2
  10732. 8:09:12este fue el resultado del operador los
  10733. 8:09:16convirtió a un arreglo con dos elementos
  10734. 8:09:19y podemos así agregar cualquier número
  10735. 8:09:22de argumentos
  10736. 8:09:241 2 3 y 4
  10737. 8:09:26también si necesitamos recibir otros
  10738. 8:09:30tipos de datos van a ser agregados como
  10739. 8:09:33parte de ese arreglo por ejemplo digamos
  10740. 8:09:36que 1 2 3 y 4 5 y 6
  10741. 8:09:40son dos arreglos dos argumentos y veamos
  10742. 8:09:44qué pasó los arreglos se añaden como
  10743. 8:09:47arreglos anidados del arreglo principal
  10744. 8:09:51o sea que puedes estar seguro segura que
  10745. 8:09:54estos elementos van a ser parte de un
  10746. 8:09:56arreglo y puedes luego trabajar con ese
  10747. 8:09:59arreglo en la función como esta variable
  10748. 8:10:02va a ser un arreglo podemos usar también
  10749. 8:10:06su propiedad ley para trabajar con ese
  10750. 8:10:09arreglo en la función veamos aquí cuál
  10751. 8:10:12es la longitud del arreglo 2 porque
  10752. 8:10:15tenemos dos argumentos dos arreglos
  10753. 8:10:18ahora si pasamos un cierto número de
  10754. 8:10:20argumentos digamos aquí tenemos el valor
  10755. 8:10:246 porque tenemos seis argumentos pasados
  10756. 8:10:27a la función que luego fueron agregados
  10757. 8:10:30o añadidos a ese regla y esta propiedad
  10758. 8:10:33link es muy útil si necesitamos usar un
  10759. 8:10:35ciclo que es lo que normalmente haríamos
  10760. 8:10:38si queremos procesar cada uno de esos
  10761. 8:10:40argumentos y tirar sobre la red
  10762. 8:10:44genial ahora vamos a aplicar tu nuevo
  10763. 8:10:46conocimiento del operador best para
  10764. 8:10:49modificar una función manteniendo su
  10765. 8:10:53funcionalidad
  10766. 8:10:55existente pero ahora digamos que
  10767. 8:10:57queremos extender su funcionalidad para
  10768. 8:11:00que podamos pasar cualquier número de
  10769. 8:11:02argumentos aquí en lugar de sólo 3 para
  10770. 8:11:05x jay-z
  10771. 8:11:06queremos
  10772. 8:11:09aplicar su función a cualquier número de
  10773. 8:11:13argumentos
  10774. 8:11:15esta es la definición
  10775. 8:11:18este método reduce es un método que
  10776. 8:11:20puedes llamar con un arreglo este es el
  10777. 8:11:24arreglo de argumentos
  10778. 8:11:34para adoptar esta función para que
  10779. 8:11:36reciba cualquier número de argumentos lo
  10780. 8:11:39que tenemos que hacer es modificar la
  10781. 8:11:41lista de parámetros que tenemos aquí
  10782. 8:11:43actualmente recibe tres parámetros pero
  10783. 8:11:46podemos usar el operador rest para tomar
  10784. 8:11:49cualquier número de parámetros aquí
  10785. 8:11:52usamos los tres puntos seguidos de arx
  10786. 8:11:56recuerda que este nombre no
  10787. 8:11:57necesariamente tiene que ser arcs puede
  10788. 8:12:00ser cualquier otro nombre que le quieras
  10789. 8:12:02asignar
  10790. 8:12:04ya como este valor va a ser un arreglo
  10791. 8:12:06no es necesario crear otro arreglo
  10792. 8:12:09separado podemos borrar esta línea y
  10793. 8:12:12directamente podemos dejar esta línea
  10794. 8:12:14porque ya arts va a ser un arreglo y
  10795. 8:12:17podemos llamar al método reviews genial
  10796. 8:12:20ya sabes cómo usar el operador rest para
  10797. 8:12:23tomar cualquier número de argumentos
  10798. 8:12:25ahora vamos a ver otro operador que se
  10799. 8:12:27llama el operador sprint
  10800. 8:12:34ahora vamos a ver un operador que hace
  10801. 8:12:37exactamente lo contrario que el operador
  10802. 8:12:39best este operador nuevo se llama el
  10803. 8:12:42operador sprint de este operador toma un
  10804. 8:12:46arreglo y prácticamente como los
  10805. 8:12:48descompone en sus elementos individuales
  10806. 8:12:51para que la función pueda recibirlos y
  10807. 8:12:54asignarlos a sus parámetros
  10808. 8:12:56correspondientes vamos a ver un ejemplo
  10809. 8:12:59vamos a declarar un arreglo con tres
  10810. 8:13:01números uno dos y tres y vamos a definir
  10811. 8:13:05una función sumar que toma tres números
  10812. 8:13:08x y y ceta y retorna la suma en este
  10813. 8:13:13caso vamos a usar el operador sprite
  10814. 8:13:16porque nosotros no podemos pasar
  10815. 8:13:18directamente este argumento a la función
  10816. 8:13:22la función toma tres parámetros necesita
  10817. 8:13:27tres valores separados y nosotros
  10818. 8:13:30actualmente tenemos es un arreglo en
  10819. 8:13:33lugar de escribir esto y extraer los
  10820. 8:13:36valores individuales tenemos un operador
  10821. 8:13:39que nos permite hacer exactamente esto
  10822. 8:13:42es el mismo símbolo del operador ves
  10823. 8:13:45pero ahorita en lugar de usarlo en la
  10824. 8:13:48lista de parámetros lo vamos a usar en
  10825. 8:13:51la llamada a la función cuando pasemos
  10826. 8:13:54el argumento luego escribimos el nombre
  10827. 8:13:58de la variable el nombre de la variable
  10828. 8:14:01que hubiéramos pasado como argumento con
  10829. 8:14:04el arreglo y esto básicamente lo que va
  10830. 8:14:07a hacer es descomponer el arreglo en sus
  10831. 8:14:09elementos individuales y asignarlos en
  10832. 8:14:12ese mismo orden a los parámetros veamos
  10833. 8:14:15el resultado con la consola tenemos el
  10834. 8:14:20valor 6 que es la suma de estos números
  10835. 8:14:23podemos mostrar los valores también en
  10836. 8:14:26la consola y vemos x es 1 que es 2
  10837. 8:14:33iceta en estrés así que los valores se
  10838. 8:14:37asignaron correctamente y en el orden en
  10839. 8:14:40el que aparecían en el arreglo sólo
  10840. 8:14:42tenemos que usar este operador y podemos
  10841. 8:14:45realizar todo este proceso fácilmente
  10842. 8:14:54ahora hablemos sobre la sintaxis de
  10843. 8:14:57desestructuración esta sintaxis nos
  10844. 8:15:00permite asignar las propiedades de un
  10845. 8:15:03objeto a variables que podemos usar en
  10846. 8:15:05nuestro programa digamos que tenemos
  10847. 8:15:08esto un objeto que representa un usuario
  10848. 8:15:11ese usuario tiene un nombre lleno smith
  10849. 8:15:15y tiene una edad 34
  10850. 8:15:19anteriormente si queríamos asignar las
  10851. 8:15:23propiedades nombres y edad sus valores a
  10852. 8:15:26variables que es lo que tendríamos que
  10853. 8:15:29haber hecho
  10854. 8:15:30tomábamos el objeto usuario y asigna
  10855. 8:15:35vamos el valor de esa propiedad a la
  10856. 8:15:37variable y lo mismo hubiéramos hecho con
  10857. 8:15:40la propiedad edad pero en el nuevo
  10858. 8:15:42estándar s6 podemos hacer esto mismo en
  10859. 8:15:46una sola línea
  10860. 8:15:47para cualquier número de propiedades que
  10861. 8:15:50quisiéramos asignar
  10862. 8:15:52lo primero que hacemos es escribir const
  10863. 8:15:54y luego escribimos un par de llaves
  10864. 8:15:57dentro de las llaves escribimos los
  10865. 8:16:00nombres de las variables que queremos
  10866. 8:16:02crear las que hubiéramos creado una por
  10867. 8:16:06línea
  10868. 8:16:09bien
  10869. 8:16:11al otro lado de la asignación vamos a
  10870. 8:16:14escribir el nombre del objeto usuario
  10871. 8:16:18esto básicamente lo que va a hacer es
  10872. 8:16:20buscar dentro del objeto usuario y va a
  10873. 8:16:24decir en existe una propiedad llamada
  10874. 8:16:26nombre así que voy a asignar este valor
  10875. 8:16:29a esta variable y también existe una
  10876. 8:16:31propiedad llamada edad así que a esta
  10877. 8:16:34variable le asignó el valor esta es
  10878. 8:16:37básicamente la sintaxis de
  10879. 8:16:38desestructuración más simple que podemos
  10880. 8:16:41usar hay varias opciones varias opciones
  10881. 8:16:44vamos a ver otro ejemplo para que
  10882. 8:16:46practiquemos un poco más esta sintaxis
  10883. 8:16:49digamos que tenemos un objeto que
  10884. 8:16:52representa unas coordenadas
  10885. 8:16:54coordenada x 4 coordenada y 6 y
  10886. 8:16:58coordenada z 12
  10887. 8:17:00anteriormente en ese 5 cuando estaba el
  10888. 8:17:04estándar anterior tuviésemos que hacer
  10889. 8:17:07esto que tenemos aquí coordenadas punto
  10890. 8:17:10x para llegue coordenadas
  10891. 8:17:14y para z coordenadas z pero ahora con la
  10892. 8:17:20sintaxis de desestructuración podemos
  10893. 8:17:23hacer esto que tenemos aquí escribimos
  10894. 8:17:27la palabra clave como que también la
  10895. 8:17:29podemos usar aquí si queremos declarar
  10896. 8:17:32variables que no pueden ser reasignadas
  10897. 8:17:35y después de consta es que vimos un par
  10898. 8:17:38de llaves dentro de las llaves tenemos
  10899. 8:17:41los nombres de las variables que
  10900. 8:17:43queríamos crear x y y ceta que son los
  10901. 8:17:47mismos nombres de las propiedades del
  10902. 8:17:49objeto
  10903. 8:17:50del otro lado del lado derecho
  10904. 8:17:52escribimos el nombre del hombre del
  10905. 8:17:54objeto coordenadas y ya podemos eliminar
  10906. 8:17:58estas tres líneas porque está
  10907. 8:18:01funcionando como esperábamos
  10908. 8:18:05si nosotros verificamos
  10909. 8:18:08el valor de x de iu y de zeta
  10910. 8:18:13vamos a ver el resultado
  10911. 8:18:144 6 y 12 4 6 y 12 funcionó exactamente
  10912. 8:18:21como esperábamos asignamos cada valor a
  10913. 8:18:24su variable correspondiente
  10914. 8:18:26buen trabajo también podemos usar la
  10915. 8:18:29sintaxis de desestructuración de una
  10916. 8:18:31forma más elaborada si el objeto tiene
  10917. 8:18:34una estructura más compleja por ejemplo
  10918. 8:18:36si este valor fuese un objeto un objeto
  10919. 8:18:39anidado vas a aprender cómo hacerlo en
  10920. 8:18:42la próxima parte así que te ve oye
  10921. 8:18:52veamos cómo podemos usar la sintaxis de
  10922. 8:18:55desestructuración para objetos anidados
  10923. 8:18:58vamos a crear un objeto que representa
  10924. 8:19:02un usuario ese usuario vamos a llamarlo
  10925. 8:19:06por ejemplo john 2 esa va a ser la
  10926. 8:19:08propiedad y esa propiedad va a estar
  10927. 8:19:11asociada a un objeto el objeto va a
  10928. 8:19:14tener los datos de yondó que va a ser su
  10929. 8:19:16edad y su correo yo ando
  10930. 8:19:22fricker camps puntocom bien este es el
  10931. 8:19:26objeto anidado digamos que queremos
  10932. 8:19:28asignar la edad y el correo de yondó a
  10933. 8:19:32variables individuales en nuestro
  10934. 8:19:34programa para trabajar con ellas aquí
  10935. 8:19:37puedes empezar a ver la ventaja de usar
  10936. 8:19:40la sintaxis de desestructuración porque
  10937. 8:19:43imagínate cómo sería acceder a los
  10938. 8:19:46objetos anidados en estructuras más
  10939. 8:19:48complejas una y otra vez con la sintaxis
  10940. 8:19:51de de su estructura estructuración
  10941. 8:19:52podemos asignar los a variables de una
  10942. 8:19:55vez y trabajar con esas variables donde
  10943. 8:19:58las necesitemos nuestro programa así que
  10944. 8:20:00vamos a ver cómo podemos hacerlo con la
  10945. 8:20:03palabra clave conste vamos a comenzar
  10946. 8:20:05esta sintaxis y escribimos un par de
  10947. 8:20:08llaves pero en este caso el par de
  10948. 8:20:10llaves lo que va a ir dentro del par de
  10949. 8:20:12llaves va a ser un poco más poco más
  10950. 8:20:15elaborado el lado derecho se va a
  10951. 8:20:17mantener igual es el nombre del objeto
  10952. 8:20:21lo que queremos especificar dentro de
  10953. 8:20:23las llaves es que propiedades vamos a
  10954. 8:20:26extraer de ese objeto de usuario de la
  10955. 8:20:30propiedad donde queremos extraer o
  10956. 8:20:33asignar a sus variables correspondientes
  10957. 8:20:36las propiedades edad y correo así es
  10958. 8:20:40exactamente cómo vamos a extraer la edad
  10959. 8:20:43y el correo de jong del primero
  10960. 8:20:45escribimos el nombre de la propiedad que
  10961. 8:20:48queremos acceder en este caso junto
  10962. 8:20:51luego en llaves rodeadas por llaves
  10963. 8:20:55escribimos los nombres de las
  10964. 8:20:57propiedades que queremos asignar a las
  10965. 8:20:59variables luego de esta línea vamos a
  10966. 8:21:02poder tener estas variables disponibles
  10967. 8:21:05para trabajar si mostramos sus valores
  10968. 8:21:08edad y correo tenemos 27 y yondó arroz
  10969. 8:21:13fríjol camps puntocom imagínate lo que
  10970. 8:21:16sería acceder a edad y a correo
  10971. 8:21:19el objeto anidado cada vez que lo
  10972. 8:21:22necesitemos si es un valor que usamos
  10973. 8:21:24muchas veces en nuestro programa podemos
  10974. 8:21:26asignarlos directamente una variable y
  10975. 8:21:28trabajar con esos valores también otra
  10976. 8:21:32alternativa que podemos usar que es muy
  10977. 8:21:34útil es que podemos asignarles a estas
  10978. 8:21:37propiedades nombres distintos es como si
  10979. 8:21:40los asignaremos a variables con nombres
  10980. 8:21:42distintos no necesariamente tienen que
  10981. 8:21:45ser edad y correo esas variables estos
  10982. 8:21:48son los nombres de las propiedades y
  10983. 8:21:50cómo lo hacemos luego del nombre aquí
  10984. 8:21:53escribimos el nombre nuevo por ejemplo
  10985. 8:21:56edad del usuario
  10986. 8:21:59y en el correo escribiríamos correo de
  10987. 8:22:03él
  10988. 8:22:04usuario cualquier nombre que le quieras
  10989. 8:22:07asignar que te parezca más descriptivo y
  10990. 8:22:09así podríamos usar el nombre nuevo que
  10991. 8:22:13asignamos en nuestro programa edad del
  10992. 8:22:16usuario y correo del usuario
  10993. 8:22:19genial si usamos los nombres originales
  10994. 8:22:22de las propiedades vamos a ver que no
  10995. 8:22:24están definidos como variables en
  10996. 8:22:26nuestro programa esta primera línea
  10997. 8:22:29resulta en un error porque edad no es
  10998. 8:22:32una variable sino que este nombre que le
  10999. 8:22:35aceptamos es una variable en nuestro
  11000. 8:22:37programa
  11001. 8:22:40veamos otro ejemplo de la sintaxis de
  11002. 8:22:42texto estructuración aplicada a objetos
  11003. 8:22:45anidados digamos que tenemos una
  11004. 8:22:48constante una variable que la vamos a
  11005. 8:22:50declarar con const ghosn que va a
  11006. 8:22:54representar el pronóstico local del
  11007. 8:22:56clima
  11008. 8:22:57en este caso vamos a tener el pronóstico
  11009. 8:23:01de ayer de hoy y de mañana
  11010. 8:23:03ayer la temperatura mínima era 61 y la
  11011. 8:23:09temperatura máxima era 75 en el
  11012. 8:23:12pronóstico
  11013. 8:23:14hoy la temperatura mínima era 64 y la
  11014. 8:23:20máxima 77 veamos si se cumple y mañana
  11015. 8:23:26el pronóstico es que la temperatura
  11016. 8:23:27mínima sea 68 y la temperatura máxima
  11017. 8:23:31sea 80 ese es nuestro pronóstico local
  11018. 8:23:35del clima veamos cómo podemos usar la
  11019. 8:23:38sintaxis de desestructuración para
  11020. 8:23:41acceder a la temperatura mínima y máxima
  11021. 8:23:44de hoy en este caso puedes ver que estoy
  11022. 8:23:47usando la ñ es el nuevo carácter
  11023. 8:23:50estándar en inglés así que queda de nada
  11024. 8:23:53si deseas usarlo en tu programa o no en
  11025. 8:23:55este caso lo estoy usando para evitar
  11026. 8:23:57confusiones aunque veamos aquí una
  11027. 8:24:01constante vamos a decir una constante
  11028. 8:24:04para ver cómo accederíamos a esos
  11029. 8:24:07valores para asignarlos a una variable
  11030. 8:24:10antes de tener la sintaxis de
  11031. 8:24:12desestructuración escribimos la variable
  11032. 8:24:15pronóstico local
  11033. 8:24:17luego el nombre de la propiedad hoy
  11034. 8:24:19puedes ver que en este caso estoy
  11035. 8:24:22mezclando propiedades rodeadas entre
  11036. 8:24:24comillas y propiedades que no tienen
  11037. 8:24:26comillas las propiedades de los objetos
  11038. 8:24:28anidados no las definir con comillas
  11039. 8:24:31pero ya ves que detrás de escenas los va
  11040. 8:24:34a añadir así que no hay ningún problema
  11041. 8:24:37porque son propiedades de una sola
  11042. 8:24:39palabra bien accedemos a hoy y luego
  11043. 8:24:41accedemos a la temperatura mínima y así
  11044. 8:24:45las podemos asignar lo mismo con la
  11045. 8:24:47máxima
  11046. 8:24:48máxima hoy aquí vamos a cambiar mínimo a
  11047. 8:24:51mínima para ser mínimas para ser
  11048. 8:24:54consistentes temperatura mínima
  11049. 8:24:57pronóstico local hoy
  11050. 8:25:01máxima vamos a mostrar los valores en la
  11051. 8:25:04consola para que confirmemos que los
  11052. 8:25:06valores son los correctos máxima hoy le
  11053. 8:25:11abramos la consola para ver los valores
  11054. 8:25:1464 y 77 mínima y máxima vamos a ver aquí
  11055. 8:25:2064 y 77 correcto un truco interesante
  11056. 8:25:24que puedes usar con con su punto logo es
  11057. 8:25:27que si separas los valores con una coma
  11058. 8:25:30van a aparecer en la misma línea
  11059. 8:25:32separados por un espacio aquí lo puedes
  11060. 8:25:36ver 64 y 77 ahora están en la misma
  11061. 8:25:39línea separados por un espacio y eso
  11062. 8:25:42puede hacer que tus resultados sean más
  11063. 8:25:44concisos para verlos en la consola un
  11064. 8:25:47dato interesante bien ya sabemos cómo
  11065. 8:25:50asignar y amos esos valores a varios
  11066. 8:25:53estos valores a variables en este caso
  11067. 8:25:56constantes
  11068. 8:25:57pero vamos a ver cómo podemos hacer lo
  11069. 8:26:00mismo con la sintaxis de
  11070. 8:26:01desestructuración vamos a borrar este
  11071. 8:26:04código y nuevamente escribimos cons
  11072. 8:26:07porque van a ser constantes
  11073. 8:26:10para la sintaxis de desestructuración
  11074. 8:26:12escribimos un par de llaves en el lado
  11075. 8:26:15izquierdo de la asignación escribimos el
  11076. 8:26:18nombre de la propiedad hoy y luego como
  11077. 8:26:22tenemos un objeto anidado escribimos
  11078. 8:26:24nuevamente un par de llaves queremos
  11079. 8:26:27acceder a la propiedad mínima que
  11080. 8:26:29tenemos aquí pero que debemos asignarle
  11081. 8:26:31otro nombre para nuestra variable mínima
  11082. 8:26:35hoy eso lo hacemos con dos puntos un
  11083. 8:26:38espacio y el nombre nuevo que queremos
  11084. 8:26:41asignarle a la variable
  11085. 8:26:44genial ya tenemos esta parte lista y en
  11086. 8:26:47el lado derecho lo que falta es escribir
  11087. 8:26:50el nombre del objeto de la variable
  11088. 8:26:52pronóstico local usamos el nombre mínima
  11089. 8:26:56hoy en nuestro código podemos acceder a
  11090. 8:26:58ese valor sería 64 según el objeto
  11091. 8:27:0364 es exactamente lo que tenemos aquí
  11092. 8:27:06este es el único nombre que vamos a
  11093. 8:27:08poder usar para ese valor en nuestro
  11094. 8:27:11código si usamos el nombre de la
  11095. 8:27:13propiedad vamos a tener un error aquí lo
  11096. 8:27:16puedes ver si uso mínima en vez del
  11097. 8:27:18nombre nuevo error de referencia mínima
  11098. 8:27:21no está definida así que cuando le
  11099. 8:27:25asignas un nombre nuevo a la variable y
  11100. 8:27:28ese es el único nombre que puedes usar
  11101. 8:27:29el nombre de la propiedad no es una
  11102. 8:27:32variable ok
  11103. 8:27:34vamos a intentar ahora hacer lo mismo
  11104. 8:27:36para acceder al máximo a la temperatura
  11105. 8:27:39máxima del pronóstico le vamos a asignar
  11106. 8:27:42el nombre máxima hoy que sería 77 vamos
  11107. 8:27:47a abrir la consola
  11108. 8:27:4877
  11109. 8:27:50exactamente lo que esperábamos
  11110. 8:27:53también podemos también puedes hacer
  11111. 8:27:56ambas operaciones en la misma línea
  11112. 8:27:59veamos como escribes el nombre de la
  11113. 8:28:03propiedad y su nombre nuevo luego el
  11114. 8:28:06nombre de la otra propiedad que queremos
  11115. 8:28:08asignar y su nombre para la variable y
  11116. 8:28:11así podemos asignar ambas propiedades en
  11117. 8:28:15la misma línea
  11118. 8:28:17para comprobar que tenemos acceso a
  11119. 8:28:19ambos valores vamos a mostrar los
  11120. 8:28:21mínimos y máxima hoy veamos
  11121. 8:28:2564 y 77 exactamente lo que esperábamos a
  11122. 8:28:30partir de este objeto del pronóstico
  11123. 8:28:32genial ya sabes cómo usar la sintaxis de
  11124. 8:28:36desestructuración con objetos anidados
  11125. 8:28:38para una o varias variables y como
  11126. 8:28:42asignarles un nombre nuevo para las
  11127. 8:28:44variables de tu programa buen trabajo
  11128. 8:28:46esto va a ser muy útil para trabajar con
  11129. 8:28:49objetos en javascript
  11130. 8:28:51así que continuemos con nuestro
  11131. 8:28:52siguiente tema
  11132. 8:28:59y la sintaxis de desestructuración
  11133. 8:29:01también funciona con arreglos y nos
  11134. 8:29:04permite asignar valores a variables
  11135. 8:29:07usando arreglos ya vas a ver cómo lo
  11136. 8:29:10podemos usar por ejemplo si queremos
  11137. 8:29:13asignar los valores 1 y 2 a la variable
  11138. 8:29:17a y b a estas dos variables podemos
  11139. 8:29:20hacerlo con esta sintaxis claro primero
  11140. 8:29:24tenemos que declarar las variables en el
  11141. 8:29:27programa y luego podemos asignarles un
  11142. 8:29:30valor usando está sintaxis o en
  11143. 8:29:32cualquier punto del programa en
  11144. 8:29:34cualquier momento de la ejecución del
  11145. 8:29:36programa que necesitamos vamos a mostrar
  11146. 8:29:39el valor de las variables con con su
  11147. 8:29:41punto log a y b aquí vemos los valores 1
  11148. 8:29:45y 2 at en el valor 1 y b tiene el valor
  11149. 8:29:492 los valores se asignan en el mismo
  11150. 8:29:52orden que aparecen en el arreglo y si
  11151. 8:29:55tuviéramos una tercera variable se
  11152. 8:29:58asignaría el tercer valor en el orden
  11153. 8:30:01aquí podemos mostrar la variable y está
  11154. 8:30:04en los tres valores 1 2 y 3 también
  11155. 8:30:07podemos asignar los valores a un número
  11156. 8:30:10menor de variables
  11157. 8:30:12si nosotros queremos
  11158. 8:30:14asignar solo los dos primeros valores
  11159. 8:30:17del arreglo a estas dos variables
  11160. 8:30:19podemos hacerlo sin ningún problema con
  11161. 8:30:22la sintaxis de desestructuración estos
  11162. 8:30:25valores no van a asignarse a ninguna
  11163. 8:30:28variable solo estos dos primeros aquí
  11164. 8:30:31los tenemos 1 y 2 también podemos saltar
  11165. 8:30:35posiciones para asignar los valores
  11166. 8:30:38digamos que tenemos una tercera variable
  11167. 8:30:42y a esa variable queremos asignarle el
  11168. 8:30:45valor 5 tenemos que saltar dos
  11169. 8:30:48posiciones en el arreglo para asignar el
  11170. 8:30:50valor 5 así que lo que hacemos es
  11171. 8:30:54escribir 3 comas para indicar que
  11172. 8:30:56queremos saltarnos la tercera y cuarta y
  11173. 8:30:59cuarta posición del arreglo para llegar
  11174. 8:31:01a la quinta y allí si escribimos la
  11175. 8:31:04variable
  11176. 8:31:07también podríamos dejar el espacio aquí
  11177. 8:31:09y llegamos a hacer vamos a comprobar que
  11178. 8:31:12el valor de acs efectivamente 5 aquí lo
  11179. 8:31:16tenemos 1 2 y 5 depende del número de
  11180. 8:31:19comas dos comas representan un espacio
  11181. 8:31:22como si aquí no hubiese nada en el medio
  11182. 8:31:26y se salta esa posición la sintaxis de
  11183. 8:31:29desestructuración también puede usarse
  11184. 8:31:31para cambiar o intercambiar los valores
  11185. 8:31:34de dos variables veamos como puedes
  11186. 8:31:37hacerlo si tenemos dos variables digamos
  11187. 8:31:41a
  11188. 8:31:41ive con los valores 8 y 6 podemos usar
  11189. 8:31:47la sintaxis de desestructuración para
  11190. 8:31:50arreglos para intercambiar su valor
  11191. 8:31:52queremos que ahora tenga el valor 6 y b
  11192. 8:31:56tenga el valor 8
  11193. 8:31:58veamos cómo podemos hacerlo simplemente
  11194. 8:32:00escribimos un arreglo del lado izquierdo
  11195. 8:32:03con las variables a las cuales queremos
  11196. 8:32:06asignar los valores en este caso serían
  11197. 8:32:09b y a ya vas a ver porque estoy
  11198. 8:32:12invirtiendo el orden y en el lado
  11199. 8:32:14derecho escribimos otro arreglo pero en
  11200. 8:32:18este arreglo vamos a escribir los
  11201. 8:32:19valores que queremos asignarle a las
  11202. 8:32:22variables en el orden en el que queremos
  11203. 8:32:25asignar las aves queremos asignarle el
  11204. 8:32:28valor de a así que aquí escribimos a se
  11205. 8:32:32va a asignar ave y luego queremos
  11206. 8:32:36asignar el valor de b
  11207. 8:32:39así que la escribimos del segundo
  11208. 8:32:41el valor que está en este arreglo el
  11209. 8:32:45arreglo del lado derecho se va a asignar
  11210. 8:32:47a su variable correspondiente en el
  11211. 8:32:50mismo índice del arreglo luego de
  11212. 8:32:53escribir esta línea de código podemos
  11213. 8:32:56verificar los valores de ahí bebé vamos
  11214. 8:32:59a decimos a escribirlos aquí a ive y
  11215. 8:33:01podemos verlos en la consola ahora tiene
  11216. 8:33:05el valor 6 y ve tiene el valor 8
  11217. 8:33:08inicialmente de al revés ha tenido el
  11218. 8:33:10valor 8 y ve tenía el valor 6 así que
  11219. 8:33:13podemos usar la sintaxis de
  11220. 8:33:16desestructuración para intercambiar su
  11221. 8:33:18valor en una sola línea genial ya sabes
  11222. 8:33:22cómo usar la sintaxis de
  11223. 8:33:24desestructuración para arreglos puedes
  11224. 8:33:27ver que es muy versátil y muy poderosa y
  11225. 8:33:29seguramente la va a usar en sus
  11226. 8:33:31programas de javascript
  11227. 8:33:33así que continuemos con nuestro
  11228. 8:33:35siguiente tema
  11229. 8:33:44veamos cómo puedes usar la sintaxis de
  11230. 8:33:47desestructuración con el operador rest
  11231. 8:33:50recuerda que el operador best agrupaba
  11232. 8:33:54los elementos y formaba un arreglo
  11233. 8:33:56cuando lo usábamos con funciones
  11234. 8:33:59agrupaban los argumentos en este caso
  11235. 8:34:02vamos a usar ese operador para reasignar
  11236. 8:34:04un arreglo en varias variables veamos
  11237. 8:34:08este ejemplo primero declaramos la
  11238. 8:34:11variable luego declaramos la variable p
  11239. 8:34:14y vamos a usar la sintaxis de
  11240. 8:34:17desestructuración aquí tenemos dos
  11241. 8:34:20variables a esas dos variables le vamos
  11242. 8:34:23a asignar los valores 1 y 2 1 se va a
  11243. 8:34:27asignar a y 2 se va a asignar a ver aquí
  11244. 8:34:30tengo una coma porque después de esas
  11245. 8:34:33dos variables vamos a asignar el resto
  11246. 8:34:36de los números todos los números que
  11247. 8:34:38vengan después
  11248. 8:34:40a un arreglo un arreglo nuevo que vamos
  11249. 8:34:43a crear con estos elementos como lo
  11250. 8:34:45podemos hacer con el operador ves los
  11251. 8:34:48tres puntos que tenemos aquí y luego una
  11252. 8:34:52variable
  11253. 8:34:54esta variable la podemos escribir
  11254. 8:34:56directamente
  11255. 8:34:57aquí y se va a asignar a esa variable
  11256. 8:35:01todos estos elementos esta variable la
  11257. 8:35:04tenemos que declarar también en nuestro
  11258. 8:35:07código para que funciona vamos a mostrar
  11259. 8:35:10el valor de la variable y luego el valor
  11260. 8:35:13de la variable p y finalmente el valor
  11261. 8:35:16de la variable al arreglo a ver qué
  11262. 8:35:21valores tienen asignados vemos que la
  11263. 8:35:24variable a tiene el valor uno asignado
  11264. 8:35:27que era lo que predecíamos el valor dos
  11265. 8:35:30también se asignó a be pero aquí todos
  11266. 8:35:33los demás elementos del arreglo fueron
  11267. 8:35:36asignados a un arreglo particular así
  11268. 8:35:40que esta es una forma de usar el
  11269. 8:35:41operador rest para racing para reasignar
  11270. 8:35:44un arreglo veamos otro ejemplo en el que
  11271. 8:35:47vamos a usar este principio para remover
  11272. 8:35:50los tres primeros elementos de un
  11273. 8:35:52arreglo
  11274. 8:35:53inicialmente vamos a tener este arreglo
  11275. 8:35:56con los elementos
  11276. 8:35:57del 1 hasta el 8 8 números
  11277. 8:36:01y vamos a definir una función que va a
  11278. 8:36:03remover los tres primeros elementos el
  11279. 8:36:08parámetro también podría ser abreviado
  11280. 8:36:10como ar estoy escribiendo arreglo
  11281. 8:36:13y qué vamos a hacer aquí vamos a primero
  11282. 8:36:17a declarar una variable nuevo arreglo
  11283. 8:36:20que va a
  11284. 8:36:22tener el nuevo arreglo que vamos a
  11285. 8:36:25generar sin los tres primeros elementos
  11286. 8:36:28vamos a usar la sintaxis de
  11287. 8:36:30desestructuración para arreglos y vamos
  11288. 8:36:33a usar el principio que vimos en uno de
  11289. 8:36:35los ejemplos anteriores donde saltábamos
  11290. 8:36:38lugares antes de llegar al valor que
  11291. 8:36:41queríamos con las comas las comas nos
  11292. 8:36:44permiten decir no quiero asignar el
  11293. 8:36:46primer valor a nada no quiero asignar el
  11294. 8:36:48segundo valor a nada y como queremos
  11295. 8:36:51remover los tres primeros deberíamos
  11296. 8:36:53agregar otra coma y luego sí vamos a
  11297. 8:36:56asignar esos valores que sobren a el
  11298. 8:37:00nuevo arreglo
  11299. 8:37:01en este caso como ya estamos declarando
  11300. 8:37:03la variable aquí arriba
  11301. 8:37:05no necesitamos escribir const pero si
  11302. 8:37:08queremos declarar la en la misma línea
  11303. 8:37:10podemos usar aquí por ejemplo var o
  11304. 8:37:13comes dependiendo de lo que queríamos
  11305. 8:37:16crear podemos hacerlo en la misma línea
  11306. 8:37:18y que vamos a asignar a esta estructura
  11307. 8:37:21el arreglo que tomamos como argumento
  11308. 8:37:24bien
  11309. 8:37:25finalmente vamos a retornar ese valor
  11310. 8:37:28nuevo arreglo vamos a llamar a la
  11311. 8:37:31función pasando el arreglo inicial y
  11312. 8:37:34vamos a tener un arreglo final sin los
  11313. 8:37:37tres elementos
  11314. 8:37:39iniciales sin los tres el primeros
  11315. 8:37:41elementos
  11316. 8:37:42va a mostrar el arreglo final
  11317. 8:37:46veamos si esta cantidad de comas es la
  11318. 8:37:48adecuada para remover los tres elementos
  11319. 8:37:50aquí podemos ver el resultado 4 5 6 7 y
  11320. 8:37:548 estos son los elementos del arreglo
  11321. 8:37:58que si queríamos conservar y eliminamos
  11322. 8:38:01los primeros tres elementos simplemente
  11323. 8:38:04con una sola línea
  11324. 8:38:06genial ya puedes trabajar con la
  11325. 8:38:09sintaxis de desestructuración para
  11326. 8:38:11trabajar con arreglos y reasignarlos
  11327. 8:38:14felicitaciones por llegar hasta este
  11328. 8:38:16punto del curso continua y ánimo porque
  11329. 8:38:19ya estás aprendiendo mucho sobre
  11330. 8:38:20javascript y vas a poder aplicar tus
  11331. 8:38:23conocimientos a tus propios proyectos
  11332. 8:38:35la sintaxis de desestructuración también
  11333. 8:38:38se puede usar para pasar un objeto como
  11334. 8:38:41argumento es realmente sorprendente la
  11335. 8:38:44versatilidad de esta sintaxis vamos a
  11336. 8:38:46ver en este caso cómo pasar un objeto
  11337. 8:38:49como argumento primero que todo para
  11338. 8:38:52nuestro ejemplo necesitamos un objeto
  11339. 8:38:56que va a representar el nuevo perfil de
  11340. 8:38:59un cliente los datos actualizados su
  11341. 8:39:02nombre game those su edad es 24 su
  11342. 8:39:06nacionalidad es digamos española y su
  11343. 8:39:10ubicación es españa tenemos nuestro
  11344. 8:39:13objeto ahora como vamos a actualizar ese
  11345. 8:39:17perfil
  11346. 8:39:18vamos a hacerlo con una función
  11347. 8:39:22actualizar perfil
  11348. 8:39:25vamos a definir una función flecha en
  11349. 8:39:29este caso esa función flecha va a tomar
  11350. 8:39:32la información
  11351. 8:39:33de perfil del cliente y va a actualizar
  11352. 8:39:37el perfil pero en realidad no vamos a
  11353. 8:39:41implementar esa actualización del perfil
  11354. 8:39:43lo que vamos a hacer es ver cómo podemos
  11355. 8:39:45tomar este objeto y descomponerlo cuando
  11356. 8:39:49lo pasamos como un argumento si no lo
  11357. 8:39:51descomponemos y simplemente escribimos
  11358. 8:39:54este parámetro la información de perfil
  11359. 8:39:56que va a ser un objeto podemos
  11360. 8:39:59descomponerlo ya dentro de la función
  11361. 8:40:02escribimos const seguido de las llaves
  11362. 8:40:06la sintaxis de desestructuración que ya
  11363. 8:40:09aprendiste y escribimos las propiedades
  11364. 8:40:12nombre edad nacionalidad y ubicación y
  11365. 8:40:16del otro lado del lado derecho
  11366. 8:40:17escribimos el nombre del objeto y
  11367. 8:40:20podemos mostrar el nombre la edad la
  11368. 8:40:24nacionalidad y la ubicación es lo que
  11369. 8:40:26vamos a hacer en esta función
  11370. 8:40:29y vamos a llamar a la función pasando
  11371. 8:40:32como argumento el nuevo perfil del
  11372. 8:40:34cliente
  11373. 8:40:35este objeto que tenemos aquí se va a
  11374. 8:40:39asignar a este parámetro y luego vamos a
  11375. 8:40:44desglosar lo descomponerlo en sus
  11376. 8:40:47propiedades nombre edad nacionalidad y
  11377. 8:40:50ubicación éstas van a ser variables que
  11378. 8:40:53podemos utilizar en la función variables
  11379. 8:40:55locales y en las vamos a mostrar vamos a
  11380. 8:40:58mostrar su valor veamos
  11381. 8:41:00efectivamente el nombre siendo su edad
  11382. 8:41:0324 nacionalidad española y ubicación
  11383. 8:41:07españa pero en este caso estamos tomando
  11384. 8:41:10el objeto completo si nosotros mostramos
  11385. 8:41:13con con su punto lo que representa
  11386. 8:41:17información de perfil vamos a ver que
  11387. 8:41:20obtenemos obtenemos un objeto el objeto
  11388. 8:41:23completo que se pasó como argumento hay
  11389. 8:41:26otra forma con la sintaxis de
  11390. 8:41:28desestructuración de descomponer ese
  11391. 8:41:31objeto directamente en la lista de
  11392. 8:41:34parámetros para asignar las variables
  11393. 8:41:37individuales es muy práctico vamos a ver
  11394. 8:41:40cómo lo podemos hacer en lugar de este
  11395. 8:41:42parámetro vamos a escribir un par de
  11396. 8:41:45llaves dentro de la lista de parámetros
  11397. 8:41:47y vamos a escribir el nombre de la
  11398. 8:41:50propiedad que queremos asignar en este
  11399. 8:41:53caso tenemos cuatro propiedades que
  11400. 8:41:55queremos extraer nombre edad
  11401. 8:41:58nacionalidad y ubicación así podemos de
  11402. 8:42:02una vez directamente asignar los valores
  11403. 8:42:06a variables independientes a variables
  11404. 8:42:09que podemos usar en nuestra función y
  11405. 8:42:13así el cuerpo de la función también es
  11406. 8:42:15más conciso veamos la consola vemos el
  11407. 8:42:19mismo resultado el nombre es james edad
  11408. 8:42:2324 nacionalidad española y ubicación
  11409. 8:42:26españa no necesariamente tenemos que
  11410. 8:42:29tomar todos los valores tampoco como
  11411. 8:42:32argumento por ejemplo podemos
  11412. 8:42:35simplemente tomar el nombre y la edad
  11413. 8:42:38aquí los tendríamos y vamos a ver la
  11414. 8:42:40consola y vemos yendo y 24 así que
  11415. 8:42:44también nos sirve para seleccionar
  11416. 8:42:46propiedades específicas para la función
  11417. 8:42:49del objeto que vamos a tomar como
  11418. 8:42:52argumento aquí del nuevo perfil del
  11419. 8:42:54cliente solo estamos tomando el nombre y
  11420. 8:42:57la edad y los podemos usar en la función
  11421. 8:43:00ahora vamos a ver otro ejercicio otro
  11422. 8:43:02ejemplo de cómo puedes pasar un objeto
  11423. 8:43:05usando la sintaxis de desestructuración
  11424. 8:43:08vamos a definir un objeto que se llame
  11425. 8:43:11estadísticas estas propiedades serían
  11426. 8:43:15marx el maximo
  11427. 8:43:1756.78 desviación estándar
  11428. 8:43:22434
  11429. 8:43:24mediana
  11430. 8:43:2734.54
  11431. 8:43:29moda
  11432. 8:43:3223.87
  11433. 8:43:34mínimos el valor mínimo de el conjunto
  11434. 8:43:37de datos es menos 0.75 y el promedio
  11435. 8:43:42sería
  11436. 8:43:4535.85
  11437. 8:43:47estas son nuestras estadísticas si están
  11438. 8:43:49representadas como un objeto ese objeto
  11439. 8:43:53lo podemos pasar digamos a una función
  11440. 8:43:55flecha digamos que inicialmente tenemos
  11441. 8:43:59esta función flecha
  11442. 8:44:02que calcula el punto medio del intervalo
  11443. 8:44:06entre el máximo y el mínimo podemos
  11444. 8:44:08llamarlo también en mitad la mitad o el
  11445. 8:44:11punto medio entre el máximo y el mínimo
  11446. 8:44:13del conjunto de estadísticas tomaría un
  11447. 8:44:16parámetro que se va a llamar
  11448. 8:44:20estadísticas pero no tiene nada que ver
  11449. 8:44:22con
  11450. 8:44:24este objeto si quieres también podemos
  11451. 8:44:26abreviar lo como é o
  11452. 8:44:29ponerle un nombre más descriptivo
  11453. 8:44:32y qué vamos a hacer con esas
  11454. 8:44:33estadísticas vamos a tomar el máximo y
  11455. 8:44:37el mínimo
  11456. 8:44:39lo vamos a sumar y los vamos a dividir
  11457. 8:44:41entre 2.0 eso es lo que va a ser la
  11458. 8:44:44función flecha lo suma y luego divide
  11459. 8:44:48entre 2 pero cómo podemos reescribir
  11460. 8:44:51esta función para usar la sintaxis de
  11461. 8:44:54desestructuración lo primero que tenemos
  11462. 8:44:56que hacer es analizar qué propiedades de
  11463. 8:44:59ese objeto vamos a necesitar en la
  11464. 8:45:02función el máximo y el mínimo en este
  11465. 8:45:04caso así que simplemente
  11466. 8:45:07escribimos esas propiedades en la lista
  11467. 8:45:12de parámetros rodeados por llaves
  11468. 8:45:14escribimos máximo y escribimos mínimo y
  11469. 8:45:18como ya son variables con las que
  11470. 8:45:20podemos trabajar en nuestra función
  11471. 8:45:23reemplazamos esto por máximo más mínimo
  11472. 8:45:27y bueno así las tenemos esto va a
  11473. 8:45:31asignar cada propiedad a su variable
  11474. 8:45:33correspondiente
  11475. 8:45:34vamos a ver vamos a llamar a la función
  11476. 8:45:38mitad pasando el objeto estadísticas y
  11477. 8:45:42veamos el resultado
  11478. 8:45:44el valor resultante es 28 puntos 0 15
  11479. 8:45:48que sería el resultado de sumar el
  11480. 8:45:50máximo con el mínimo y dividirlo entre 2
  11481. 8:45:53genial ya ha visto un ejemplo de cómo
  11482. 8:45:56puedes cambiar una función para usar
  11483. 8:45:59esta sintaxis de desestructuración
  11484. 8:46:01tienes que identificar qué propiedades
  11485. 8:46:04vas a necesitar en la función y
  11486. 8:46:06simplemente las escribes aquí entre
  11487. 8:46:08llaves y esas propiedades esos valores
  11488. 8:46:11se van a asignar a variables con las
  11489. 8:46:13cuales puedes trabajar en la función te
  11490. 8:46:16veo en el siguiente tema
  11491. 8:46:24hablar sobre un tipo especial de cadena
  11492. 8:46:27de caracteres que nos permite crear
  11493. 8:46:29cadenas con varias líneas y reemplazar
  11494. 8:46:32los valores de las variables que
  11495. 8:46:34necesitemos fácilmente en una cadena las
  11496. 8:46:38características principales de las
  11497. 8:46:40plantillas literales o las plantillas de
  11498. 8:46:42cadenas son que se definen usando el
  11499. 8:46:46acento invertido bactec este tipo de
  11500. 8:46:50cadena especial se llaman plantillas
  11501. 8:46:52literales o también plantillas de
  11502. 8:46:55cadenas estas son sus características
  11503. 8:46:57principales se usa el acento invertido
  11504. 8:47:00en inglés se llamaba ctic este símbolo
  11505. 8:47:04en lugar de comillas pueden contener
  11506. 8:47:08comillas simples y comillas dobles
  11507. 8:47:11recuerda que antes cuando usábamos
  11508. 8:47:13comillas no podíamos usar el mismo tipo
  11509. 8:47:15de comilla dentro de la cadena
  11510. 8:47:18pero ahora como estamos definiendo las
  11511. 8:47:20plantillas con bhakti con el acento
  11512. 8:47:23invertido no vamos a tener problemas con
  11513. 8:47:26eso podemos usar cualquier tipo de
  11514. 8:47:28comillas dentro de la cadena las líneas
  11515. 8:47:31de la plantilla se preservan como se
  11516. 8:47:34escriben en el código si escribes la
  11517. 8:47:37cadena en tres o cuatro líneas esas tres
  11518. 8:47:39o cuatro líneas se van a preservar
  11519. 8:47:41incluyendo todos sus espacios y así se
  11520. 8:47:44va a mostrar y una de las cosas más
  11521. 8:47:47importantes que puedes hacer en este
  11522. 8:47:49tipo de cadena es que para reemplazar
  11523. 8:47:52una variable se escribe esta expresión
  11524. 8:47:54el nombre de la variable rodeada por
  11525. 8:47:58llaves y antes de las llaves un signo de
  11526. 8:48:02dólar este signo que tenemos aquí esto
  11527. 8:48:04nos permite reemplazar el valor de la
  11528. 8:48:07variable en la cadena y la vamos a poder
  11529. 8:48:09escribir como parte de la cadena ya vas
  11530. 8:48:12a ver que va a ser muy útil y dentro de
  11531. 8:48:14este conjunto de símbolos también puedes
  11532. 8:48:16escribir expresiones por ejemplo puedes
  11533. 8:48:19multiplicar una variable por 2 o sumar
  11534. 8:48:22un valor
  11535. 8:48:23y escribir una expresión y el resultado
  11536. 8:48:26de esta expresión se va a reemplazar en
  11537. 8:48:28la cadena
  11538. 8:48:30bien veamos algunos ejemplos
  11539. 8:48:33si definimos una variable con un valor
  11540. 8:48:36inicial 6
  11541. 8:48:38y mostramos una cadena una plantilla de
  11542. 8:48:42cadena primero tenemos que usar batik el
  11543. 8:48:45acento invertido
  11544. 8:48:47y escribimos la cadena como normalmente
  11545. 8:48:50lo hacemos el valor de a es
  11546. 8:48:54normalmente aquí hubiésemos concatenado
  11547. 8:48:57la cadena con la variable
  11548. 8:48:59cierto y hubiésemos dejado un espacio
  11549. 8:49:02aquí para mejorar la presentación para
  11550. 8:49:05que hubiera una separación pero con las
  11551. 8:49:08plantillas de cadenas o plantillas
  11552. 8:49:10literales ya es mucho más fácil
  11553. 8:49:12reemplazar el valor de una variable lo
  11554. 8:49:14único que hacemos es escribir esta
  11555. 8:49:17secuencia de símbolos el signo de dólar
  11556. 8:49:19seguido de llaves y dentro de las llaves
  11557. 8:49:24escribimos el nombre de la variable
  11558. 8:49:27esto le dice a javascript que queremos
  11559. 8:49:29reemplazar el valor de esa variable en
  11560. 8:49:32la cadena si vemos la consola puedes ver
  11561. 8:49:35que el valor se reemplazó el valor 6 y
  11562. 8:49:39es mucho más fácil de leer y de escribir
  11563. 8:49:41las cadenas veamos otro ejemplo con una
  11564. 8:49:44cadena de caracteres
  11565. 8:49:46tenemos una variable digamos con una
  11566. 8:49:48cadena de caracteres no ahora su edad va
  11567. 8:49:52a ser 66 añitos
  11568. 8:49:54si creamos una plantilla literal una
  11569. 8:49:57plantilla de cadena podemos reemplazar
  11570. 8:49:59el valor de cada una de estas variables
  11571. 8:50:02digamos mi nombre es el valor de nombre
  11572. 8:50:05y tengo tantos años esto va a ser muy
  11573. 8:50:09útil para ti si te quieres adentrar
  11574. 8:50:12también en desarrollo web porque puedes
  11575. 8:50:14personalizar el valor de las cadenas
  11576. 8:50:16fácilmente y escribirlas de forma más
  11577. 8:50:19concisa para presentárselas al usuario
  11578. 8:50:21también como puedes ver podemos usar
  11579. 8:50:23cualquier tipo de comillas dentro de la
  11580. 8:50:26cadena porque estamos definiendo la con
  11581. 8:50:29acento invertido o bactec si abrimos la
  11582. 8:50:32consola mi nombre es no ahora el nombre
  11583. 8:50:34se reemplazo y tengo seis años aquí ves
  11584. 8:50:38el valor de la edad los dos valores
  11585. 8:50:40correctos que correspondían a esas
  11586. 8:50:42variables
  11587. 8:50:43genial también podemos reemplazar otros
  11588. 8:50:46tipos de datos por ejemplo arreglos
  11589. 8:50:48digamos que tenemos otro ejemplo y vamos
  11590. 8:50:53a definir un arreglo 1 2 3 y 4 vamos a
  11591. 8:50:57mostrar una plantilla de cadena una
  11592. 8:50:59plantilla literal
  11593. 8:51:02que incluya el arreglo el arreglo es
  11594. 8:51:07me arreglo aquí deberíamos ver los
  11595. 8:51:10elementos del arreglo y como lo
  11596. 8:51:13esperábamos vemos los elementos del
  11597. 8:51:15arreglo
  11598. 8:51:16si queremos mostrar el arreglo de esta
  11599. 8:51:18forma más presentable podemos usar este
  11600. 8:51:22método jason que es un tipo de datos que
  11601. 8:51:25usamos para representar trata
  11602. 8:51:27normalmente en
  11603. 8:51:29notación
  11604. 8:51:31se llama javascript update notation es
  11605. 8:51:34un formato que nos permite presentar
  11606. 8:51:36objetos de forma mucho más
  11607. 8:51:39legible mucho más fácil de entender
  11608. 8:51:42jason tiene un método que se llama
  11609. 8:51:45string ifai que convierte un valor en
  11610. 8:51:48javascript a una cadena de caracteres
  11611. 8:51:51que sigue el formato jason si aplicamos
  11612. 8:51:55este método al arreglo podemos verlo
  11613. 8:51:58aquí mucho más presentable pero aun así
  11614. 8:52:01el valor de esta expresión fue
  11615. 8:52:03reemplazado en la plantilla literal
  11616. 8:52:06genial también podemos reemplazar el
  11617. 8:52:09valor de las propiedades de un objeto
  11618. 8:52:11veamos un ejemplo
  11619. 8:52:13digamos que un objeto representa una
  11620. 8:52:16persona o un cliente y lo casa
  11621. 8:52:21y eso edad es días ahora tenemos un
  11622. 8:52:24objeto lugar de variables individuales o
  11623. 8:52:27variables separadas con un objeto
  11624. 8:52:29también podemos crear una plantilla
  11625. 8:52:31literal vamos a ver otra variación en
  11626. 8:52:35lugar de escribir la plantilla literal
  11627. 8:52:37directamente en con su punto lo podemos
  11628. 8:52:40asignarle a una variable digamos saludo
  11629. 8:52:43lo que hacemos es escribir las vãctimas
  11630. 8:52:46y crear nuestra plantilla que va a ser
  11631. 8:52:49asignada a esta variable que en este
  11632. 8:52:51caso actúa como una constante así que
  11633. 8:52:54deberíamos escribirla en mayúscula hola
  11634. 8:52:58mi nombre es
  11635. 8:53:01y aquí queremos reemplazar el nombre del
  11636. 8:53:04objeto persona como lo hacemos con
  11637. 8:53:08notación de punto el nombre de la
  11638. 8:53:11variable que contiene el objeto seguido
  11639. 8:53:14de la propiedad nombre hola mi nombre es
  11640. 8:53:17tal y tengo
  11641. 8:53:20tantos años
  11642. 8:53:22de la misma forma podemos acceder a la
  11643. 8:53:24edad y completamos nuestra plantilla si
  11644. 8:53:28queremos mostrarla usamos con su logo y
  11645. 8:53:31aquí tenemos el saludo hola mi nombre es
  11646. 8:53:34chino cast este valor se reemplazo y
  11647. 8:53:38tengo 10 este valor se reemplazó años
  11648. 8:53:42genial también vimos la variación de que
  11649. 8:53:44podemos crear la plantilla y asignar la
  11650. 8:53:48a una variable o una constante en este
  11651. 8:53:51caso buen trabajo ya sabes cómo trabajar
  11652. 8:53:54con plantillas literales o plantillas de
  11653. 8:53:57cadenas en java es que así que pasemos a
  11654. 8:53:59nuestro siguiente tema ya nos quedan
  11655. 8:54:01pocos temas para culminar el curso
  11656. 8:54:03felicitaciones por llegar hasta este
  11657. 8:54:05punto continúa así sigue con el buen
  11658. 8:54:08trabajo y nos vemos en el próximo tema
  11659. 8:54:17veamos una forma de crear objetos de
  11660. 8:54:20forma mucho más concisa en javascript
  11661. 8:54:23digamos que tenemos una función que se
  11662. 8:54:26llama crear persona esa función va a ser
  11663. 8:54:30una función flecha que va a tomar tres
  11664. 8:54:33parámetros nombre edad e idioma luego
  11665. 8:54:37escribimos la flecha y cómo va a tener
  11666. 8:54:40más de una línea tenemos que rodear ese
  11667. 8:54:44cuerpo de la función con llaves que va a
  11668. 8:54:46retornar esta función va a retornar un
  11669. 8:54:49objeto y esta es una forma de crear
  11670. 8:54:52objetos en nuestro programa cuando
  11671. 8:54:55llamemos a la función nos va a retornar
  11672. 8:54:57un objeto cuál va a ser la estructura de
  11673. 8:55:00ese objeto va a tener una propiedad para
  11674. 8:55:04el nombre con el valor de este parámetro
  11675. 8:55:07va a tener una propiedad edad con el
  11676. 8:55:11valor de este parámetro y va a tener una
  11677. 8:55:14propiedad idioma con el valor de este
  11678. 8:55:17parámetro esta va a ser la estructura
  11679. 8:55:19del objeto ya vamos a crear personas con
  11680. 8:55:22el nombre chino es mi edad 28 idioma
  11681. 8:55:28español bien veamos la consola aquí
  11682. 8:55:31vemos nombres y no es mi edad 28 idioma
  11683. 8:55:35español perfecto tenemos el objeto pero
  11684. 8:55:38hay una forma todavía más concisa de
  11685. 8:55:41poder escribir esta función flecha en
  11686. 8:55:44una sola línea veamos lo que podemos
  11687. 8:55:47hacer es simplemente
  11688. 8:55:50luego de la flecha
  11689. 8:55:52escribir el objeto rodeado por
  11690. 8:55:55paréntesis de una forma más concisa
  11691. 8:55:57vamos a borrar todo esto
  11692. 8:55:59de este lado de la flecha del lado
  11693. 8:56:01derecho
  11694. 8:56:02escribimos un par de paréntesis y dentro
  11695. 8:56:05de los paréntesis llaves esas llaves le
  11696. 8:56:08van a decir a javascript que queremos
  11697. 8:56:10retornar un objeto y cuál va a ser la
  11698. 8:56:13estructura del objeto esta que tenemos
  11699. 8:56:16aquí va a tener una propiedad nombre con
  11700. 8:56:20el valor de este parámetro una propiedad
  11701. 8:56:22edad con el valor de este parámetro y
  11702. 8:56:25una propiedad idioma con el valor de
  11703. 8:56:27este parámetro esto es básicamente lo
  11704. 8:56:30que le estamos diciendo a javascript
  11705. 8:56:32crea un objeto con esta estructura las
  11706. 8:56:35propiedades van a tener los mismos
  11707. 8:56:36nombres de los parámetros y sus valores
  11708. 8:56:40se van a reemplazar cuando se cree el
  11709. 8:56:42objeto veamos el resultado en la consola
  11710. 8:56:45podemos ver que el resultado es
  11711. 8:56:47exactamente el mismo nombre jim smith el
  11712. 8:56:51valor de este parámetro se asigna aquí a
  11713. 8:56:53esta propiedad edad 28 idioma español
  11714. 8:56:58convertimos algo que nos hubiera tomado
  11715. 8:57:00varias líneas a una función flecha en
  11716. 8:57:03una sola línea
  11717. 8:57:04genial ya sabes cómo escribir objetos de
  11718. 8:57:07forma más concisa en javascript
  11719. 8:57:17también puedes declarar funciones dentro
  11720. 8:57:21de los objetos que crees en tu programa
  11721. 8:57:24veamos cómo puedes hacerlo y cómo puedes
  11722. 8:57:27usar una versión más concisa con el
  11723. 8:57:29estándar s 6 en nueva estándar vamos a
  11724. 8:57:33definir un objeto vamos a crearlo en el
  11725. 8:57:36programa llamado persona esa persona ese
  11726. 8:57:40objeto va a tener un nombre
  11727. 8:57:41digamos isabel
  11728. 8:57:45y ahora va a tener una función asociada
  11729. 8:57:48esa es parte de la versatilidad de los
  11730. 8:57:51objetos
  11731. 8:57:52podemos definir propiedades con sus
  11732. 8:57:54correspondientes valores y también
  11733. 8:57:56propiedades que sean funciones digamos
  11734. 8:57:59que queremos que isabel se pueda
  11735. 8:58:01presentar
  11736. 8:58:02para eso vamos a crear una propiedad que
  11737. 8:58:06se llame presentar se va a ser una
  11738. 8:58:08función vamos a poder llamar a esta
  11739. 8:58:11función a través del objeto
  11740. 8:58:14escribimos function paréntesis vacíos
  11741. 8:58:18porque en este caso la función no va a
  11742. 8:58:20tomar ningún parámetro y luego llaves
  11743. 8:58:23dentro de las llaves
  11744. 8:58:24escribimos el cuerpo de la función
  11745. 8:58:27digamos que queremos retornar la
  11746. 8:58:29siguiente plantilla literal o plantilla
  11747. 8:58:32de cadena hola mi nombre es
  11748. 8:58:36y aquí dentro de la función
  11749. 8:58:39podemos usar el valor de alguna
  11750. 8:58:41propiedad digamos que queremos
  11751. 8:58:43reemplazar el nombre del objeto aquí
  11752. 8:58:45como lo podemos hacer con la combinación
  11753. 8:58:48de símbolos que aprendiste para las
  11754. 8:58:50plantillas literal es el símbolo de
  11755. 8:58:53dólar seguido de llaves y dentro de las
  11756. 8:58:56llaves escribimos esto que ves aquí des
  11757. 8:59:00punto nombre la palabra this tiene una
  11758. 8:59:04función muy especial en java esker
  11759. 8:59:06porque se refiere al objeto con el que
  11760. 8:59:09estamos trabajando en este caso ustedes
  11761. 8:59:13se refiere al objeto persona al nombre
  11762. 8:59:17de esta persona al nombre de este objeto
  11763. 8:59:20cuando usamos d es seguido de un punto y
  11764. 8:59:23luego el nombre de la propiedad esa
  11765. 8:59:26propiedad se va a buscar en el objeto
  11766. 8:59:28actual en el objeto que contiene la
  11767. 8:59:31palabra test en este caso sería este
  11768. 8:59:33valor
  11769. 8:59:34vamos a llamar a esta función como la
  11770. 8:59:37podemos llamar escribimos el nombre de
  11771. 8:59:40la variable que contiene ese objeto y
  11772. 8:59:43curiosamente vamos a poder usar el
  11773. 8:59:45nombre de esta propiedad como si fuera
  11774. 8:59:47el nombre de la función escribimos el
  11775. 8:59:50nombre de la propiedad presentarse
  11776. 8:59:52seguido de paréntesis vacíos como no
  11777. 8:59:56toma ningún parámetro esta función
  11778. 8:59:58porque aquí tenemos paréntesis vacíos
  11779. 9:00:01escribimos también paréntesis vacíos
  11780. 9:00:03para llamar a la función
  11781. 9:00:10pero como estamos retornando este valor
  11782. 9:00:13tenemos que mostrarlo en la consola
  11783. 9:00:17también en lugar de retornar lo
  11784. 9:00:19podríamos mostrar el mensaje
  11785. 9:00:20directamente vamos a ver el resultado
  11786. 9:00:24hola mi nombre es y saber puedes ver que
  11787. 9:00:28el valor de la propiedad nombre del
  11788. 9:00:31objeto fue reemplazada aquí en la
  11789. 9:00:33plantilla literal genial ya sabes cómo
  11790. 9:00:36definir funciones que están asociadas a
  11791. 9:00:39objetos específicos y cómo llamar a esas
  11792. 9:00:42funciones y también cómo usar
  11793. 9:00:44propiedades del objeto dentro de esas
  11794. 9:00:48funciones acuérdate que tienes que usar
  11795. 9:00:50test seguido un punto y el nombre de la
  11796. 9:00:53propiedad esta es la sintaxis que
  11797. 9:00:56hubiésemos usado anteriormente pero con
  11798. 9:00:58el estándar nuevo es6 podemos
  11799. 9:01:02simplificar nuestro código aún más para
  11800. 9:01:04definir esta función lo que podemos
  11801. 9:01:07hacer es simplemente quitar aquí los dos
  11802. 9:01:09puntos y la palabra clave function
  11803. 9:01:12paréntesis vacíos aquí la cual sería la
  11804. 9:01:15lista de parámetros hubiesen parámetros
  11805. 9:01:17justo inmediatamente del nombre de la
  11806. 9:01:20propiedad
  11807. 9:01:21como si estuviésemos definiendo una
  11808. 9:01:23función con este nombre prácticamente
  11809. 9:01:25así es como se ve visualmente vamos a
  11810. 9:01:29ver cómo funciona luego de estos cambios
  11811. 9:01:30el resultado es exactamente el mismo
  11812. 9:01:33hola mi nombre es isabel no hubo ningún
  11813. 9:01:36cambio y logramos escribir código más
  11814. 9:01:38conciso y más fácil de leer
  11815. 9:01:41recuerda quitamos los dos puntos y la
  11816. 9:01:43palabra clave function y simplemente
  11817. 9:01:46escribimos el nombre de la función
  11818. 9:01:48seguido de la lista de parámetros bien
  11819. 9:01:51ya sabes cómo definir funciones
  11820. 9:01:53asociadas a objetos en javascript esto
  11821. 9:01:56es muy útil para expandir la
  11822. 9:01:57funcionalidad de los objetos en tu
  11823. 9:01:59programa
  11824. 9:02:08a ver cómo puedes declarar una clase en
  11825. 9:02:10javascript una clase es simplemente algo
  11826. 9:02:14parecido a un plano de un edificio o de
  11827. 9:02:17un objeto que nos permite crear muchos
  11828. 9:02:21objetos con la misma estructura las
  11829. 9:02:23mismas propiedades y la misma
  11830. 9:02:25funcionalidad es un plano general que
  11831. 9:02:27nos permite escribir código una sola vez
  11832. 9:02:29y re usarlo para crear tantos objetos
  11833. 9:02:32como necesitemos en nuestro programa
  11834. 9:02:34veamos un ejemplo class significa clase
  11835. 9:02:38en español luego de la palabra clave
  11836. 9:02:40class
  11837. 9:02:42escribimos el nombre de la clase el
  11838. 9:02:45nombre del tipo de objeto que vamos a
  11839. 9:02:47crear digamos que queremos representar
  11840. 9:02:50un transbordador espacial en nuestro
  11841. 9:02:54código un transbordador espacial que va
  11842. 9:02:57a tener ciertas propiedades este
  11843. 9:03:00transbordador espacial
  11844. 9:03:02va a tener un estado inicial que lo
  11845. 9:03:05podemos inicializar con esta función
  11846. 9:03:08asociada al objeto que vamos a definir
  11847. 9:03:10que se llama constructor
  11848. 9:03:12y constructor en español podríamos
  11849. 9:03:15traducirlo como constructor es la
  11850. 9:03:17función que se va a llamar
  11851. 9:03:18automáticamente cuando creemos un objeto
  11852. 9:03:21de este tipo de transbordador espacial
  11853. 9:03:25esa función se va a llamar
  11854. 9:03:26automáticamente y va a tomar este
  11855. 9:03:30parámetro que nosotros definimos planeta
  11856. 9:03:33debemos saber cuál es el planeta de
  11857. 9:03:36destino para este transbordador espacial
  11858. 9:03:38y lo vamos a asignar
  11859. 9:03:41como una propiedad ese planeta va a ser
  11860. 9:03:44una propiedad del objeto y para eso
  11861. 9:03:48usamos está sintaxis el objeto
  11862. 9:03:51transbordador espacial va a tener una
  11863. 9:03:53propiedad llamada planeta
  11864. 9:03:56cuando escribimos ustedes nos estamos
  11865. 9:03:58refiriendo al objeto que estamos creando
  11866. 9:04:01estamos básicamente diciendo vamos a
  11867. 9:04:04asignar el valor del parámetro a la
  11868. 9:04:06propiedad planeta del objeto que estamos
  11869. 9:04:09creando
  11870. 9:04:10eso es básicamente lo que estamos
  11871. 9:04:12haciendo algo importante que debes saber
  11872. 9:04:15es que el nombre de las clases que
  11873. 9:04:18creamos en javascript deberían seguir
  11874. 9:04:20una convención llamada o perca monkeys
  11875. 9:04:23que es similar a lo que hemos usado
  11876. 9:04:25hasta ahora cada palabra comienza con
  11877. 9:04:28una letra mayúscula pero también la
  11878. 9:04:32primera palabra comienza con una letra
  11879. 9:04:34mayúscula
  11880. 9:04:35esto es una convención que usamos en
  11881. 9:04:37javascript que se recomienda y se
  11882. 9:04:39sugiere para escribir código que siga
  11883. 9:04:42los estándares del lenguaje así que ya
  11884. 9:04:44sabes los nombres de las clases
  11885. 9:04:46comienzan con la letra mayúscula
  11886. 9:04:49algo que debes saber también es que en
  11887. 9:04:51realidad cuando usamos la palabra clave
  11888. 9:04:54clave aquí debes saber que ya vas que en
  11889. 9:04:57realidad no está creando una clase
  11890. 9:04:59completamente funcional como la que
  11891. 9:05:02crearíamos en python wen jiabao en otros
  11892. 9:05:04lenguajes de programación sino que
  11893. 9:05:07simplemente estamos escribiendo de forma
  11894. 9:05:10más concisa una forma distinta de crear
  11895. 9:05:13un objeto no tiene todas todas las
  11896. 9:05:15capacidades de una clase en otros
  11897. 9:05:17lenguajes de programación
  11898. 9:05:18pero sí nos permite crear objetos en
  11899. 9:05:22nuestro programa vamos a ver un ejemplo
  11900. 9:05:25si queremos crear un transbordador
  11901. 9:05:27espacial que se llame zeus
  11902. 9:05:30vamos a definir una variable
  11903. 9:05:33zeus y vamos a crear un nuevo objeto
  11904. 9:05:36creamos un objeto en javascript con la
  11905. 9:05:39palabra clave new seguido del nombre de
  11906. 9:05:42la clase y entre paréntesis los
  11907. 9:05:45argumentos que requiera el constructor
  11908. 9:05:48en este caso es el planeta de destino
  11909. 9:05:52ese planeta es júpiter en este caso para
  11910. 9:05:55este objeto en particular
  11911. 9:05:57así que estamos creando un objeto de
  11912. 9:06:00tipo transbordador espacial que va a
  11913. 9:06:02tener una propiedad planeta esa
  11914. 9:06:05propiedad va a tener como valor júpiter
  11915. 9:06:08vamos a comprobarlo vamos a tratar de
  11916. 9:06:11acceder a la propiedad planeta del
  11917. 9:06:14objeto zeus y veamos en la consola
  11918. 9:06:18aquí tenemos júpiter exactamente lo que
  11919. 9:06:21esperábamos
  11920. 9:06:22ahora vamos a crear otro objeto y vamos
  11921. 9:06:24a llamarlo a polo este va a ser otro
  11922. 9:06:28transbordador espacial pero su planeta
  11923. 9:06:30de destino va a ser martes
  11924. 9:06:33ahora vamos a usar este objeto a polo y
  11925. 9:06:37acceder a su propiedad planeta
  11926. 9:06:40aquí la podemos ver marte es el valor
  11927. 9:06:43del planeta para polo
  11928. 9:06:46genial ya sabes cómo usar la palabra
  11929. 9:06:49clave class para crear una clase en
  11930. 9:06:52javascript y poder crear objetos veamos
  11931. 9:06:55otro ejemplo si quiero definir una clase
  11932. 9:06:59que represente a mi mascota
  11933. 9:07:01puedo hacerlo con el estándar nuevo
  11934. 9:07:05escribimos constructor
  11935. 9:07:09y va a tomar dos parámetros nombre y
  11936. 9:07:11edad voy a asignar el valor de nombre a
  11937. 9:07:16una propiedad llamada el nombre para el
  11938. 9:07:19objeto y lo mismo voy a hacer con la
  11939. 9:07:21edad
  11940. 9:07:23así cuando creemos una mascota por
  11941. 9:07:25ejemplo mi mascota va a ser un nuevo
  11942. 9:07:29objeto va a tener por nombre en ahora su
  11943. 9:07:33edad de cinco
  11944. 9:07:35y ya después de esta línea podemos
  11945. 9:07:37trabajar con el objeto va a tener una
  11946. 9:07:39propiedad llamada nombre y una propiedad
  11947. 9:07:42llamada edad a las cuales podemos
  11948. 9:07:44acceder actualizar y eliminar y con las
  11949. 9:07:47cuales podemos trabajar en general todas
  11950. 9:07:49las operaciones que aprendiste durante
  11951. 9:07:51el curso
  11952. 9:07:53con su punto log mi mascota
  11953. 9:07:56edad si las vemos aquí en la consola
  11954. 9:07:59puedes ver que si los valores son los
  11955. 9:08:01que esperábamos no hora y 5 podemos
  11956. 9:08:03reutilizar este código cuántas veces
  11957. 9:08:05necesitamos para crear cuantos objetos
  11958. 9:08:08necesitemos por ejemplo podemos crear
  11959. 9:08:11otro objeto que se llame tu mascota esa
  11960. 9:08:14mascota se va a llamar chino y su edad
  11961. 9:08:17va a ser 2
  11962. 9:08:18puedes ver que estamos re utilizando el
  11963. 9:08:21código para crear dos mascotas distintas
  11964. 9:08:23y cada una va a tener sus propios
  11965. 9:08:26valores para sus propiedades y van a ser
  11966. 9:08:28independientes genial ya sabes cómo
  11967. 9:08:31definir una clase en javascript esto es
  11968. 9:08:34muy útil para evitar repetir códigos y
  11969. 9:08:36para crear una plantilla general de la
  11970. 9:08:39estructura de un tipo de objeto
  11971. 9:08:41bien pasemos a nuestro siguiente tema ya
  11972. 9:08:45estamos llegando al final del curso buen
  11973. 9:08:47trabajo por llegar hasta aquí te
  11974. 9:08:49felicito
  11975. 9:08:50así que continuemos
  11976. 9:08:57y ahora expandamos nuestro concepto de
  11977. 9:08:59un objeto ya sabes que los objetos
  11978. 9:09:02pueden tener funciones asociadas a esos
  11979. 9:09:05objetos también podemos definir
  11980. 9:09:08funciones en una clase para que cuando
  11981. 9:09:10creemos un objeto ese objeto tenga todas
  11982. 9:09:13esas funciones asociadas pero hay dos
  11983. 9:09:17funciones específicas que se llaman kers
  11984. 9:09:21y servers que nos van a permitir
  11985. 9:09:23proteger la data de ese objeto ya vamos
  11986. 9:09:27a ver
  11987. 9:09:28vamos a declarar una clase llamada libro
  11988. 9:09:31esa clase va a tener un constructor el
  11989. 9:09:35libro va a tener un autor y vamos a
  11990. 9:09:38crear una propiedad llamada autor pero
  11991. 9:09:41así como la estamos definiendo en este
  11992. 9:09:43momento podemos cambiar el valor del
  11993. 9:09:47autor en cualquier momento y a cualquier
  11994. 9:09:49valor eso podría ser una posible fuente
  11995. 9:09:53de errores si lo cambiamos a un valor
  11996. 9:09:55que no es válido por ejemplo que el
  11997. 9:09:57autor sea un número o un autor que no
  11998. 9:10:01corresponde a ese libro por eso en
  11999. 9:10:04javascript podemos proteger esa data
  12000. 9:10:07haciendo que nuestras variables sean
  12001. 9:10:09privadas por convención
  12002. 9:10:12agregando un guión bajo antes del nombre
  12003. 9:10:16de la propiedad aquí
  12004. 9:10:18esto le dice a otros desarrolladores que
  12005. 9:10:20no deberían modificar este valor solo se
  12006. 9:10:24debe usar internamente dentro de la
  12007. 9:10:27clase sin embargo en la práctica
  12008. 9:10:30técnicamente no hace que la propiedad
  12009. 9:10:32sea privada no es privada porque igual
  12010. 9:10:35se podría acceder si agregamos el guión
  12011. 9:10:37bajo en el nombre pero por convención ya
  12012. 9:10:41eso es una señal para otros
  12013. 9:10:43desarrolladores de que no se debe
  12014. 9:10:45acceder aún así podemos dar acceso si lo
  12015. 9:10:48deseamos a esa propiedad con los
  12016. 9:10:51guerreros y los servers los querer son
  12017. 9:10:53métodos que nos permiten obtener el
  12018. 9:10:56valor de una propiedad privada una
  12019. 9:10:59propiedad que tiene un guión bajo antes
  12020. 9:11:02de su nombre nos permite acceder a ese
  12021. 9:11:05valor de forma indirecta así protegemos
  12022. 9:11:08el valor no lo estamos cambiando
  12023. 9:11:10directamente como definimos hunger get
  12024. 9:11:14en español significa obtener podríamos
  12025. 9:11:17traducirlo así
  12026. 9:11:19método su propósito es retornar este
  12027. 9:11:22valor para que podamos usarlo en nuestro
  12028. 9:11:25programa de forma indirecta
  12029. 9:11:26escribimos que luego el nombre de la
  12030. 9:11:30propiedad autor y aquí paréntesis vacíos
  12031. 9:11:34luego retornamos ese valor retornamos
  12032. 9:11:38tres puntos jon bajo autor
  12033. 9:11:42como puedes ver solamente estamos
  12034. 9:11:44retornando este valor de la propiedad
  12035. 9:11:47del objeto cuando accedamos a la
  12036. 9:11:50propiedad autor vamos a obtener este
  12037. 9:11:53valor pero está protegido porque tiene
  12038. 9:11:56un intermediario durante el proceso esto
  12039. 9:11:59nos permite obtener un valor pero
  12040. 9:12:01también podemos definir un server un
  12041. 9:12:04saber es una función que nos permite
  12042. 9:12:06actualizar el valor de una propiedad y
  12043. 9:12:10son muy útiles porque podemos verificar
  12044. 9:12:13el valor nuevo antes de asignarlo si no
  12045. 9:12:16usamos un ser entonces podríamos cambiar
  12046. 9:12:19este valor a cualquier valor aunque no
  12047. 9:12:22sea válido pero con un setter podemos
  12048. 9:12:24usar condicionales para verificar si es
  12049. 9:12:27válido en este ejemplo simplemente vamos
  12050. 9:12:31a asignar un nuevo autor tomamos el
  12051. 9:12:34valor del parámetro y lo asignamos a la
  12052. 9:12:36propiedad autor
  12053. 9:12:38genial tenemos nuestro querer y tenemos
  12054. 9:12:40nuestro ser recuerda que aquí podría
  12055. 9:12:43haber un condicional para verificar si
  12056. 9:12:45este valor es válido y asignarlo o no
  12057. 9:12:48dependiendo de si es válido vamos a
  12058. 9:12:50probarlo creando un objeto
  12059. 9:12:54nuevo de tipo libro el autor va a ser
  12060. 9:12:59anónimo si mostramos el autor de este
  12061. 9:13:02objeto en la consola vamos a ver lo
  12062. 9:13:06siguiente anónimo exactamente lo que
  12063. 9:13:09especificamos aquí este valor del autor
  12064. 9:13:12puedes ver que aunque en realidad no
  12065. 9:13:15tenemos una propiedad llamada autor sino
  12066. 9:13:17que la propiedad se llama autor con un
  12067. 9:13:20guión bajo adelante aún así podemos
  12068. 9:13:23acceder a la propiedad simplemente
  12069. 9:13:25escribiendo autor eso es gracias a que
  12070. 9:13:28definimos aquí un game y le asignamos
  12071. 9:13:31ese nombre autor nosotros cuando
  12072. 9:13:34escribimos esto llamamos al quieren y
  12073. 9:13:36este valor se obtiene indirectamente a
  12074. 9:13:39través del guerrero
  12075. 9:13:40podemos confirmarlo si también aquí
  12076. 9:13:43agregamos con su punto log
  12077. 9:13:46vamos a ver la consola
  12078. 9:13:48exactamente aquí vemos el mensaje de
  12079. 9:13:51querer porque se está llamando el
  12080. 9:13:53guerrero antes de retornar el valor
  12081. 9:13:54anónimo
  12082. 9:13:56bien ahora vamos a probar cómo funciona
  12083. 9:13:59el server si queremos actualizar el
  12084. 9:14:02valor de la propiedad autor podemos
  12085. 9:14:04hacerlo también
  12086. 9:14:06directamente y gracias al ceder se va a
  12087. 9:14:09actualizar como puedes ver actúan como
  12088. 9:14:11intermediarios
  12089. 9:14:13nuevamente luego de la actualización
  12090. 9:14:15vamos a mostrar el valor del autor y
  12091. 9:14:18aquí vamos a borrar el consumidor del
  12092. 9:14:21querer vamos a agregar un consumo en el
  12093. 9:14:24ser vamos a ver si en realidad se está
  12094. 9:14:27llamando el server cuando cambiamos el
  12095. 9:14:29valor cuando la actualizadas
  12096. 9:14:31aquí lo puedes ver tenemos el autor
  12097. 9:14:33anónimo que es el autor inicialmente
  12098. 9:14:35luego cambiamos el valor llamando al
  12099. 9:14:38share y el nuevo valor se asignó que si
  12100. 9:14:41no es mes
  12101. 9:14:43genial ya sabes cómo trabajar con kers y
  12102. 9:14:46servers en javascript recuerda que aquí
  12103. 9:14:49puedes escribir un condicional para
  12104. 9:14:52determinar si el nuevo valor es válido o
  12105. 9:14:54no para que no hayan cambios inesperados
  12106. 9:14:56que puedan generar errores
  12107. 9:15:00gracias por ver el curso espero que te
  12108. 9:15:02haya gustado y que te haya sido de
  12109. 9:15:04utilidad te invito a suscribirte a
  12110. 9:15:06nuestro canal de freak el campeón
  12111. 9:15:07español

About this transcript

This page contains the full transcript of Aprende JavaScript - Curso Completo desde Cero by freeCodeCamp Español, generated from the public captions YouTube serves with the video. The transcript has 77,530 words across 12,111 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.