* Undefined
* Null
* Number
* BigInt
* String
* Boolean
Here, calling <code>isUndefined(my_var)</code> raises a {{mono|ReferenceError}} if {{mono|my_var}} is an unknown identifier, whereas {{code|lang=javascript|code=typeof my_var === 'undefined'}} doesn't.
Unlike undefined, [[Null Object pattern|null]] is often used to acknowledge the absence of a value, such as declaring a variable as <tt>null</tt> to represent that the variable is defined, but does not have a value. In a Boolean context, the value of null is considered a false value in JavaScript.
Note: Null is a true primitive-type within the JavaScript language, of which {{mono|null}} (note case) is the single value. As such, when performing checks that enforce type checking, the null value will not equal other false types. Carried over from early days of JavaScript, <tt>null</tt> is considered an object by <tt>[[typeof]]</tt><ref>https://2ality.com/2013/10/typeof-null.html</ref>
<syntaxhighlight lang="javascript">
null == undefined; // unenforced type during check, => true
null === undefined; // enforced type during check, => false
typeof null === 'object'; // => true
</syntaxhighlight>
It's helpful to recognize <tt>null</tt> as a different value than <tt>undefined</tt>. For example, a function could return <tt>null</tt> to represent that a given argument is not within the parameters of the function, or that an action could not be completed.
===Number===
console.log(a == a); // false
</syntaxhighlight>
BigInt is a built-in object that provides a way to represent whole numbers larger than 2<sup>53</sup> - 1, which is the largest number JavaScript can reliably represent with the Number primitive and represented by the Number.MAX_SAFE_INTEGER constant. BigInt can be used for arbitrarily large integers.
=== String ===
|