JS has several built-in types: Undefined, Null, Boolean, Number, String, and Symbol. The first values worry me at first glance, could this be the first hint of code smell? In C++, there is the std::nullptr_t type, and in Java we have the void type. I would maybe map these to the Null type in JS, although I’ve never coded in JS extensively so I may be wrong. Even so, the need for Undefined is possibly strange. Exploring this further by consulting our Oracle, Stackoverflow, its stated that “the undefined value is a primitive value used when a variable has not been assigned a value. The null value is a primitive value that represents the null, empty, or non-existent reference.”  Additionally, the following quote was found in a reputable JS book.
By Nicholas C. Zakas
This seems messy, and further exploration revealed the same sad truth stated a different way, now mentioning that the bug was kept for backward compatibility: “The fact that
typeof null returns
object is a well known and documented bug in early versions of ECMAScript that has remained for backwards-compatibility.” Bugs in one of the most core components of a language, the built-in type system, scare me. To Be Continued.