Ребята, у меня есть пара вопросов:
- Есть ли разница в производительности JavaScript между оператором
switch
и if...else
?
- Если так, то почему?
- Отличается ли поведение
switch
и if...else
в разных браузерах? (FireFox, IE, Chrome, Opera, Safari)
Причина, по которой я задаю этот вопрос, заключается в том, что мне кажется, что я получаю более высокую производительность для оператора switch
с примерно 1000-ю случаями в Firefox.
Отредактировано
К сожалению, это не мой код, Javascript создается на стороне сервера из скомпилированной библиотеки, и у меня нет доступа к коду. Метод, который производит JavaScript, называется
CreateConditionals(string name, string arrayofvalues, string arrayofActions)
note arrayofvalues
- список через запятую.
что он производит, это
function [name] (value) {
if (value == [value from array index x]) {
[action from array index x]
}
}
Примечание: где [name]
= имя, переданное в функцию сервера
Теперь я изменил вывод функции, которая будет вставлена в TextArea, написал некоторый код JavaScript для анализа функции и преобразовал его в набор операторов case
.
наконец-то я запускаю функцию, и она работает нормально, но производительность в IE и Firefox различается.