Igual que cualquier otro lenguaje de programación, Javascript tiene una lista de mejores prácticas para hacer que los programas sean más fáciles de leer y mantener. En Javascript hay partes difíciles, por lo que hay muchas cosas que debemos evitar para seguir algunas de las mejores prácticas que hagan que nuestro código sea fácil de leer.

Aquí te compartimos cosas que deben evitarse, basándonos en el artículo de John Au-Yeung, donde incluimos la declaración de variables globales, pasar cadenas a setInterval y setTimeout, la declaración with y más.

Empleos de Javascript.

Prácticas a evitar en Javascript

Evita declarar variables globales

Debemos evitar el uso de variables globales por varias razones. La primera, es que son fáciles de sobrescribir en diferentes lugares, ya que están en todas partes. También pueden sobrescribir cosas en el objeto window, ya que las variables globales son propiedades del objeto window. Estos son problemas reales que hacen que nuestro código sea difícil de seguir. Por lo tanto, debemos definir las variables locales tanto como sea posible.

Podemos definir variables locales mediante el uso de las palabras clave var, let o cons. Las variables definidas con var están disponibles en el nivel donde se define y debajo, antes de definirse. Por ejemplo:

Prácticas a evitar en Javascript

Luego obtenemos undefined para el primer console.log y 1 para el segundo log. Es lo mismo que escribir:

Prácticas a evitar en Javascript

Las variables declaradas con let están disponibles sólo después de ser definidas, por lo que si ponemos:

Prácticas a evitar en Javascript

Obtenemos el error:

Con la palabra clave cons, definimos constantes que sólo pueden asignarse una vez y nunca más. También está disponible sólo después de que se declara a diferencia de var. Por ejemplo, podemos escribir: 

Si usamos log antes de cons x = 1, también nos dará: Uncaught ReferenceError: Cannot access ‘x’ before initialization.

Si queremos variables que estén disponibles en diferentes partes de un programa, debemos usar módulos de Javascript y luego construir los módulos en uno o varios archivos grandes cuando publiquemos nuestro código.

Podemos exportar nuestras variables e importarlas en otros módulos. También hay un export default para exportar todo el módulo. De esta manera, solo exportamos cosas que deben estar disponibles fuera del módulo y mantener lo demás privado.

También podemos usar closures para mantener variables dentro de una función para que no se pueda acceder a ellas desde afuera. Un ejemplo de un closure simple sería:

Mantenemos x dentro de la función divide, para que no se pueda acceder a ella desde afuera y devolvamos una función que haga algo con ella. Luego lo llamamos escribiendo:


Nunca pases una cadena a setInterval o setTimeout

Nunca debemos pasar cadenas al primer argumento de las funciones setInterval o en setTimeout, en lugar de una función de callback.

Si pasamos una cadena en lugar de una función de callback, el navegador usará eval para ejecutar el código dentro de la cadena, lo que es lento y vulnerable a los ataques de inyección de código. Por lo tanto, no hay ninguna razón a menos que realmente necesitemos ejecutar el código que se genera sobre la marcha, lo que debería ser muy raro. En lugar de escribir:

Deberíamos escribir:

No uses la declaración “with”

La declaración with puede parecer un buen atajo para acceder a propiedades profundamente anidadas de los objetos. Por ejemplo, podemos escribir:

En lugar de:

Sin embargo, contamina el alcance global y crea ambigüedad de si baz es accesible fuera de la declaración with. Esto se debe a que también podemos declarar nuevas variables dentro de la declaración with:

Declaramos baz dentro de with, pero no es accesible afuera.

Afortunadamente, no está permitido usarlo en modo estricto de Javascript, por lo que no tenemos que preocuparnos por usar la declaración with ahora.

Palabra clave var

Con ES6, tenemos las palabras clave let y cons para declarar variables y constantes con alcance de bloque, respectivamente. Podemos usarlos para declarar variables que ya tienen un alcance claro.

Las variables declaradas con var tienen un alcance confuso. Está disponible fuera de los bloques cuando se declara en un bloque como un bloque if o un bucle. Algo como:

Funciona con var, pero obtendremos un error si reemplazamos var con let. Debido a que el alcance es confuso, deberíamos dejar de usar var para declarar variables.

Cuando escribimos en Javascript, queremos evitar muchas estructuras antiguas que existían en las primeras versiones de Javascript. Que hacen que nuestro código sea difícil de leer y fácil de crear bugs con él. Es por eso que es importante evitar estas prácticas, de manera que podamos facilitar la lectura de nuestro código.

Encuentra trabajo de tecnología en EmpleosTI

Etiquetado en: