A lo largo de mis días de codificación en JavaScript, constantemente me encontré debatiendo si usar un caso de cambio o una declaración if else para mi condicional. Así que, naturalmente, decidí escribir un blog para sopesar las diferencias (para mí & usted) y ver cuál es mejor en circunstancias específicas.
Una instrucción switch suele ser más eficiente que un conjunto de ifs anidados. Cuando tiene que elegir cuál usar, se basa en la legibilidad y la expresión que la instrucción está probando.
Básicamente, se usa un if else para tomar decisiones, mientras que una instrucción switch se usa para probar el valor de la variable dada contra una lista de valores de mayúsculas y minúsculas .
- La expresión dentro de una instrucción if decide si se ejecutan las instrucciones dentro del bloque if o bajo el bloque else. Para switch, la expresión dentro de la instrucción switch decide qué caso ejecutar.
- La instrucción if-else comprueba la igualdad, así como la expresión lógica. Por otro lado, el interruptor solo comprueba la igualdad.
- La instrucción if evalúa el tipo entero, carácter, puntero o punto flotante o tipo booleano. Por otro lado, la instrucción switch evalúa solo caracteres o un tipo de datos entero.
- La secuencia de ejecución es como una instrucción bajo if block will execute o sentencias bajo else block statement will execute. Sin embargo, la expresión de la instrucción switch decide qué caso ejecutar y si no aplica una instrucción break después de cada caso, se ejecutará hasta el final de la instrucción switch.
- Para una instrucción if-else, si la expresión dentro de la if resulta ser false, se ejecutará la instrucción dentro del bloque else. Para la instrucción switch, si la expresión dentro de la instrucción switch resulta ser false, se ejecutan las instrucciones predeterminadas.
- Se sabe que es difícil editar sentencias if-else, ya que es tedioso rastrear dónde se requiere la corrección. Muchas personas están de acuerdo en que es mucho más sencillo editar sentencias de conmutación, ya que son fáciles de rastrear.
Aquí está el diseño general de una sentencia if-else contra el caso de switch:
Esta es la sintaxis general de una sentencia if-else:
Y esta es la sintaxis general de switch:
La escalera if-else es de tipo strict condition check, mientras que switch es de tipo jump value catching.
Algunas ventajas clave de cambiar la escalera if-else:
- Una instrucción switch funciona mucho más rápido que una escalera if-else equivalente. Es porque el compilador genera una tabla de salto para un interruptor durante la compilación. Como resultado, durante la ejecución, en lugar de verificar qué caso se cumple, solo decide qué caso debe ejecutarse.
- Es más legible en comparación con las sentencias if-else.
Al final, la elección es suya y espero que este blog lo ayude a tomar el camino correcto para tomar la decisión más informada cuando usar una declaración if-else contra un caso de cambio.