Computer >> Computer tutorials >  >> Programming >> Javascript

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

<!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 −

Explain hoisting in JavaScript

On clicking the ‘CLICK HERE’ button −

Explain hoisting in JavaScript