Gente, eu tenho algumas perguntas:
- Existe uma diferença de desempenho no JavaScript entre uma
switch
declaração e umaif...else
? - Se sim, por quê?
- O comportamento
switch
e o comportamento sãoif...else
diferentes nos navegadores? (FireFox, IE, Chrome, Opera, Safari)
O motivo para fazer essa pergunta é que parece que eu obtive melhor desempenho em uma switch
declaração com aproximadamente 1000 casos no Firefox.
Editado Infelizmente este não é o meu código, o Javascript está sendo produzido no servidor a partir de uma biblioteca compilada e não tenho acesso ao código. O método que está produzindo o javascript é chamado
CreateConditionals(string name, string arrayofvalues, string arrayofActions)
note arrayofvalues
é uma lista separada por vírgula.
o que produz é
function [name] (value) {
if (value == [value from array index x]) {
[action from array index x]
}
}
Nota: onde [name]
= o nome passado para a função do lado do servidor
Agora mudei a saída da função a ser inserida em uma TextArea, escrevi algum código JavaScript para analisar a função e a converti em um conjunto de case
instruções.
finalmente, eu executo a função e ela funciona bem, mas o desempenho difere no IE e no Firefox.