Buenas prácticas en JS (II) Trabajando limpiamente

Seguimos con las buenas prácticas en JS, con la finalidad de trabajar de forma limpia y que nuestros códigos sean dignos del Siglo de Oro

Evitar usar variables globales y utilizar locales

Se debe de minimizar el uso de variables globales incluyendo todos los tipos de datos, objetos y funciones, ya que pueden ser sobrescritos por otros scripts.

En su lugar debemos de utilizar variables locales para las cuales utilizaremos la palabra clave var y siempre en la parte superior del script o función, de esta forma se cumplen varias condiciones:

  • El código es más limpio
  • Sabremos donde ir a mirar para buscar las variables
  • Evitamos que otros scripts pisen nuestras variables
  • Se evita la probabilidad de redeclaraciones no deseadas (cosa que suele ocurrir muy a menudo aunque no se crea.)

Nunca declarar números, cadenas o booleanos como objetos

Siempre que tratemos con números, cadenas  o booleanos deben de considerarse valores primitivos, nunca como objetos.

Si se declaran como objetos se ralentiza la velocidad de ejecución y puede producir efectos secundarios inesperados.

No utilizar new Object()

En su lugar, dependiendo de lo que queramos crear seguiremos la siguiente lista:

  • Use {} en lugar de new Object ()
  • Utilice «» en lugar de new String ()
  • Utilice 0 en lugar de new Number ()
  • Utilice false en lugar de new Boolean ()
  • Utilice [] en lugar de new Array ()
  • Utilice / () / en lugar de new RegExp ()
  • Utilice function () {} en lugar de la new función ()

Cuidado con las conversiones automáticas

Los números se pueden convertir accidentalmente en cadenas o en NaN, ya que JS no esta fuertemente tipado como JAVA, y una variable puede modificar fácilmente el tipo de dato

Utilizar === como comparación

Debido a la razón anterior es posible que en ocasiones el comparador == nos muestre un true cuando en realidad es false, por ello se debe de utilizar  === en las comparaciones para que el tipo también coincida.

Utilizar valores predeterminados de parámetros

Puede ser que una llamada  a una función reciba menos parámetros de los que requiere, por ello es un buen habito asignar valores pode defecto a los argumentos como en el siguiente ejemplo:

function miFunction(x, y) {
    if (y === undefined) {
        y = 0;
    }
}

Terminar las interrupciones con valores determinados

Siempre tenemos que intentar terminar las sentencias switch con un valor por defecto.

switch(variable){
    case valor1:
        //código
        break;
    case valor2:
        //código
        break;
    case valor3:
        //código
        break;
    case valor4:
        //código
        break;
    ....
    default:
        //código
        break;
}