As part of my learning JavaScript, I try to write code to demonstrate the concept I am learning; today I'm learning hoisted variables. Here is the code I wrote:
console.log("A: My name is " + name);
function happy() {
console.log ("1: I am " + feeling);
var feeling = "happy";
console.log ("2: I am " + feeling);
}
happy();
var name = "Jim";
console.log("B: My name is " + name);
I expected the following results:
A: My name is undefined
1: I am undefined
2: I am happy
B: My name is Jim
However, when testing my code at WriteCodeOnline.com and in another sandbox, the first console.log displays A: My name is
. I am using a Chrome browser, if that makes a difference.
So, my question is, why does the hoisted local variable within the function return undefined while the hoisted global variable returns a blank?