Оператор «присвоєння логічного і» в JavaScript

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

Невеликий але корисний патерн у сучасному JavaScript — оператор &&= (logical assignment operators). Він ідеально підходить для безпечного оновлення: feature flags, permissions або runtime-обмеження.

Дано

const config = {
  features: {
    payments: true,
    refunds: true
  }
}

const isBillingEnabled = false

Проблема

Зайві перевірки та роздутий код. Раніше безпечне оновлення значення виглядало якось так:

// update
if (config.features.payments) {
  config.features.payments = isBillingEnabled
}

// or
config.features.payments =
  config.features.payments && isBillingEnabled

Рішення

Тепер завдяки logical assignment operators (||=, &&=, ??=) ми можемо зробити це простіше:

// Modern &&= operator (ES2021) 
config.features.payments &&= isBillingEnabled

Таким чином &&= дозволяє безпечне оновлення тільки якщо значення null, undefined aбо false.

P.S. в коментарях автору трохи напхали, що таке використання цієї фічі є навіть небезпечним, т.я. може змінюватись тип даних і взагалі ця фіча юзлес. Якщо є приклад більш практичного використання — пишіть у коментарях.

🌎 Оригінал: medium.com

Якщо вам цікаво читати шортси англомовних статей українською, то ви можете більше для себе знайти у моєму блозі crynet.dev
👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі