# 3 Malas prácticas en JavaScript que debes evitar

Hablamos todo el tiempo de las buenas prácticas y estilos de código, pero pocas veces hablamos de las malas prácticas en las que inconscientemente caemos muy seguido.

Por ello, quiero compartirte 3 malas prácticas en JavaScript que podría ser que no te estás dando cuenta que tienes.

## #1 No expongas información sensible

A veces colocamos publicKeys u otras variables que deberían ir en una de entorno, en el scope global de nuestro archivo, de nuevo, por pereza o por seguir trabajando, pero a veces se nos van a producción. Esto es muy peligroso y delicado, más aún si estás trabajando para un cliente, ya que esto puede resultar en robo de información grave. Tomate el tiempo de siempre colocar las variables de entorno, **no utilices datos sensibles en variables globales, ni por comodidad.** Esto te va a separar de los principiantes y te coloca como todo un profesional. Siempre usa tu archivo `.env` y nunca lo subas a Github.

## #2 Evitar a toda costa el uso de "var"

Sabemos que `const` y `let` resuelven problemas de "scope" además de agregarnos seguridad en la definición de nuestras constantes y hasta nos dan la seguridad de no sobreescribir variables efímeras como las que declaramos para un `for`. En tu código seguro que usas estas variables que se agregaron en ECMAScript2015, pero no está de más checar que no andes usando `var` por ahí por accidente, pereza o a veces hasta de algún código que copiaste de StackOverflow, luego se nos pasa. 😛

## #3 Define condicionales de forma correcta.

Recién he leído mucho código con este tipo de validaciones:

```jsx
if(userId != undefined && userId != null && userId != ''){
	// some cool code
}
```

Esto no es necesario, crea confusión, es difícil de leer y hasta puede fallar. 🫠 Esto refleja tu falta de experiencia con las condicionales. Qué se resuelve a falso y qué no. La negación es la forma más simple de resolver esto.

```jsx
if(!userId){
	//some cool code
}
```

A veces también cometemos este error con las llaves de un objeto:

```jsx
// esto rompería el código si title o courses[0] no existieran
if(user.courses[0].title){
	// some cool code
}

// a veces se hace el chequeo llave por llave
if(user.courses && user.courses[0] && user.courses[0].title){
	// some cool code
}

// Pero es mucho mejor usar el "conditional chaining":
const title = user.courses?.[0]?.title || 'Sin titulo'
```

¿Conocías esta sintaxis?, siempre es bueno mantenerse actualizado ;)

Listo, no olvides revisar nuestros nuevos [micro-cursos](https://fixtergeek.com/courses), seguro alguno te sirve.

Abrazo. Bliss.
