# Variable and Function Hoisting

**URL:** <https://forum.kirupa.com/t/variable-and-function-hoisting/636727>\
**Category:** programming\
**Created:** [June 2, 2017, 11:19pm UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727 "2017-06-02T23:19:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [June 2, 2017, 11:19pm UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727/1 "2017-06-02T23:19:27Z")

</div>

One of the quirkiest things about JavaScript is this thing known as **hoisting**. We'll get to what it means in a bit, but let's set the stage for it by looking at some examples and figuring out what the right behavior should be. For our first example, take a look at the following code:

* * *
This is a companion discussion topic for the original entry at [http://www.kirupa.com/html5/hoisting.htm](http://www.kirupa.com/html5/hoisting.htm)

---

<div class="post-metadata">

**Author:** ![senocular](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/senocular/32/7217_2.png) [@senocular](https://forum.kirupa.com/u/senocular)\
**Post date:** [June 3, 2017, 2:33pm UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727/2 "2017-06-03T14:33:50Z")

</div>

No mention of `let` and `const`?

---

<div class="post-metadata">

**Author:** ![krilnon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/krilnon/32/34_2.png) [@krilnon](https://forum.kirupa.com/u/krilnon)\
**Post date:** [June 3, 2017, 6:20pm UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727/3 "2017-06-03T18:20:16Z")

</div>

The hoisting mechanics you describe are notional — “as if” — behavior. Also, hoisting happens because it’s in the language spec, not because it’s an optimization. It’s mostly a vestigial remnant of early versions of JS.

---

<div class="post-metadata">

**Author:** ![TheCanadian](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@TheCanadian](https://forum.kirupa.com/u/TheCanadian)\
**Post date:** [June 4, 2017, 4:39am UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727/4 "2017-06-04T04:39:11Z")

</div>

Tough crowd…

---

<div class="post-metadata">

**Author:** ![krilnon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/krilnon/32/34_2.png) [@krilnon](https://forum.kirupa.com/u/krilnon)\
**Post date:** [June 4, 2017, 5:14am UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727/5 "2017-06-04T05:14:34Z")

</div>

😅 Kirupa’s biggest fans are also his harshest critics.

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [June 4, 2017, 10:53pm UTC](https://forum.kirupa.com/t/variable-and-function-hoisting/636727/6 "2017-06-04T22:53:40Z")

</div>

Haha! Thanks for pointing these out. I will address them shortly 😛

**Edit:** Addressed!
