Встречается на собеседованиях • сегодня

Какие знаешь способы мемоизации

Мемоизация — это техника оптимизации, при которой результаты дорогостоящих вычислений кешируются и возвращаются при повторных вызовах с теми же аргументами.

  1. Ручная мемоизация:
    javascript
    const memoize = (fn) => {
      const cache = {};
      return (...args) => {
        const key = JSON.stringify(args);
        if (cache[key]) return cache[key];
        const result = fn(...args);
        cache[key] = result;
        return result;
      };
    };
  1. React: useMemo и useCallback:

    javascript
    const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
    const memoizedCallback = useCallback(() => doSomething(a, b), [a, b]);
  2. Библиотеки:

    • Lodash (_.memoize)
    • Reselect (для Redux)
  3. Мемоизация в классах:

    javascript
    class Example {
      cachedResult = null;
      cachedArgs = null;
    
      compute(args) {
        if (this.cachedArgs === JSON.stringify(args)) return this.cachedResult;
        this.cachedArgs = JSON.stringify(args);
        this.cachedResult = heavyCalculation(args);
        return this.cachedResult;
      }
    }
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы