I'm learning Javascript recently.When I get into the scope chain section, the example code as following:
var message = "in global";
console.log("global: message = " + message);
var a = function() {
var message = "inside a";
console.log("a: message = " + message);
function b() {
console.log("b: message = " + message);
}
b();
}
a();
var message = "in global";
console.log("global: message = " + message);
var a = function() {
console.log("a: message = " + message); /*order reverse*/
var message = "inside a"; /*order reverse*/
function b() {
console.log("b: message = " + message);
}
b();
}
a();
I suppose the second line of output should be a: message = in global instead of a: message = undefined.
So why does this happen?