Before you use a variable in a JavaScript program, you must declare it.[12] Variables are declared with the var keyword, like this:
[12]If you don't declare a variable explicitly, JavaScript will declare it implicitly for you.
var i; var sum;
You can also declare multiple variables with the same var keyword:
var i, sum;
And you can combine variable declaration with variable initialization:
var message = "hello"; var i = 0, j = 0, k = 0;
If you don't specify an initial value for a variable with the var statement, the variable is declared, but its initial value is undefined until your code stores a value into it.
Note that the var statement can also appear as part of the for and for/in loops (introduced in Chapter 6), allowing you to succinctly declare the loop variable as part of the loop syntax itself. For example:
for(var i = 0; i < 10; i++) document.write(i, "<br>"); for(var i = 0, j=10; i < 10; i++,j--) document.write(i*j, "<br>"); for(var i in o) document.write(i, "<br>");
Variables declared with var are permanent: attempting to delete them with the delete operator causes an error. (The delete operator is introduced in Chapter 5.)
It is legal and harmless to declare a variable more than once with the var statement. If the repeated declaration has an initializer, it acts as if it were simply an assignment statement.
If you attempt to read the value of an undeclared variable, JavaScript will generate an error. If you assign a value to a variable that you have not declared with var, JavaScript will implicitly declare that variable for you. Note, however, that implicitly declared variables are always created as global variables, even if they are used within the body of a function. To prevent the creation of a global variable (or the use of an existing global variable) when you meant to create a local variable for use within a single function, you must always use the var statement within function bodies. It's best to use var for all variables, whether global or local. (The distinction between local and global variables is explored in more detail in the next section.)
Copyright © 2003 O'Reilly & Associates. All rights reserved.