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.