问题
I was wondering how javascript hoisting works for global variable.
Let's say I have following code snippet:
var a = 5;
function print(){
console.warn("a",a,b);
var a = 10;
b=5;
console.warn("a",a);
}
print();
In this case I am getting error "b is not defined". I wonder why Javascript hoisting is not working for global variable. I tried to look for this but getting results only for variable hoisting. Any thoughts??
回答1:
var
statements are hoisted. function declarations are hoisted. Assignments are not hoisted (to the extent that if you combine a var
statement with an assignment (var foo = 1
) then the declaration part is hoisted but the assignment is not).
来源:https://stackoverflow.com/questions/26753166/javascript-hoisting-for-global-variable