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.
undefinedmeans that the variable isn't yet defined, that's the normal behavior.node.js.. Will behave exactly same in the browser!