DEV Community

Yuta Kusuno
Yuta Kusuno

Posted on • Edited on

1 1

[JS] Look Back on Hoisting

In JavaScript, understanding hoisting is crucial for any developer. Hoisting can be a tricky concept at first, but once you grasp it, you will have a solid foundation for writing efficient and error-free code. I will explore how it works, and provide examples to help you master this essential JavaScript concept.

What is Hoisting?

Hoisting is a JavaScript behavior where variable and function declarations are moved to the top of their containing scope during the compilation phase. This allows you to use variables and functions before they are declared in your code.

Variables Hoisting

Let us see an example:

console.log(a); // Output: undefined
var a = 5;
console.log(a); // Output: 5
Enter fullscreen mode Exit fullscreen mode

In this example, the variable a is hoisted to the top of the scope during the compilation phase, resulting in the first console.log(a) printing undefined. However, the second console.log(a) prints 5 because the variable has been assigned the value by that point in the code.

Function Hoisting

Function declarations are also hoisted. Consider the following example:

sayHello(); // Output: Hello!

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

In this case, the sayHello function is hoisted to the top of the scope, allowing us to call it before its actual declaration.

Variable Hoisting vs. Function Hoisting

It is important to note that while both variable and function declarations are hoisted, there are differences in how they are handled during hoisting. Function declarations are completely hoisted, including both the function name and its implementation. On the other hand, variable declarations are hoisted, but only the variable name is moved to the top, not the assignment.

console.log(myVariable); // Output: undefined
var myVariable = "I am hoisted!";

hoistedFunction(); // Output: "I am hoisted!"
function hoistedFunction() {
  console.log("I am hoisted!");
}
Enter fullscreen mode Exit fullscreen mode

Good ideas

To avoid confusion and potential bugs related to hoisting, it is a good practice to declare variables at the top of their scope and define functions before using them.

That is about it. Happy coding!

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay