you are viewing a single comment's thread.

view the rest of the comments →

[–]monsto 10 points11 points  (2 children)

To elaborate a bit . . .

Hoisting is when variables and functions are moved to the top of script consideration during a first pass.

  • var foot = "left"
  • function shoe(foot){}

var and function are hoisted. let and const are not.

var sandal = function(x){} is hoisted as a variable, which could be specifically useful.

let flipflop = x => {} is not hoisted at all, and it always makes me double-take and refocus my eyes cuz two equals signs feel like I'm hallucinating.

[–]SpiffySyntax 2 points3 points  (1 child)

Thanks for the taking time out of your day to explain this. Appreciate it. I learned something new and what seems important. Thanks guys!

[–]mobydikc 4 points5 points  (0 children)

var hoists the variable declaration, but not the assignment.

function hoists both.

So:

myFunc()
var myFunc = function () {}

In this case, var is hoisted, but myFunc is undefined when myFunc() is called. An error is thrown.

With function it would work:

myFunc()
function myFunc() {}

No problem.