consider these slightly two different versions of hoisting…
mylocation = "dublin"
function outputPosition() {
alert(mylocation);
mylocation = "fingal" ;
alert(mylocation);
}
outputPosition();
This will output “fingal” and then “fingal”
mylocation = "dublin"
function outputPosition() {
alert(mylocation);
var mylocation = "fingal" ;
alert(mylocation);
}
outputPosition();
This will output “undefined” and “fingal”
Why?
Once you declare variable using
varkeyword within a javascript function and no matter where you put this declaration – at the top of the function or at the buttom, it will be considered as local variable. So that is why you getundefinedwhen you try to get value of such variable beforevardeclaration.