r/learnjavascript • • Jul 19 '21

JavaScript Function Facts

255 Upvotes

27 comments sorted by

View all comments

20

u/[deleted] Jul 19 '21

function declarations aren't the only thing that is hoisted, variable declarations with var are also hoisted.

e.g. the following does not work:

console.log('hello', future());
const future = function() { 
   return ' world'; 
}

1

u/[deleted] Jul 19 '21

Does using var have a higher cost than using let? Does hoisting have a cost?

2

u/[deleted] Jul 19 '21

the only difference is, that you can't redeclare a let/const variable and that var variable are hoisted to the top. There is no cost.

2

u/[deleted] Jul 19 '21

You can redeclare let. I thought the only difference was scoping.

4

u/[deleted] Jul 19 '21

Reassign, yes, but not redeclare.

 let assignment = 3;
 assignment = true;

 let declaring = function() {}
 let declaring = false; // here will be a redeclaration error

-5

u/[deleted] Jul 19 '21

We’ll that’s not really redeclaration is it? You’re assigning 2 variables with the same name?

6

u/[deleted] Jul 19 '21

[removed] — view removed comment

5

u/[deleted] Jul 19 '21

I’ll be honest I thought reassigning was redeclaration.