In fact in JavaScript undefined
means that the variable isn't yet defined, so basically :
typeof a
returns undefined
because the variable a
was only declared but not initialized yet (there's no value assigned to it).
And typeof b
returns undefined
because the variable b
is not yet declared, so isn't defined.
And if there's no value assigned to a variable, it gets the type undefined
because as type can't be determined.
So if you check the MDN typeof specification you will see that :
The typeof
operator returns a string indicating the type of the unevaluated operand, and if you see types table you can see that undefined
is a primitive type and one of the possible return values of typeof
.
Examples:
And you can see in the Examples section, the undefined return:
// Undefined
typeof undefined === 'undefined';
typeof declaredButUndefinedVariable === 'undefined';
typeof undeclaredVariable === 'undefined';
Note:
And as stated in comments this is only related to JavaScript syntax and doesn't have anything to do with nodejs.