Рубрики
Без рубрики

Темнарный оператор: лучшие альтернативы

Торговый оператор – это хороший способ написать краткие целевые задания без необходимости писать больше … Теги с JavaScript, Teadercript, Clean Code, качество кода.

Темнарный оператор – это хороший способ написать краткие целевые задания без необходимости писать более длинные Если/else Отказ Например:

// This...
let value;
if (test) value = 1;
else valeu = 2;

// can be written as this:
const value = test ? 1 : 2;

Однако легко злоупотреблять Тернарным оператором для вещей, где более простые операторы часто могут быть лучшим выбором. Так вот несколько альтернатив для распространенных ошибок.

Статические истинные/ложные задания:

const value = test ? true : false;
// can be replaced by boolean casting:
const value = !!test;
// or even
const value = Boolean(test); // I prefer the shorter alternative

Значение Nullable (Falsy Case)

const value = test ? test : null;
// can be written like this
const value = test || null;

ПРИМЕЧАНИЕ. Код выше вернет NULL до тех пор, пока Тест это Falsy Отказ

Значение Nullable (Nulish Case)

const value = test !== null || test !== undefined ? test : null;
// can be written like this:
const value = test ?? null;

Смотрите: Nullish Coalescing оператор (??)

Кстати…

const test = a === null || a === undefined;
// can be simplified as:
const test = a == null;

Проверка на неопределенный

Я видел это несколько раз. Я обещаю.

const value = obj ? obj.a : undefined;
// which can simply be:
const value = obj && obj.a;
// or in more recent implementations:
const value = obj?.a;

Смотрите: Дополнительное цепочка (?.) [Оператор Элвиса]

Темный (но не на самом деле тройной) оператор

Это моя любимая, а также честная ошибка. Некоторые люди получают пересечение с простотой Тернарного оператора и могут подумать, что это просто «короче» Если/else утверждение.

let value;
test ? value = 8 : null;
// when they meant 
if (test) value = 8;

Однострочный Если Заявление простое и достаточно чисто для этой цели, и мы знаем тестовое задание ? не будет работать. Темнарный оператор должен иметь еще возвращаемое значение. Если вам это не нужно, используйте однострочный Если Отказ

Упаковка …

В двух словах, если ваш тройной оператор не имеет структуры, такой как приведенная ниже, вы должны поднять бровь и проверять, действительно ли нет других простых альтернатив.

const value = test ? otherValue : anotherValue;

Можете ли вы подумать о других примерах, которые вы видели о плохом использовании Тернарного оператора? Пожалуйста, дайте мне знать в комментариях ниже.

Оригинал: “https://dev.to/saulodias/ternary-operator-better-alternatives-2ind”