Это JavaScript.Ответ будет следующим: Это зависит. Это зависит от того, какой движок вы используете, от ваших данных, от других вещей в контексте, от того, соответствует ли первое или последнее совпадение, по вторникам....
Но создание переменных в JavaScript очень быстро.Напротив, версия с повторными вызовами просит интерпретатора сделать несколько вызовов функций, а вызовы функций (хотя и быстрые по любой реальной мере) медленнее по сравнению с большинством других операций.Единственный способ сделать это будет так быстро, если интерпретатор сможет выяснить, что он может кэшировать результат вызова, что сложно.
Взять тест производительности @ Felix и сделать его пессимистичным (например, наихудший случай и ни один из них не соответствует) предполагает, что даже Chrome не может оптимизировать его настолько, чтобы повторные вызовы функций не выходили из строя.Я не проводил всесторонних тестов, но Chrome, Firefox и Opera работали примерно на 60% медленнее.
Конечно, у вас есть альтернатива:
var text="ABCdef";
switch (text.toLowerCase()) {
case 'abcdef':
// ...
break;
case 'asdfgh'
// ...
break;
case 'zxcvbn'
// ...
break;
}
Все этоЭто преждевременная оптимизация, которая, в общем, достаточно плоха, но особенно плоха для JavaScript и меняющихся сред, в которых он работает.
Лучший вопрос: что яснее и удобнее в обслуживании?