I have this code
var Variable = "hello";
function say_hello ()
{
alert(Variable);
var Variable = "bye";
}
say_hello();
alert(Variable);
Now, when I first read this code, I thought it will alert "hello" two times, but the result I get is that it alerts "undefined" the first time, and "hello" second time. can someone explains to me why ?
In JavaScript, all var
declarations in a function are treated as if they appeared at the very top of the function body, no matter where they actually are in the code. Your function therefore was interpreted as if it were written like this:
function say_hello() {
var Variable;
alert(Variable);
Variable = "bye";
}
Note that it's just the declaration that's interpreted that way; the initialization expression happens where the var
actually sits in your code. Thus, your function defined a local variable called "Variable", which hid the more global one. At the point the alert()
ran, the variable had not been initialized.
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