Какие ложные значения существуют в JavaScript?

«Какие ложные значения существуют в JavaScript?» — вопрос из категории JavaScript, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В JavaScript есть 6 ложных (falsy) значений, которые при приведении к булевому типу дают false:

  1. false - булево значение лжи
  2. 0 - число ноль
  3. "" или '' - пустая строка
  4. null - отсутствие значения
  5. undefined - неопределенное значение
  6. NaN - не число (Not a Number)

Почему это важно для тестирования? При написании автотестов на JavaScript (например, с использованием Jest, Mocha или Cypress) понимание falsy-значений критично для корректной работы условных операторов и проверок (assertions).

Пример из теста:

// Тест, проверяющий обработку невалидного ввода
function validateInput(input) {
  return input ? true : false;
}

test('validateInput returns false for falsy values', () => {
  const falsyValues = [false, 0, "", null, undefined, NaN];
  falsyValues.forEach(value => {
    expect(validateInput(value)).toBe(false);
  });
});

Все остальные значения (включая пустые массивы [], объекты {}, строку "0") являются истинными (truthy).