Как определить, что переменная содержит функцию, не вызывая её?

JavaScript, типизация typeof возвращает "function" безопасен для значений любого типа работает быстро и не создаёт лишних затрат доступен во всех браузерах и средах выполнения подходит для проверки функций, методов и…

Короткий ответ

Что ответить на собеседовании

JavaScript, типизация typeof возвращает "function" безопасен для значений любого типа работает быстро и не создаёт лишних затрат доступен во всех браузерах и средах выполнения подходит для проверки функций, методов и лямбда-выражений помогает предотвратить ошибки при вызове значений, не являющихся функциями

Подробный разбор

Ответ с пояснениями

Как определить, что переменная содержит функцию, не вызывая её?

  • JavaScript, типизация
  • typeof возвращает "function"
  • безопасен для значений любого типа
  • работает быстро и не создаёт лишних затрат
  • доступен во всех браузерах и средах выполнения
  • подходит для проверки функций, методов и лямбда-выражений
  • помогает предотвратить ошибки при вызове значений, не являющихся функциями

Главное: применить оператор typeof var === "function", чтобы проверить наличие функции в переменной без её вызова.

Развёрнутый ответ

Ключевой ответ

В JavaScript для проверки того, что переменная содержит функцию, без её вызова, обычно применяют оператор typeof. Если операндом является функция, typeof возвращает строку "function". Это безопасный и распространённый способ отличить функцию от значений других типов.

Например:

if (typeof myVar === 'function') {
// myVar — это функция
}

Что важно учитывать

  • Оператор typeof не вызывает функцию, поэтому проверка выполняется без побочных эффектов.
  • В качестве альтернативы можно применить instanceof Function, однако при работе с функциями из разных контекстов окружения, например iframe, этот вариант может работать некорректно.
  • В отдельных языках или окружениях правила могут отличаться, но в стандартном JavaScript typeof считается универсальным способом проверки.

Использование на практике

В React 18+ и Node.js 16+ такой подход часто применяют перед вызовом callback-параметров или middleware. Он позволяет не запускать функцию без необходимости и предотвращать ошибки времени выполнения, помогая создавать более надёжный и безопасный код.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку