Your concept about Hoisting in JavaScript is wrong

Probably this is the most popular definition for hoisting -
Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their scope before code execution

Which is often interpreted as that variable and function declarations are physically moved to the top of your code but this is not in the fact what happens behind the scenes.
Instead the variable and function declarations are put into memory during the compile phase, but stay exactly where you typed them in your code.

Thank you for investing your time…