I always wondered what was the purpose of the var keyword, since in JavaScript, you can just use a variable without declaring it.
Today I found out.
Say you have this code:
foo = 1;
function test() {
foo = bar;
}
test();
alert(foo);
// Result: 'bar'
It turns out that foo will be modified from the test() function.
If you are coming from PHP scripting, like I am, you will find this very unusual.
Now, if you used var:
foo = 1;
function test() {
var foo = 'bar';
}
test();
alert(foo);
// Result: 1
foo would remain unchanged.
It even works with functions declared as variables:
foo = 'something';
function test() {
var foo = function() {
alert('bar');
};
}
test();
alert(foo);
// Result: 'something'
So, var affects the variable scope:
Inside a function, all undeclared variables are global. Only those declared with var are local. This becomes very important when you have a lot of scripts running on the same page.
You could say that var is the opposite of the global keyword from PHP.