Explain hoisting in JavaScript


Hoisting allows us to call functions and variables (declared with var) before they are being defined by moving them to the top of their scope before the execution of code begins.

Following is the code showing hoisting for variables and functions in JavaScript −

Example

 Live Demo

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result,.sample {
      font-size: 20px;
      font-weight: 500;
   }
</style>
</head>
<body>
<h1>Hoisting in JavaScript</h1>
<div class="sample">
Calling functions and variables before they are defined
</div>
<div style="color: green;" class="result"></div>
<button class="btn">CLICK HERE</button>
<h3>
Click on the above button to see hoisting in action
</h3>
<script>
   let btnEle = document.querySelector(".btn");
   let resEle = document.querySelector(".result");
   btnEle.addEventListener("click", () => {
      resEle.innerHTML = "retString() : " + retString() + "<br>";
      resEle.innerHTML += "var a = " + a + "<br>";
      try {
         resEle.innerHTML += "let b = " + b + "<br>";
      }
      catch (err) {
         resEle.innerHTML += err;
      }
      let b = 55;
      var a = 22;
      function retString() {
         return "Hello world";
      }
   });
</script>
</body>
</html>

Output

The above code will produce the following output −

On clicking the ‘CLICK HERE’ button −

Updated on: 15-Jul-2020

222 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements