Какая часть кода работает быстрее или лучше?Оператор или оператор Ternary
троичный оператор
action = typeMap[type] ? typeMap[type] : typeMap['default'];
Или оператор
action = typeMap[type] || typeMap['default']
Спасибо!
Какая часть кода работает быстрее или лучше?Оператор или оператор Ternary
троичный оператор
action = typeMap[type] ? typeMap[type] : typeMap['default'];
Или оператор
action = typeMap[type] || typeMap['default']
Спасибо!
Скорость здесь не проблема, они одинаково быстрые, и ни одна из них не может вызвать узкое место в потоке кода. Тем не менее, при проверке состояния они имеют немного другое поведение.
Настоящий вопрос: который более читаем? Если кто-то (или вы сам) прочитает этот код, какой из них будет более понятным?
Даже если он не может быть элегантным, может быть решение, как следующее в некоторых случаях может быть лучше
var action = typeMap['default'];
if (typeMap[type]) {
action = typeMap[type];
}
Это решение также позволяет сделать более точную проверку на codition, учитывая, что истины таблица в javascript может быть сложной.
Я не говорю, что это решение лучше, просто подумайте, какой из них более читабельен в вашей ситуации.
[Гонка лошадей] (https://ericlippert.com/2012/12/17/performance-rant/) – Sayse
У них есть разница. – user7393973
http://softwareengineering.stackexchange.com/questions/82593/javascript-ternary-operator-vs –