How to Check if a Variable is of Function Type in JavaScript

In JavaScript, variables can store different types of values such as numbers, strings, objects, arrays, and functions.

The typeof operator can be used to check the type of a variable, but it has some limitations.

In this tutorial, we will discuss how to check if a variable is of function type in JavaScript.


Using typeof operator

The typeof operator is used to return a string representing the type of the variable.

The syntax for the typeof operator is:

typeof variable

For example, to check the type of a function, we can write:

let myFunction = function() {};
console.log(typeof myFunction); // "function"

As we can see, the typeof operator returns “function” when applied to a function.

Limitations of typeof operator

However, the typeof operator has some limitations when it comes to checking the type of functions.

It returns “function” for all types of functions, including arrow functions, regular functions, and anonymous functions.

This makes it difficult to distinguish between different types of functions.

Using instanceof operator

The instanceof operator can be used to check the type of a variable in a more precise way.

The instanceof operator returns true if the object is an instance of a specified constructor.

For example, to check if a variable is a function, we can write:

let myFunction = function() {};
console.log(myFunction instanceof Function); // true

In this example, the instanceof operator returns true, indicating that myFunction is an instance of the Function constructor.


Conclusion

In conclusion, checking the type of a variable in JavaScript can be done using the typeof operator or the instanceof operator.

The typeof operator is a simple way to check the type of a variable, but it has some limitations when it comes to functions.

The instanceof operator is a more precise way to check the type of a function and can be used to distinguish between different types of functions.