Say I have a piece of code like this:
const number = 3;
function fooFunction() {
let numberTwo = 5;
var answer = number + numberTwo;
return answer;
}
finalAnswer = fooFunction();
console.log(finalAnswer);
Assuming an ES2015 compatible browser, what would be the advantages/disadvantages of using the above code, over:
const number = 3;
function fooFunction() {
var numberTwo = 5;
var answer = number + numberTwo;
return answer;
}
finalAnswer = fooFunction();
console.log(finalAnswer);
Are there any advantages or disadvantages, given they both return the same number?
As others have mentioned, in your example you can use let
and var
interchangeably. The difference is that let
is block-scoped and var
is not.
For example with var
you can do this (prints 'foo'):
function printFoo(param) {
if (param) {
var x = "foo";
}
console.log(x);
}
printFoo("hello");
You cannot do this with let
because let x
is scoped to the if
block and therefore is not defined.
Within the code sample you've provided, the two are interchangeable. Where let
comes in handy is in limiting the scope to block-level as opposed to function-level. Using let
inside of a for
loop, for example.
It's worth noting that variables created with the var
keyword are hoisted, whereas variables created with the let
keyword are not.
There is an excellent breakdown of this topic by Kyle Simpson on David Walsh's blog: https://davidwalsh.name/for-and-against-let#implicit-hazards
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With