Понимать концепцию чистых функций и побочных эффектов в JavaScript. Самые распространенные вопросы на собеседовании.

Функции — это хлеб с маслом программирования на JavaScript. Это дает нам возможность структурировать большие программы за счет уменьшения повторения кода. Функции обычно делятся на три категории:

  1. Функция, которая вызывается из-за побочных эффектов.
  2. Функция, которая вызывается для возвращаемого значения.
  3. Функция, которая вызывается из-за ее побочных эффектов, а также из-за возвращаемого значения.

Побочные эффекты

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

  • Пишите в консоли
  • Напишите на экране
  • Изменение внешней/глобальной переменной или свойства

В хороших практиках программирования рекомендуется избегать использования побочных эффектов. Тем не менее, не нужно расстраиваться из-за его использования, потому что иногда побочные эффекты могут быть полезными. Например, часто требуется использовать побочный эффект выполнения HTTP-запроса в нашем приложении.

Пример

Вот пример, чтобы понять побочный эффект в JavaScript. В этом примере мы передаем некоторые аргументы функции с именем printInventory(), и она записывает эти данные в консоль, что в JavaScript называется побочным эффектом.

Чистые функции

Чистые функции — это особый тип функций, создающих ценность, в JavaScript, которые не производят побочных эффектов и не полагаются на побочные эффекты другого кода. Например, он не читает глобальные переменные, значения которых могут измениться. Проще говоря, если функция выдает одно и то же значение для одних и тех же аргументов и не делает ничего другого, ее можно назвать чистой функцией.

Преимущества

  • Функции, возвращающие значения, проще использовать многими новыми способами, чем функции, непосредственно выполняющие побочные эффекты.
  • Еще одним преимуществом такой функции является то, что ее легче тестировать по сравнению с нечистыми функциями. Вы можете протестировать его, просто вызвав его, и убедиться, что если он работает правильно в этом контексте, он будет работать в любом контексте.

Пример

Вот пример, чтобы понять определение и поведение Pure Function в JavaScript. Функция discountedValue в этом примере — это чистая функция, поскольку она не использует и не изменяет никаких глобальных привязок и не выполняет никаких других побочных эффектов, а просто возвращает значение. Другая функция printPrice создает побочный эффект печати журнала на консоли с использованием значения, возвращаемого чистой функцией.

Заключение

Основная цель статьи — помочь вам понять значение побочных эффектов и чистой функции в JavaScript, что часто задают на собеседовании. Пожалуйста, поставьте лайк этой статье, подпишитесь на меня и следите за обновлениями, чтобы узнавать больше интересных вещей, подобных этой. Спасибо за прочтение статьи.





Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.