Javascript. Pequeñas recetas para mejorar (II)
Recopilatorio de consejos y recetas para incrementar tus habilidades desarrollando con Javascript
English version: https://medium.com/@ger86/javascript-small-recipes-to-improve-ii-38227bb9dcf2
Continuando con la recopilación de las recetas sobre Javascript que publico periódicamente en Linkedin los miércoles, aquí os dejo las que he subido estos dos últimos meses. Así, si os perdisteis alguna o simplemente queréis seguir refrescando vuestros conocimientos podéis tenerlas a mano.
A mí la verdad es que escribirlas me sirve tanto para reforzar algunas partes de uno de mis lenguajes favoritos y estar al tanto de las principales novedades que van apareciendo.
Así que, como siempre, ¡vamos a ello!
Clonar objetos
Una receta donde resumo las 3 principales formas que tenemos de clonar un objeto en Javascript.
¡Cuidado con el uso del “spread operator”, pues como veis produce lo que se conoce como un “shallow clone”, es decir, copia los objetos del objeto a clonar por referencia¡

ES2020
¡Cómo pasa el tiempo! Ya nos encontramos en 2020 y con él, una nueva especificación ECMA para Javascript con algunas novedades muy muy interesantes que poco a poco también comienzan a llegar a los navegadores.
En esta receta os resumo las principales características de ECMAScript 2020 para que no os perdáis ninguna:

Nullish coalescing operator
Como habéis visto en el resumen de las principales novedades de ES2020, una de ellas es la aparición del “nullish coalescing operator”, que nos permite de una forma rápida comprobar si una variable es null, y, en ese caso, establecer un valor por defecto.
En la receta tenéis algunos ejemplos con el valor obtenido al usarlo:

El objeto Proxy en Javascript
Seguramente un gran desconocido. El objeto Proxy de Javascript nos permite definir comportamientos personalizados para operaciones elementales de objetos o funciones.
En el ejemplo de la receta podéis ver cómo se puede usar para controlar los datos que son introducidos en un array. Útil, ¿verdad?

Básicamente, controlando la función get
podemos crear una nueva función push
que compruebe el tipo del valor que se va a añadir de modo que, al hacer proxyForFoo.push(4)
obtengamos dicha función y se realice la comprobación.
Funciones puras
Ahora que la programación funcional está viviendo una segunda juventud no está de más repasar lo que es una función pura y qué elementos ocasionan que pierda ese adjetivo.
Recordad que el beneficio de trabajar siempre que sea posible con funciones puras es que tendremos siempre la seguridad de obtener el mismo resultado en cada invocación sin factores externos que lo alteren o sin provocar efectos en cadena dentro de nuestra aplicación.

Spread operator
Una de las características más usadas de ES6 y la que más ha contribuido (en mi opinión) a hacer el código más legible.
Sus usos son múltiples, desde clonar objetos hasta añadir nuevos elementos a objetos y arrays. Muy muy útil, tanto él como su hermano gemelo el “rest” operator.

This
La variable this
en Javascript probablemente sea de los mayores quebraderos de cabeza a los que nos podemos enfrentar trabajando con este lenguaje, especialmente si estamos aprendiendo todavía.
Por eso preparé este resumen de los valores que adopta dentro de un objeto en función de cómo invoquemos a los métodos. Sé que no están todos los casos pero creo que es una buena aproximación para ir cogiendo soltura a la hora de identificar qué valor tendrá esta famosa variable.

Variable hoisting
La típica pregunta de una entrevista que nunca está de más saber y que nos permite emplear variables en Javascript que aparecen posteriormente en el código. Que no os pillen en la siguiente entrevista!

Conclusiones
Como veis, Javascript posee multitud de trucos sintácticos para hacernos mucho más agradable la experiencia de desarrollar en este lenguaje. Por eso siempre respondo a quien me pregunta acerca de qué librería o framework aprender:
¿Sabes bien Javascript?
Creo que conocer el lenguaje es fundamental antes de pasar a trabajar sobre una capa por encima, de ahí que prepare estas mini recetas cada miércoles para reforzar mis conocimientos.
Recordad que si además queréis profundizar tenéis el fantástico libro online y gratuito You don’t know Javascript:
Más artículos de la serie
¿Quieres recibir más artículos como este?
Si te ha gustado este artículo te animo a que te suscribas a la newsletter que envío cada domingo con publicaciones similares a esta y más contenido recomendado: 👇👇👇