Довольно часто мне приходится проверять, не является ли переменная ни null, ни undefined. Я вижу, что многие люди делают это следующим образом:

if (myVar) {
  // myVar is not null or undefined
}

Однако теоретически вы можете получить ложноотрицательный результат, потому что myVar может быть равно false или 0.

Я делаю эти проверки следующим образом:

if (typeof myVar !== 'undefined' && myVar!== null) {
  // myVar is not null or undefined
}

Что довольно многословно. Поэтому я абстрагировал его в модуль npm под названием its-set. Приведенный выше пример можно переписать следующим образом:

import itsSet from 'its-set';
if (itsSet(myVar)) {
  // myVar is not null or undefined
}

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

const deeplyNested = {
  foo: {
    bar: {
      baz: 0, // <- need to check if this is defined & not null
    },
  },
};

Поэтому я сделал возможным проверку этих глубоко вложенных значений с помощью itsSet, передав корневой объект в качестве первого параметра и строку селектора во втором — аналогично lodash.get:

if (itsSet(deeplyNested, 'foo.bar.baz')) {
  // deeplyNested.foo.bar.baz is not null or undefined
}

Это мой самородок на сегодня. Подскажите, как вы решаете эту проблему, друзья-ботаники.