I\'ve found many definitions of the \'var\' statement but most of them are incomplete (usually from introductory guides/tutorials). Should I use \'var\' if the variable &
Nope, the order in which names are defined when entering an execution scope is as follows:
undefined
)arguments
(with value of arguments if doesn't exist)undefined
if doesn't exist)This means that in this code, foo
refers to the function parameter (which could easily be changed):
function foo(foo) {
var foo;
alert(foo);
}
foo(1); // 1
If you're using a function declaration inside for foo
, that body will override all others. Also, note that this means that you can do this:
function foo(arguments) {
alert(arguments);
}
foo(); // undefined
foo(1); // 1
Don't do that.