DEV Community

Cover image for Understanding JavaScript Functions: Function Declarations vs Function Expressions Explained
WISDOMUDO
WISDOMUDO

Posted on

Understanding JavaScript Functions: Function Declarations vs Function Expressions Explained

Introduction

Functions are essential components in JavaScript, forming the backbone of most web development tasks. They allow you to write a piece of code once and reuse it wherever necessary. Whether you are a beginner or brushing up your knowledge, understanding how functions work, especially the difference between function declarations and function expressions, is crucial to writing clean and efficient JavaScript code.

In this article, you will learn:

  • What a function is in JavaScript
  • What function declarations are, with examples
  • What function expressions are, with examples
  • The difference between declarations and expressions
  • Anonymous vs named function expressions
  • When to use each type of function

What Is a Function in JavaScript?

In JavaScript, a function is a block of reusable code that carries out a particular task. It allows you to divide your code into smaller, more organized chunks and avoid redundancy.

Here's a basic example of a function:

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

To use a function, you call it using its name and parentheses:

greet(); // Output: Hello, function!
Enter fullscreen mode Exit fullscreen mode

Function Declaration

A function declaration is the standard way of defining a named function using the function keyword. It is hoisted, meaning it can be called before it is defined in the code.

Example:

sayHi(); // Works due to hoisting
Enter fullscreen mode Exit fullscreen mode
function sayHi() {
console.log("Hello from a function declaration!");
}
Enter fullscreen mode Exit fullscreen mode

With hoisting, JavaScript makes function declarations available before any code is executed.

Function Expression

A function expression involves assigning a function to a variable. It may or may not have a name and is not hoisted, meaning it must be defined before it is called.

Anonymous Function Expression:

const greet = function() {
console.log("Hello from an anonymous function!");
};
Enter fullscreen mode Exit fullscreen mode
greet(); // Works only after the function is defined
Enter fullscreen mode Exit fullscreen mode

In the example, sayHi is the function’s internal name, but it is invoked using the variable greetUser.

Key Differences Between Declarations and Expressions

Feature Function Declaration Function Expression
Syntax function myFunc() {} const myFunc = function() {}
Hoisting Yes (can be called before defined) No (must be defined before use)
Named Function Always named Can be named or anonymous
Use Case General purpose functions Callbacks, inline functions

When to Use Which?

  • Function declarations are ideal for utility functions that are reused in multiple areas of your code.
  • Choose function expressions when you need more flexibility, like storing functions in variables or passing them around as arguments.

Conclusion

Functions are at the heart of every JavaScript application. Knowing how function declarations and expressions differ can improve the structure and maintainability of your code. While both serve similar purposes, choosing the right one depends on how and where you intend to use the function. As you continue learning, experiment with both types and observe how JavaScript handles each in different situations.

You can reach out to me via LinkedIn

Top comments (0)