DEV Community

Cover image for Type of Functions in JavaScript
vidhya murali
vidhya murali

Posted on

Type of Functions in JavaScript

Here are all the main types of functions in JavaScript:

  1. Named Function

A function that has its own name when declared. It’s easy to reuse and debug because the name shows up in error messages or stack traces.

Example :

  function greet() {
     return "Hello!";
  }
  console.log(greet());
Enter fullscreen mode Exit fullscreen mode

2.Anonymous Function

A function that does not have a name. It is usually assigned to a variable or used as a callback. Since it has no name, it cannot be called directly.

    const greet = function() {
        return "Hi there!";
    };
    console.log(greet());
Enter fullscreen mode Exit fullscreen mode

3.Function Expression

When you assign a function (can be named or anonymous) to a variable. The function can then be used by calling that variable.

  const add = function(a, b) {
     return a + b;
   };
  console.log(add(2, 3));
Enter fullscreen mode Exit fullscreen mode

4.Arrow Function (ES6)

A new way to write functions using the => syntax. They are shorter and do not have their own this binding, which makes them useful in some cases.

    const square = n => n * n;
    console.log(square(4));
Enter fullscreen mode Exit fullscreen mode
  1. Immediately Invoked Function Expression (IIFE)

IIFE functions are executed immediately after their definition. They are often used to create isolated scopes.

 (function () {
    console.log("This runs immediately!");
  })();
Enter fullscreen mode Exit fullscreen mode

6. Callback Functions

A callback function is passed as an argument to another function and is executed after the completion of that function.

   function num(n, callback) {
         return callback(n);
   }

   const double = (n) => n * 2;

   console.log(num(5, double));
Enter fullscreen mode Exit fullscreen mode
  1. Constructor Function

A special type of function used to create multiple objects with the same structure. It’s called with the new keyword

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }

    const user = new Person("Neha", 22);
    console.log(user.name);
Enter fullscreen mode Exit fullscreen mode

8.Async Function

Functions that handle asynchronous tasks. Declared with async, they return a Promise, and you can use await inside them to pause until another Promise resolves.

  async function fetchData() {
   return "Data fetched!";
   }
   fetchData().then(console.log);
Enter fullscreen mode Exit fullscreen mode

9.Generator Function

Declared with an asterisk *, these functions can pause execution using yield and resume later. Useful for lazy loading values or handling iterators.

10.Recursive Function

A function that calls itself until a condition is met. Very useful for problems like factorial, Fibonacci, or tree traversals.

11.Higher-Order Function

A function that either takes another function as a parameter or returns another function. These are common in JavaScript (e.g., map, filter, reduce).

12.Nested Functions

Functions defined within other functions are called nested functions. They have access to the variables of their parent function.

13.Pure Functions

Pure functions return the same output for the same inputs and do not produce side effects. They do not modify state outside their scope, such as modifying global variables, changing the state of objects passed as arguments, or performing I/O operations

    function pureAdd(a, b) {
       return a + b;
    }

    console.log(pureAdd(2, 3));
Enter fullscreen mode Exit fullscreen mode

14.** Rest Parameter Function**

Uses ... to collect all remaining arguments into an array. Very useful when you don’t know how many arguments will be passed.

Reference : https://www.geeksforgeeks.org/javascript/functions-in-javascript/

Top comments (0)