<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Lu </title>
    <description>The latest articles on Forem by Lu  (@ux_by_lu).</description>
    <link>https://forem.com/ux_by_lu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F68270%2F41591eca-7598-4c64-a770-fab3cad86742.jpg</url>
      <title>Forem: Lu </title>
      <link>https://forem.com/ux_by_lu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ux_by_lu"/>
    <language>en</language>
    <item>
      <title>Core Web Vitals - Todo lo que necesitas saber para entenderlas</title>
      <dc:creator>Lu </dc:creator>
      <pubDate>Fri, 05 Jan 2024 03:50:45 +0000</pubDate>
      <link>https://forem.com/ux_by_lu/core-web-vitals-todo-lo-que-necesitas-saber-para-entenderlas-3bmd</link>
      <guid>https://forem.com/ux_by_lu/core-web-vitals-todo-lo-que-necesitas-saber-para-entenderlas-3bmd</guid>
      <description>&lt;h1&gt;
  
  
  🚑 CORE WEB VITALS
&lt;/h1&gt;

&lt;h1&gt;
  
  
  💡 ¿Qué son las Web Vitals?
&lt;/h1&gt;

&lt;p&gt;Son una serie de &lt;a href="https://developers.google.com/search/blog/2020/05/evaluating-page-experience"&gt;reglas desarrolladas por Google&lt;/a&gt; en mayo 2020 que están &lt;strong&gt;enfocadas en mejorar la calidad de la experiencia de usuario en un sitio web&lt;/strong&gt;, estás reglas son aplicadas por Google en todos los sitios web de internet. &lt;/p&gt;

&lt;p&gt;En una forma simplificada, es una forma de saber qué factores deben ser optimizados en una página, estos factores comprenden  tiempos y/o velocidad de carga, interacción y estabilidad visual.&lt;/p&gt;

&lt;h1&gt;
  
  
  💡 ¿Por qué son importantes en SEO?
&lt;/h1&gt;

&lt;p&gt;Si bien los Web Vitals no influyen (por ahora) al posicionamiento de nuestro sitio web, se dice que &lt;strong&gt;los usuarios que visitan una página optimizada tienen un 24% menos de probabilidades de abandonar el sitio&lt;/strong&gt; (en otras palabras, mejoraremos el Bounce Rate de nuestro sitio) y &lt;strong&gt;un 1% más de convertir.&lt;/strong&gt;&lt;br&gt;
Siendo la experiencia una objetivo significativo a considerar dentro de las estrategias de SEO Onsite.&lt;/p&gt;

&lt;h1&gt;
  
  
  💡 ¿Qué métricas hacen parte de las Web Vitals?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y6Hr7KRr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cwjxurbza2g4vuq2o5ld.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y6Hr7KRr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cwjxurbza2g4vuq2o5ld.jpg" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Existen &lt;strong&gt;3 métricas Core esenciales&lt;/strong&gt;: &lt;strong&gt;LCP&lt;/strong&gt; &lt;em&gt;&lt;a href="https://www.notion.so/CORE-WEB-VITALS-91a38b18abd149dfa86fc0dd9621f493?pvs=21"&gt;(Largest Contentful paint)&lt;/a&gt;&lt;/em&gt;, &lt;strong&gt;FID&lt;/strong&gt; &lt;em&gt;&lt;a href="https://www.notion.so/CORE-WEB-VITALS-91a38b18abd149dfa86fc0dd9621f493?pvs=21"&gt;(First Input Delay)&lt;/a&gt;&lt;/em&gt; y &lt;strong&gt;CLS&lt;/strong&gt; &lt;em&gt;&lt;a href="https://www.notion.so/CORE-WEB-VITALS-91a38b18abd149dfa86fc0dd9621f493?pvs=21"&gt;(Cumulative Layout Shift)&lt;/a&gt;&lt;/em&gt;, sin embargo, dentro del reporte podemos encontrar &lt;a href="https://www.notion.so/CORE-WEB-VITALS-91a38b18abd149dfa86fc0dd9621f493?pvs=21"&gt;otra serie de métricas&lt;/a&gt; enfocadas en tiempos de carga e interacción de un usuario con nuestro sitio.&lt;/p&gt;

&lt;p&gt;Para cada una de estas métricas core, Google recomienda unos umbrales de tiempo y según los resultados de la inspección, cada sitio podrá ser clasificado como “bueno”, “necesita mejoras” o “pobre”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IRA9yIml--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zyd7ctz4uwirphj4y86i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IRA9yIml--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zyd7ctz4uwirphj4y86i.png" alt="Image description" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://web.dev/defining-core-web-vitals-thresholds/"&gt;Esta clasificación&lt;/a&gt; la hace usando el percentil 75%. Es decir que el 75% de las visitas a la página o sitio deben alcanzar un umbral “bueno”, por el contrario, si el 25% de las visitas a la página o sitio alcanzan el umbral pobre, el sitio será clasificado con bajo rendimiento&lt;/p&gt;

&lt;h2&gt;
  
  
  🚥 &lt;strong&gt;LCP  &lt;em&gt;(Largest Contentful Paint o procesamiento de imagen con contenido más grande)&lt;/em&gt;:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Se encarga de medir la percepción de la velocidad de carga. Es decir, el contenido de mayor tamaño debe verse en este tiempo desde que la página empieza a cargar. Así se da una buena experiencia al usuario.&lt;/p&gt;

&lt;p&gt;Los datos de LCP se componen principalmente de los siguientes elementos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elementos de imagen&lt;/li&gt;
&lt;li&gt;Texto a nivel de bloque&lt;/li&gt;
&lt;li&gt;Imágenes de carteles de vídeo&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Imágenes de fondo&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;&lt;em&gt;PUNTUACIÓN DEL CORE: 2.5 segundos o menos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚥 &lt;strong&gt;CLS (Cumulative layout shift o cambio de diseño acumulado).&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Se refiere a la estabilidad visual y mide la cantidad de cambios inesperados en el diseño del contenido visible es decir reducir los movimientos inesperados que se producen cuando los elementos como los texto, botones e imágenes, son empujados hacia abajo mientras la página todavía se está cargando. Esto suele provocar frustración porque el usuario puede hacer clic en elementos equivocados por el movimiento.&lt;/p&gt;

&lt;p&gt;✅  &lt;strong&gt;&lt;em&gt;PUNTUACIÓN DEL CORE: 0.1 segundos o menos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚥 &lt;strong&gt;FID *(first input delay o retraso de primera entrada):&lt;/strong&gt;*
&lt;/h2&gt;

&lt;p&gt;Mide el tiempo que se demora la pagina en estar lista para comenzar a interactuar con elementos como:  inputs, botones, campos de texto, etc.&lt;/p&gt;

&lt;p&gt;Por ejemplo si el javascript del sitio no ha cargado, ningún botón o acción dentro de la pagina podrá ser utilizada.&lt;/p&gt;

&lt;p&gt;✅  &lt;strong&gt;&lt;em&gt;PUNTUACION DEL CORE: 100 milisegundos o menos.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚪 Métricas complementarias:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚥 TTFB - Time to first Byte
&lt;/h3&gt;

&lt;p&gt;The Time to First Byte (TTFB) identifica cuándo tu servidor envía una respuesta al navegador del usuario. Cuanto más tarde el navegador en obtener los datos, más tardará en mostrar tu página.&lt;/p&gt;

&lt;p&gt;El TTFB es la suma de estas fases de solicitud:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tiempo de redirección.&lt;/li&gt;
&lt;li&gt;Tiempo de arranque del service worker (si lo hay).&lt;/li&gt;
&lt;li&gt;Búsqueda de DNS.&lt;/li&gt;
&lt;li&gt;Negociación de la conexión y del Transport Layer Security (TLS).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Solicitud hasta que llega el primer byte de la respuesta.&lt;/p&gt;

&lt;p&gt;✅  &lt;strong&gt;&lt;em&gt;PUNTUACION DEL CORE: No aplica o no se puede poner un número exacto, ya que depende de variaciones de red.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚥 FCP- First Contentful Paint
&lt;/h3&gt;

&lt;p&gt;Calcula el tiempo que el navegador tarda en pintar el contenido mas grande above the fold,  dentro del modelo de objetos del documento (DOM). Incluye texto, imágenes y lienzos no blancos.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;&lt;em&gt;PUNTUACION DEL CORE: 1,8 segundos o menos.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚥TBT - Total Blocking Time
&lt;/h3&gt;

&lt;p&gt;Total Blocking Time (TBT) es la suma de todo el tiempo en el que una página está bloqueada para responder a la entrada del usuario.&lt;/p&gt;

&lt;p&gt;Google calcula el total sumando la parte de bloqueo de las tareas largas de JavaScript entre el FCP y el TTI. Cualquier tarea ejecutada durante más de 50 milisegundos es una tarea larga. El período posterior a los 50 milisegundos es la parte de bloqueo.&lt;/p&gt;

&lt;p&gt;✅  &lt;strong&gt;&lt;em&gt;PUNTUACION DEL CORE: 200 milisegundos.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚥 TTI - Time to Interacting
&lt;/h3&gt;

&lt;p&gt;Es el tiempo que necesita una página para ser totalmente interactiva. Google considera que una página es interactiva cuando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La página muestra contenido utilizable.&lt;/li&gt;
&lt;li&gt;La página responde a las interacciones del usuario en 50 milisegundos.&lt;/li&gt;
&lt;li&gt;Los propietarios del sitio registran &lt;strong&gt;controladores de eventos&lt;/strong&gt; para los elementos más visibles de la página.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;PUNTUACION DEL CORE: 3,8 segundos o menos.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  💡¿Cómo interpretar el reporte?
&lt;/h1&gt;

&lt;p&gt;La construcción del reporte será levemente distinta según la herramienta que se use, sin embargo es usual encontrarse con:&lt;/p&gt;

&lt;h2&gt;
  
  
  🚑  Diagnóstico detallado para 4 categorías:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wt01AdP8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8kqu7xinn2catx8i6djn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wt01AdP8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8kqu7xinn2catx8i6djn.png" alt="Image description" width="800" height="106"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📉 &lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/?utm_source=lighthouse&amp;amp;utm_medium=lr"&gt;Performance (Rendimiento)&lt;/a&gt;:&lt;/strong&gt; Comprenderá las métricas &lt;strong&gt;Core&lt;/strong&gt; y &lt;strong&gt;complementarias&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;👩🏻‍🦯 &lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/lighthouse/accessibility/?utm_source=lighthouse&amp;amp;utm_medium=lr"&gt;Accessibility (Accesibilidad)&lt;/a&gt;:&lt;/strong&gt; Comprenderá detalles sobre ARIA roles, Controles custom y asociación de labels, focus, controladores interactivos y navegabilidad por teclado, controladores interactivos y estado, orden lógico del TAB, bueno uso de elementos de HTML5 y orden visual consistente con el orden del DOM.&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Best Practices (Buenas practicas)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📰 &lt;strong&gt;[SEO&lt;/strong&gt;:](&lt;a href="https://developers.google.com/search/docs/essentials?visit_id=638107886021732888-3777756873&amp;amp;rd=1"&gt;https://developers.google.com/search/docs/essentials?visit_id=638107886021732888-3777756873&amp;amp;rd=1&lt;/a&gt;) Comprenderá si el contenido es confiable, útil y seguro para el usuario, uso de palabras adecuadas para la búsqueda de los usuarios y uso correcto de ellas dentro del contenido, links rastreables, buenas prácticas sobre contenido como imágenes, videos, datos estructurados y JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚦 Indicadores de 3 colores (tipo semáforo):
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🍎 Rojo:&lt;/strong&gt; Listado de reglas que se deben solucionar y que al hacerlo la puntuación mejorará considerablemente.&lt;/li&gt;
&lt;li&gt;🍋 &lt;strong&gt;Amarillo:&lt;/strong&gt; Listado de reglas que se pueden solucionar fácilmente, pero que no asegura mejorar  la puntuación de forma significativa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🥦 Verde:&lt;/strong&gt; Listados de reglas que ya se cumplen y en las que no es necesario trabajar.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌲 Treemap:
&lt;/h2&gt;

&lt;p&gt;Esta herramienta será útil en caso de que&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se quiera ver detalladamente un paquete y profundizar en el.&lt;/li&gt;
&lt;li&gt;Se quiera visualizar los bytes no utilizados en los archivos JavaScript.&lt;/li&gt;
&lt;li&gt;Se quiera ver estadísticas de cobertura detalladas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🗓️ Datos generales y de ambiente del test:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CuN8kbSR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/skbm7j47flfg7jm5lj1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CuN8kbSR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/skbm7j47flfg7jm5lj1j.png" alt="Image description" width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  💡¿Cómo puedo optimizar mi página?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;En el detalle de cada una de las 4 categorías del diagnóstico (en el reporte) se encontrará un listado de mejoras y sugerencias:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SYfVTUQZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i00e7dlur6d7x1zi2fb2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SYfVTUQZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i00e7dlur6d7x1zi2fb2.png" alt="Image description" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se puede desplegar el acordeón para ver el detalle en donde deben hacerse los cambios:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FqESLPby--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/495t7k7vi08rfci8w9t3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FqESLPby--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/495t7k7vi08rfci8w9t3.png" alt="Image description" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sjSckjzr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jr9yyxmo7ska3fw2eh97.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sjSckjzr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jr9yyxmo7ska3fw2eh97.png" alt="Image description" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  💡¿Cuándo preocuparme?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2FdE0sox--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p8pl9oqum7ebwwj620rf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2FdE0sox--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p8pl9oqum7ebwwj620rf.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🖍️ Debemos preocuparnos cuando los indicadores del diagnóstico está en rojo, es decir, pobres.
&lt;/h3&gt;




&lt;p&gt;Solo para los reportes de pagespeed puedes encontrarte con dos tipos de datos:&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Datos de campo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Los datos de campo presentados en el informe provienen de los &lt;strong&gt;28 días anteriores&lt;/strong&gt; y siempre se presentarán con barras de distribución adjuntas. Esto se debe a que «field data» se compone de datos agregados del informe CrUX y la misma página web nunca funciona de la misma manera para todos los usuarios.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Datos de laboratorio&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Los datos de laboratorio de PageSpeed Insights de Google incluyen &lt;strong&gt;datos sintéticos de la API de Lighthouse&lt;/strong&gt;. &lt;strong&gt;&lt;a href="https://developer.chrome.com/docs/lighthouse/overview/"&gt;Lighthouse&lt;/a&gt;&lt;/strong&gt; mide Core Web Vitals y tres métricas adicionales.&lt;/p&gt;

&lt;h1&gt;
  
  
  🧰 Herramientas:
&lt;/h1&gt;

&lt;h2&gt;
  
  
  🧮 Calculadora Web Vitals:
&lt;/h2&gt;

&lt;p&gt;Esta herramienta ayudará a conocer los valores ideales para los test.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://googlechrome.github.io/lighthouse/scorecalc/#FCP=1000&amp;amp;TTI=2390&amp;amp;SI=1238&amp;amp;TBT=413&amp;amp;LCP=1382&amp;amp;CLS=0&amp;amp;FMP=1000&amp;amp;device=desktop&amp;amp;version=9.6.8"&gt;Lighthouse Scoring calculator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--096bxiqu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3zapc46jahutaqvyp8kh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--096bxiqu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3zapc46jahutaqvyp8kh.png" alt="Image description" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏎️ Pagespeed:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://pagespeed.web.dev/"&gt;PageSpeed Insights&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8gq1XsoC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rr4b1uzt5xic1fxclg49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8gq1XsoC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rr4b1uzt5xic1fxclg49.png" alt="Image description" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  👩🏼‍💻 Google Search Console:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://search.google.com/search-console/core-web-vitals/summary?resource_id=https%3A%2F%2Fwww.lahaus.com%2F&amp;amp;device=2"&gt;Google Search Console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zng3Qk_n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sk9xjo462hjxu4k02a6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zng3Qk_n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sk9xjo462hjxu4k02a6l.png" alt="Image description" width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  🛖 &lt;strong&gt;Lighthouse:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Esta disponible en las web tools del navegador.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sXILqhC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0c7tqqb0t5j4s62zmsb6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sXILqhC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0c7tqqb0t5j4s62zmsb6.png" alt="Image description" width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Otros recursos:
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Aprende sobre &lt;a href="https://www.w3.org/WAI/standards-guidelines/aria/"&gt;WAI Aria&lt;/a&gt; y aumenta la calidad contextual del contenido y la accesibilidad para la navegación por teclado&lt;br&gt;
&lt;a href="https://www.w3.org/WAI/standards-guidelines/aria/"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  🔮 WIKI&lt;br&gt;
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Termino&lt;/th&gt;
&lt;th&gt;Definición&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SEO Onsite o SEO On page&lt;/td&gt;
&lt;td&gt;El SEO On Page es aquello cuyas optimizaciones están hechas en la misma dirección de la página web, incluyendo el contenido y la estructura de las páginas. Más allá del contenido generado, tienes que estar bien ubicado en las búsquedas de Google para enfrentar a tu competencia.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEO Off page&lt;/td&gt;
&lt;td&gt;SEO off page es el conjunto de estrategias de optimización que aplicas fuera de tus páginas web. La intención es mostrar cómo otras páginas de Internet ven tu sitio web que, de preferencia, debe ser como una ¡referencia en el mercado!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Above the fold&lt;/td&gt;
&lt;td&gt;La expresión “above the fold” define la parte que los usuarios ven primero sin necesidad de desplazarse con el Scroll.💡 Es fundamental evitar la publicidad en esta zona, ya que Google considera que los banners pueden tener un efecto negativo en la usabilidad y la experiencia. Diseños amigables y sencillos. ⏳ En enero de 2012, Google sacó otra actualización de sus algoritmos en la que los sitios web que contenían demasiados banners (“Top Heavy”) en la zona “above the fold” recibieron penalizaciones y bajaron de posicionamiento. ⏳ En octubre de 2012 hubo otra actualización (“Top Heavy 2”). Desde entonces, Google recomienda no posicionar contenido único en la zona inferior de la página ("below the fold"), ya que podría empeorar la experiencia del usuario en el sitio web. Por otra parte, se desaconseja totalmente integrar demasiados anuncios a través de Google AdSense en la zona visible de la página.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Below the fold&lt;/td&gt;
&lt;td&gt;Si se desplazan hacia abajo haciendo scroll, esta parte del sitio web se denomina “below the fold”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crowler&lt;/td&gt;
&lt;td&gt;El crawler o araña en SEO es un software o webbot capaz de rastrear todas las páginas web para leerlas, analizarlas y entenderlas con el objetivo de llevar toda la información a un servidor. Es en este servidor donde se le determinará una posición dentro de los resultados de búsqueda o SERP.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  💾 Recursos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/search/blog/2020/05/evaluating-page-experience"&gt;https://developers.google.com/search/blog/2020/05/evaluating-page-experience&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rockcontent.com/es/blog/core-web-vitals/"&gt;https://rockcontent.com/es/blog/core-web-vitals/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://es.ryte.com/wiki/Above_the_Fold"&gt;https://es.ryte.com/wiki/Above_the_Fold&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.inboundcycle.com/blog-de-inbound-marketing/core-web-vitals-de-google-que-son-como-mejorarlas"&gt;https://www.inboundcycle.com/blog-de-inbound-marketing/core-web-vitals-de-google-que-son-como-mejorarlas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hostinger.co/tutoriales/core-web-vitals"&gt;https://www.hostinger.co/tutoriales/core-web-vitals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://es.semrush.com/blog/google-page-speed-test/?kw=&amp;amp;cmp=LM_SRCH_DSA_Blog_ES&amp;amp;label=dsa_pagefeed&amp;amp;Network=g&amp;amp;Device=c&amp;amp;utm_content=641222122276&amp;amp;kwid=dsa-1928812727693&amp;amp;cmpid=19249322807&amp;amp;agpid=145221543020&amp;amp;BU=Core&amp;amp;extid=64565394397&amp;amp;adpos=&amp;amp;gclid=CjwKCAiAleOeBhBdEiwAfgmXf8USRRS69AiQNlr5PrL8AsIorfi6Unur3TpdS7Ma6-CcfkV_-U5hMRoC64sQAvD_BwE"&gt;https://es.semrush.com/blog/google-page-speed-test/?kw=&amp;amp;cmp=LM_SRCH_DSA_Blog_ES&amp;amp;label=dsa_pagefeed&amp;amp;Network=g&amp;amp;Device=c&amp;amp;utm_content=641222122276&amp;amp;kwid=dsa-1928812727693&amp;amp;cmpid=19249322807&amp;amp;agpid=145221543020&amp;amp;BU=Core&amp;amp;extid=64565394397&amp;amp;adpos=&amp;amp;gclid=CjwKCAiAleOeBhBdEiwAfgmXf8USRRS69AiQNlr5PrL8AsIorfi6Unur3TpdS7Ma6-CcfkV_-U5hMRoC64sQAvD_BwE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.seofreelance.es/wai-aria-seo-accesible/"&gt;https://www.seofreelance.es/wai-aria-seo-accesible/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://samuelschmitt.com/optimize-website/improve-core-web-vitals/"&gt;https://samuelschmitt.com/optimize-website/improve-core-web-vitals/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Tendencias de diseño UX-UI 2024</title>
      <dc:creator>Lu </dc:creator>
      <pubDate>Wed, 03 Jan 2024 03:44:20 +0000</pubDate>
      <link>https://forem.com/ux_by_lu/tendencias-de-diseno-ux-ui-2024-43n5</link>
      <guid>https://forem.com/ux_by_lu/tendencias-de-diseno-ux-ui-2024-43n5</guid>
      <description>&lt;h2&gt;
  
  
  Neumorphism
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Es una tendencia de diseño de interfaz de usuario (UI) que ha ganado popularidad en el campo del diseño de experiencia de usuario (UX). Se caracteriza por la creación de interfaces visuales que imitan la apariencia de objetos físicos mediante el uso de sombras suaves y colores similares al fondo. A diferencia de tendencias anteriores, como el skeuomorfismo y el minimalismo, el neumorfismo busca un equilibrio al proporcionar elementos visuales que parecen integrarse naturalmente en el entorno digital, al tiempo que conservan una estética limpia y moderna.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Caractéristicas:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se distingue por la &lt;em&gt;aplicación sutil de sombras para simular la profundidad&lt;/em&gt; y resaltar los elementos de la interfaz. &lt;strong&gt;&lt;em&gt;Este enfoque da la impresión de que los elementos flotan sobre la superficie, creando una apariencia tridimensional y táctil&lt;/em&gt;&lt;/strong&gt;. Los bordes de los elementos adoptan tonos de color similares al fondo, contribuyendo a la sensación de continuidad y suavidad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ventajas y&lt;/strong&gt; &lt;strong&gt;Desventajas:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aunque el neumorfismo busca proporcionar una experiencia visual atractiva y realista, también presenta desafíos en términos de accesibilidad y legibilidad. Dado que la técnica se basa en sutilezas visuales, es esencial equilibrar la estética con la funcionalidad y garantizar que la interfaz sea fácilmente comprensible para todos los usuarios. En general, el neumorfismo representa un enfoque innovador en el diseño de UX al fusionar la estética táctil con la elegancia digital.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bento:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Es un término que indique un enfoque integrado y organizado para el diseño de experiencia de usuario (UX) y diseño de interfaz de usuario (UI), similar a cómo los elementos están organizados en una caja bento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Organización Eficiente:&lt;/strong&gt; Puede conducir a una interfaz ordenada y fácil de entender para los usuarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibilidad:&lt;/strong&gt; La modularidad permite cambios y actualizaciones más sencillas en el diseño.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Desventajas:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Limitaciones Creativas:&lt;/strong&gt; La rigidez de la organización modular podría limitar la creatividad en ciertos contextos de diseño.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complejidad:&lt;/strong&gt; Dependiendo de la implementación, podría resultar en una interfaz visualmente compleja si no se gestiona adecuadamente.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Inspirate:&lt;/strong&gt; &lt;a href="https://bentogrids.com/"&gt;https://bentogrids.com/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Diseño sin interfaz - Zero UI
&lt;/h2&gt;

&lt;p&gt;💡 El diseño sin interfaz representa un cambio significativo en la forma en que interactuamos con la tecnología y presenta desafíos interesantes para los diseñadores de UX en términos de creatividad, innovación y consideraciones éticas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El diseño sin interfaz &lt;strong&gt;(Zero UI)&lt;/strong&gt; es un &lt;strong&gt;enfoque de diseño de experiencia de usuario (UX)&lt;/strong&gt; que busca minimizar o eliminar la dependencia de interfaces visuales tradicionales, como pantallas y botones, centrándose en formas más naturales e intuitivas de interacción. La idea es crear experiencias en las que los usuarios puedan interactuar con la tecnología de manera fluida y natural sin la necesidad de una interfaz visual evidente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Interacción Natural:&lt;/strong&gt; Se centra en la creación de interacciones que imitan la comunicación humana cotidiana, como comandos de voz, gestos, movimientos corporales, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensores y Tecnología Vestible:&lt;/strong&gt; Utiliza sensores avanzados y dispositivos vestibles para capturar datos y permitir interacciones contextuales y sin esfuerzo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integración de Inteligencia Artificial (IA):&lt;/strong&gt; Incorpora IA para comprender y anticipar las necesidades del usuario, personalizando la experiencia de acuerdo con el contexto y el comportamiento previo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mínima o Ninguna Pantalla:&lt;/strong&gt; Busca reducir o eliminar la necesidad de pantallas visuales, fomentando la interacción a través de otros sentidos como el oído o el tacto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contextualidad:&lt;/strong&gt; Utiliza datos contextuales para adaptarse a las necesidades del usuario en tiempo real, ofreciendo respuestas y acciones relevantes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Desafíos:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Retroalimentación del Usuario:&lt;/strong&gt; Al carecer de una interfaz visual, proporcionar retroalimentación efectiva al usuario puede ser un desafío. La retroalimentación auditiva y táctil se vuelve crucial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complejidad de Implementación:&lt;/strong&gt; La integración de tecnologías como IA, sensores avanzados y dispositivos vestibles puede ser compleja y costosa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacidad y Seguridad:&lt;/strong&gt; La recopilación de datos contextuales para mejorar la experiencia puede plantear preocupaciones sobre la privacidad y la seguridad de la información del usuario.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adopción del Usuario:&lt;/strong&gt; Los usuarios pueden requerir tiempo para adaptarse a un enfoque sin interfaz visual, ya que va en contra de las convenciones tradicionales de interacción.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limitaciones Tecnológicas:&lt;/strong&gt; La tecnología actual puede tener limitaciones en la interpretación y respuesta a las señales no visuales, lo que puede afectar la precisión y eficacia de la interacción sin interfaz.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Voice user interface VUI
&lt;/h2&gt;

&lt;p&gt;💡 A pesar de estos desafíos, los VUI han ganado popularidad y se utilizan en una variedad de aplicaciones, como asistentes virtuales, dispositivos inteligentes para el hogar, sistemas de navegación y más, mejorando la accesibilidad y proporcionando nuevas formas de interactuar con la tecnología.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es?&lt;/strong&gt;&lt;br&gt;
Una Interfaz de Usuario por Voz (Voice User Interface o VUI) es un sistema que permite a los usuarios interactuar con dispositivos o aplicaciones utilizando comandos y respuestas de voz. En lugar de depender de la entrada táctil o visual, los usuarios pueden comunicarse con la tecnología a través de la voz, convirtiendo su habla en acciones realizables por el sistema.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Reconocimiento de Voz:&lt;/strong&gt; La característica central es la capacidad para interpretar y entender el habla del usuario, convirtiéndola en comandos o consultas comprensibles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Síntesis de Voz:&lt;/strong&gt; Proporciona respuestas auditivas, convirtiendo la información en voz para que los usuarios puedan entender las respuestas del sistema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comandos Naturales:&lt;/strong&gt; Los VUI están diseñados para comprender comandos y preguntas en lenguaje natural, permitiendo a los usuarios interactuar de manera más intuitiva.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalización:&lt;/strong&gt; Puede adaptarse a las preferencias y patrones de habla individuales de los usuarios, ofreciendo una experiencia más personalizada con el tiempo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Respuestas Contextuales:&lt;/strong&gt; Puede tener la capacidad de recordar y comprender el contexto de la conversación, brindando respuestas más relevantes y útiles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integración con Tecnologías Emergentes:&lt;/strong&gt; Puede integrarse con tecnologías como inteligencia artificial (IA), procesamiento de lenguaje natural (NLP) y aprendizaje automático para mejorar la precisión y la eficacia.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Desafíos:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Precisión del Reconocimiento:&lt;/strong&gt; La precisión del reconocimiento de voz puede ser un desafío, especialmente en situaciones ruidosas o cuando se enfrenta a diversos acentos y entonaciones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacidad:&lt;/strong&gt; La utilización de VUI implica la grabación y el procesamiento de la voz del usuario, lo que plantea preocupaciones sobre la privacidad y la seguridad de los datos de voz.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limitaciones de Contexto:&lt;/strong&gt; Algunas situaciones pueden requerir un contexto más amplio para comprender completamente las intenciones del usuario, lo que puede ser un desafío para algunos sistemas VUI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aprendizaje de la Máquina:&lt;/strong&gt; La mejora continua del rendimiento del VUI a través del aprendizaje de la máquina puede llevar tiempo y requerir grandes cantidades de datos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interpretación de Comandos Complejos:&lt;/strong&gt; La interpretación de comandos complejos o de múltiples partes puede ser difícil para algunos sistemas VUI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experiencia del Usuario:&lt;/strong&gt; Lograr una experiencia de usuario fluida y natural que rivalice con la interacción táctil o visual puede ser un desafío.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  GlassMorphic
&lt;/h2&gt;

&lt;p&gt;💡 Como con cualquier tendencia de diseño, es importante evaluar cuidadosamente la idoneidad de glassmorphism para un proyecto específico y considerar las necesidades y expectativas de los usuarios. El éxito de esta técnica dependerá de su aplicación cuidadosa y equilibrada en el contexto de diseño apropiado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Glassmorphism es un estilo de diseño de interfaz de usuario (UI) que se ha vuelto popular y que se caracteriza por imitar la apariencia del vidrio translúcido en las interfaces digitales. Este enfoque busca crear una apariencia similar al cristal, con efectos de fondo translúcido y bordes y sombras suaves que dan la sensación de profundidad y capas en la interfaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Características:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fondo Translúcido:&lt;/strong&gt; Utiliza fondos translúcidos, a menudo con un efecto de desenfoque, para simular el vidrio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bordes y Sombras Suaves:&lt;/strong&gt; Presenta bordes y sombras suaves y difuminadas para lograr una apariencia más realista.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efecto de Profundidad:&lt;/strong&gt; Busca crear la sensación de capas superpuestas, lo que da a la interfaz un aspecto tridimensional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimalismo:&lt;/strong&gt; A pesar de su apariencia rica en detalles, el glassmorphism a menudo se asocia con un diseño limpio y minimalista.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uso de Colores Suaves:&lt;/strong&gt; Se caracteriza por el uso de colores suaves y tonos pastel para complementar la apariencia del vidrio.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Ventajas:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Estética Moderna:&lt;/strong&gt; Glassmorphism proporciona una estética moderna y atractiva que puede hacer que la interfaz se destaque.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensación de Profundidad:&lt;/strong&gt; La aplicación de sombras y efectos de desenfoque contribuyen a una sensación de profundidad, lo que puede mejorar la experiencia de usuario.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptabilidad:&lt;/strong&gt; Puede adaptarse a diversos temas y contextos, desde aplicaciones móviles hasta sitios web y aplicaciones de escritorio.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Desventajas:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Posible Complejidad Visual:&lt;/strong&gt; El uso excesivo o inapropiado de elementos glassmorphic puede resultar en una interfaz visualmente compleja y distraer la atención del contenido esencial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Posible Impacto en el Rendimiento:&lt;/strong&gt; La aplicación de efectos de desenfoque y sombras puede tener un impacto en el rendimiento, especialmente en dispositivos con recursos limitados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accesibilidad:&lt;/strong&gt; La translucidez de los fondos puede afectar la legibilidad y la accesibilidad, especialmente para usuarios con problemas de visión.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Posible Falta de Originalidad:&lt;/strong&gt; Debido a su popularidad, el uso excesivo de glassmorphism puede hacer que las interfaces parezcan similares y carezcan de originalidad.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>uxdesign</category>
      <category>news</category>
      <category>ux</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Algunos poderes de Javascript</title>
      <dc:creator>Lu </dc:creator>
      <pubDate>Mon, 18 May 2020 21:01:35 +0000</pubDate>
      <link>https://forem.com/ux_by_lu/algunos-poderes-de-javascript-50eg</link>
      <guid>https://forem.com/ux_by_lu/algunos-poderes-de-javascript-50eg</guid>
      <description>&lt;h1&gt;
  
  
  Next Generation of Javascript
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Let y const
&lt;/h3&gt;

&lt;p&gt;Cuando declaramos una variable bajo la palabra reservada &lt;code&gt;var&lt;/code&gt; javascript entiende que: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la variable podrá ser reasignada o inicializada durante cualquier momento es decir que podemos sobre ecribirla
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍉&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;reasignName&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nf"&gt;reasignName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;//&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍓&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;el escope de esta pertenece a su contexto de ejecución &lt;/li&gt;
&lt;li&gt;que una variable declarada fuera de un bloque como una función pertenece al alcance global.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍉&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;reasignName&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;🍑&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;🍌&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;🍇&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;🥝&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;🥥&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍓&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 🍓&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// undefined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h6&gt;
  
  
  Nota: las variables no declaradas siempre perteneceran al contexto global y a diferencia de las variables declaradas estas podrán ser eliminadas. Antipatron
&lt;/h6&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐯&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;pig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐷&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;lion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;})()&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lion&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐯 🐷 🦁&lt;/span&gt;

    &lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="nx"&gt;cat&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//false&lt;/span&gt;
    &lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="nx"&gt;pig&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//true&lt;/span&gt;
    &lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="nx"&gt;lion&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//true&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lion&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐯 undefined undefined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let introdujo un nuevo paradigma llamado &lt;em&gt;"block scope"&lt;/em&gt; esto hace referencia a que los if, switch conditions, while loops, foor loops, o cualquier cosa que veamos con &lt;em&gt;{}&lt;/em&gt; es un bloque. Y con let y const podremos declarar variables en el block scope, lo que significa que estás variables existen sólo en el bloque correspondiente.&lt;/p&gt;

&lt;p&gt;Diferencias entre &lt;em&gt;var&lt;/em&gt; y &lt;em&gt;let&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;las variables let podrán ser reasignadas más no re-inicializadas o sobre-escritas:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍉&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;printMyFruit&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍓&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="nf"&gt;printMyFruit&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "🥝"&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// "🍓"&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fruit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// Uncaught SyntaxError: Identifier 'fruit' has already been declared.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;las variables let y const sólo existiran dentro del bloque de scope:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;fruitsShow&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
            &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fruit1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍏&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c1"&gt;//exist in function scope&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fruit2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🍌&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c1"&gt;//exist in block scope&lt;/span&gt;
            &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;fruit3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🥝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c1"&gt;//exist in block scope&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fruit3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;fruitsShow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="c1"&gt;// 🍏&lt;/span&gt;
    &lt;span class="c1"&gt;// error: fruit2 is not defined&lt;/span&gt;
    &lt;span class="c1"&gt;// error: fruit3 is not defined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;y const?, comparte las mismas caracteristicas que let pero a diferencia de esta, no podrá ser reasignada, será por consiguiente una variable de sólo lectura&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐱&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐈&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//Uncaught TypeError: Assignment to constant variable.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Arrow Functions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Las funciones flecha tienen una sintaxis diferente:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;myFunc&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="p"&gt;....&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;myFunc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="p"&gt;....&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt; Resuelve cierto tipo de issues que se tenian con la palabra &lt;em&gt;this&lt;/em&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;dino&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦖&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;arrow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;anonym&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;arrow&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;//undefined&lt;/span&gt;
    &lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;anonym&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;//🦖&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;las arrow function capturan el valor del scope externo más cercano, para este ejemplo el escope mas cercano es el window por lo tanto la variable &lt;code&gt;dino&lt;/code&gt; no existe.&lt;/li&gt;
&lt;li&gt;las arrow function no tienen su propio &lt;code&gt;this&lt;/code&gt;, &lt;code&gt;arguments&lt;/code&gt;, &lt;code&gt;super&lt;/code&gt; o &lt;code&gt;new.target&lt;/code&gt; lo que quiere decir que este tipo de funciones no podrán ser usadas como constructores.&lt;/li&gt;
&lt;li&gt;las funciones tradicionales definen su propio valor de this.&lt;/li&gt;
&lt;li&gt;las arrow function no tienen sus propio &lt;code&gt;this&lt;/code&gt; utiliza el valor del contexto de ejecución que la contiene.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Class
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Es una sintaxis de azucar para lo que conociamos como prototype.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="p"&gt;...&lt;/span&gt;    
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="p"&gt;...&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Al igual que las funciones constructoras dentro de nuestras clases tendremos un contructor.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
            &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Podremos hacer todo con clases excepto modificar un prototypo ya existente o nativo. 🐒&lt;/li&gt;
&lt;li&gt;Es el sistema de herencia de javascript esto significa que nuestras clases podrán tener metodos, nuestras clases podrán ser instanciadas y tambien podrán ser extendidas.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
            &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="c1"&gt;//method&lt;/span&gt;
        &lt;span class="nf"&gt;printName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="c1"&gt;//instance&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;me&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Lu&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;me&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;printName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// "Lu"&lt;/span&gt;

    &lt;span class="c1"&gt;//extends&lt;/span&gt;
    &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Developer&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lenguage&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
            &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lenguage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lenguage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="c1"&gt;//method&lt;/span&gt;
        &lt;span class="nf"&gt;imAdeveloper&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Hi I'm &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; and I'm &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lenguage&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; developer`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="c1"&gt;//instance&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;meDev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Developer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Lu&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;meDev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imAdeveloper&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Los methodos son funciones atachadas a las classes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Spread &amp;amp; Rest Operators &lt;em&gt;{...}&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Es una forma de recibir multiples argumentos en llamadas a funciones o multiples elementos en un array literal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spread en funciones
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;spread&lt;/span&gt;&lt;span class="p"&gt;(...&lt;/span&gt;&lt;span class="nx"&gt;myArguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;myArguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;spread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐷&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐼&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐸&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐨&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ["🦊","🐰","🐷","🐼","🐸","🐥","🐨","🦁","🐰"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Spread en array literales
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;insects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐛&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐞&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐷&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,...&lt;/span&gt;&lt;span class="nx"&gt;insects&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐼&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐸&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐨&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//["🦊", "🐰", "🐷", "🐛", "🐝", "🐞", "🐼", "🐸", "🐥", "🐨", "🦁", "🐰"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Spread en objetos
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;insects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;insects&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐛&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐞&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]};&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;insects&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐷&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐼&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐸&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐨&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//{insects: Array(3), animals: Array(9)}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Destructuring
&lt;/h2&gt;

&lt;p&gt;Este es un metodo simplificado de javascript para extraer multiples propiedades de un arreglo o un objeto, es llamado desconstrucción y usa una sintaxis similar al a de los arrys literales o objetos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;destructuring con Arreglos
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐷&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐼&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐸&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐨&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;animal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;animal3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🦊&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐰&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐷&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;destructuring con Arreglos y valores por defecto;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;animal2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;animal3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🦊&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐰&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐥&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;destructuring con Arreglos e ignorar elementos;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;animal3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🦊&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animal3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//🐥&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;destructuring con Objetos
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;jungle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐷&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐼&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐸&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐥&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐨&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🦁&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐰&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="na"&gt;insects&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐛&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐝&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;🐞&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;animals&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jungle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;animals&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//["🦊","🐰","🐷","🐼","🐸","🐥","🐨","🦁","🐰"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Referencia.
&lt;/h2&gt;

&lt;p&gt;Cuando pasamos un argumento a un funcion o asignamos un valor primitivo (null, boolean, undefined, number, string, symbol) a una variable, este proceso siempre lo hará &lt;em&gt;"por valor"&lt;/em&gt;, es decir que este tipo de elemento será copiado. Cuando nos referimos aun valor no primitivo (Object, Array, Function) javascript hace una copia de la referencia, esto quiere decir que tenemos un puntero por el cual podemos acceder al valor original&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tree&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;apple tree 🍎&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;otherTree&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;orange tree 🍊&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;otherTree&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//"orange tree 🍊"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;referencias circulares, son aquellas en las que un objecto contiene una referencia así mismo.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//[1,2,3,[1,2,3]]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
  </channel>
</rss>
