null
You are probably familiar with a special value in JavaScript called null
. This is a value you can assign to a variable when you want to indicate that the variable has no particular value.
Well, kind-of. The fact is, null is a value, too -- just like true, false, NaN, and Infinity.
Contrary to popular belief, unassigned variables (and object properties) do not begin with a default value of null
. Instead, they begin with a special value called undefined.
Although it's difficult to distinguish between undefined and null
, the two values are, in fact, distinct, as demonstrated in the following scripts.
In Script 1, value
equals undefined because window
does not have a property named wiper
. In Script 2, however, value
is defined: It is defined as null
. Script 3 demonstrates that when undefined is compared to null
, the result is true
. But null
also equals null
, as shown in Script 4.
So what does all this mean? Fortunately, not much: In most cases, there is little need to distinguish between null
and undefined. However, if you have a habit of comparing variables to null
just to see if they are defined, don't forget that the results may be inconclusive. A true comparison means either that the variable is undefined or that the variable has been defined as null
.
Charlton Rose
June 11, 1997