To assign a value to a previously declared variable, use the assignment operator, =
:
a = 6;
b = "Foo";
As an alternative to independent declaration and assignment, it is possible to perform both steps in one statement:
var a = 6;
let b = "Foo";
It is in this syntax that global variables may be declared without a keyword; if one were to declare a bare variable without an assignment immediately afterword, the interpreter would not be able to differentiate global declarations a;
from references to variables a;
.
c = 5;
c = "Now the value is a String.";
myNewGlobal; // ReferenceError
Note, however, that the above syntax is generally discouraged and is not strict-mode compliant. This is to avoid the scenario in which a programmer inadvertently drops a let
or var
keyword from their statement, accidentally creating a variable in the global namespace without realizing it. This can pollute the global namespace and conflict with libraries and the proper functioning of a script. Therefore global variables should be declared and initialized using the var
keyword in the context of the window object, instead, so that the intent is explicitly stated.
Additionally, variables may be declared several at a time by separating each declaration (and optional value assignment) with a comma. Using this syntax, the var and let keywords need only be used once at the beginning of each statement.
globalA = "1", globalB = "2";
let x, y = 5;
var person = 'John Doe',
foo,
age = 14,
date = new Date();
Notice in the preceding code snippet that the order in which declaration and assignment expressions occur (var a, b, c = 2, d;
) does not matter. You may freely intermix the two.
Function declaration effectively creates variables, as well.