Условные операторы намеренно лаконичны и особенно полезны для назначений:
var a = x ? 1 : 2;
Использование их для условного запуска функций, когда это возможно, должно быть сделано для удобства чтения с использованием операторов IF / ELSE:
// This is possible but IMO not best practice:
X ? doSomething() : doSomethingElse();
В большинстве случаев это лучшее решение:
if (X) {
doSomething();
} else {
doSomethingElse();
}
Одним заметным преимуществом структуры IF / ELSE является то, что вы можете добавлять дополнительные задачи в каждое условие с минимальными хлопотами.
Ваш последний фрагмент также возможен, но выглядит несколько скучно и, опять же, может быть лучше приспособлен к более обычной логической структуре; как блок IF / ELSE.
Тем не менее, условный оператор все еще может быть читаемым, например,
(something && somethingElse > 2) ?
doSomeLongFunctionName()
: doSomeOtherLongFunctionName();
В конце концов, как и многие вещи, все зависит от личных предпочтений. Всегда помните, что код, который вы пишете, не только для вас; другим разработчикам, возможно, придется пройти через это в будущем; постарайтесь сделать его максимально читабельным.