15 Octubre


Switch vs Else If en Javascript

Trabajando en un proyecto hecho completamente en Phonegap tuve que involucrarme personalmente en algunas cosas de Javascript con las que no trabajaba hace algún tiempo y pude verificar por mi mismo la evolución del lenguaje desde los tiempos de Actionscript.

En lo particular uso Javascript y la librería jQuery practicamente todos los dias, pero no todos los días me encuentro con un proyecto en el que TODO lo tenga que hacer con Javascript y esto me forzó a involucrarme de manera profunda en todo lo que respecta  a este lenguaje usado por todos pero no bien explotado por muchos.

En el caso particular que nos interesa en este post voy a hablar de el switch vs el else if, ya en artículos posteriores hablaré detalladamente sobre el proceso de desarrollo de la app de la que les hablo y los pormenores del resto de los problemas-soluciones.

Lo que quiero comentar en este post es simplemente el hecho de que muchas veces nos preguntamos cómo hacer una cosa en programación, y para esto, si se trata de Javascript y específicamente de escoger entre hacer un switch o un else if, con seguridad les puedo recomendar que opten por el switch....y explico mi elección.

Primero, he probado el performace de ambos y por mucho es más eficiente el switch.

Segundo, la eficiencia del switch es algo que no hay que discutir mucho pues cada case termina en un break y justo allí termina el proceso del código. Sin embargo, en un else if, el programa debe evaluar todas las posibilidades y al final del mismo hacer el output del que corresponda al correcto.

A continuación dos pedazos de código usando uno y otro para ejemplificar lo que estamos hablando:

if (name == 'Alberto') {
  alert('Hola Alberto');
}
else if (name == 'Berta') {
  alert('Hola Berta');
}
else if (name == 'Camilo') {
  alert('Hola Camilo')

switch (name) {
  case 'Alberto':
    alert('Hola Alberto');
    break;
  case 'Berta':
    alert('Hola Berta');
    break;
  case 'Camilo':
    alert('Hola Camilo');
    break;
  default:
    'Hola';

 




Artículos Relacionados