Chicos, tengo un par de preguntas:
- ¿Hay una diferencia de rendimiento en JavaScript entre una
switch
declaración y unaif...else
? - Si es así, ¿por qué?
- Es el comportamiento de
switch
yif...else
diferentes a través de los navegadores? (Firefox, IE, Chrome, Opera, Safari)
La razón para hacer esta pregunta es que parece que obtengo un mejor rendimiento en una switch
declaración con aproximadamente 1000 casos en Firefox.
Editado Desafortunadamente este no es mi código, el Javascript se está produciendo en el servidor desde una biblioteca compilada y no tengo acceso al código. El método que produce el javascript se llama
CreateConditionals(string name, string arrayofvalues, string arrayofActions)
note arrayofvalues
es una lista separada por comas.
lo que produce es
function [name] (value) {
if (value == [value from array index x]) {
[action from array index x]
}
}
Nota: where [name]
= el nombre pasado a la función del servidor
Ahora cambié la salida de la función para insertarla en un TextArea, escribí un código JavaScript para analizar la función y la convertí en un conjunto de case
declaraciones.
Finalmente ejecuto la función y funciona bien, pero el rendimiento difiere en IE y Firefox.