Перестаньте использовать let или чем бы заменить if

1 минута чтения

Не безрезультатно веду пропаганду никогда не использовать тернарные операторы. if-else блоки более читаемы и понятны. В подтверждение приведу примерный код, который недавно пришлось править:

(true) ? (() => {
  // some code
})() : void(0)

Зачем так писать? Непонятно. Если требуется один if, тогда позвольте писать хотя бы так:

(true) && (() => {
  // some code
})()

А теперь сравните с привычным if:

if (true) {
  console.log(42)
}

С другой стороны, используя тернарные операторы можно делать такие конструкции:

const foo = (true) ? (() => 'bar')() : (() => 42)()

Вместо таких:

let foo
if (true) {
  foo = 'bar'
} else {
  foo = 42
}

А в этом есть смысл. Около полугода назад пришел к мысли что неплохо было бы вообще исключить использование let и var, заменив их на const во всех случаях.

В случаях с неизвестной заранее переменной:

let x
if(some) {
  x = 'foo'
} else {
  x = 'bar'
}

Инициализировать ее через самовызывающуюся функцию:

const x = (() => {
  if(some) {
    return 'foo'
  } else {
    return 'bar'
  } 

Добавить комментарий