This is the value returned when an undeclared variable is used, a variable that has been declared but not assigned a value is used, or an object property that does not exist is used.
Although undefined and null are not the same, the == operator treats them as equal, such as
my.prop == null
If the property prop does not exist, or if it exists but has a value of null, then this expression evaluates to true.
When an undefined value is used in a boolean environment, it is converted to false, when it is used in a numeric environment, it is converted to NaN, and when it is used in a string environment, it is converted to "undefined"