Иногда я использую тернарные выражения для упрощения &, уменьшая длину моего кода.Тернарные высказывания в Javascript: ловушки без назначения?
Тройные операторы традиционно используются для присвоения значения переменного, но в JS я также могу написать тройные заявления без каких-либо уступок для выполнения отличаясь результатов на основе булевого ответ на вопрос - пример:
anyVariable > someValue ?
funcOne(anyVariable):
funcTwo(anyVariable);
Этот код не вызывает ошибок, но jsLint жалуется, что он видел выражение, где ожидалось назначение или вызов функции.
Есть ли какие-либо подводные камни или потенциальные проблемы, о которых я должен знать при использовании тернарных утверждений (в Javascript) таким образом?
Я бы избегал этого только на том основании, что он читает плохо, а не стандартную конструкцию if/else. – mccainz
Использование трехмерных выражений вместо if/else может быть технически возможным и «короче», но, конечно же, не улучшает ваш код. Потенциальная проблема заключается в том, что любой, кто смотрит ваш код (и это может включать вас через 6 месяцев), не будет понимать его так близко, как если бы вы использовали соответствующую конструкцию. Кроме того, после того, как вы уменьшите свой JS, он все равно не намного короче. – veddermatic
Не полный ответ, но на самом деле мне довелось проверить производительность между стандартной структурой 'if/then' и ее тройным эквивалентом вчера, для другого вопроса SO, и значения производительности были очень похожими, с очень небольшим преимуществом при использовании 'if/then' с некоторыми браузерами. – talemyn