# Understanding The 'typeof' Operator and Null Values in JavaScript
JavaScript has an operator called `typeof` that is used to identify the data type of a value. When you use it with `null`, it doesn't respond like one might expect. That is, when you try to find the data type of a `null` value, JavaScript returns `'object'` instead of `'null'`.
Let's look at a small example to understand this concept:
```javascript
var value = null;
console.log(typeof value); // Output: 'object'
```
In this example, we declare a variable `value` and assign the `null` value to it. When we subsequently inquire the type of the variable `value` using the `typeof` operator, we get an output of 'object'. This is an unusual behavior, considering that `null` is generally used to represent a non-existing or invalid object or address.
This idiosyncrasy in JavaScript comes from its initial implementation where data types were represented by a pair of bits, with the binary pattern for null being all zeros. The definition for the `typeof` operator was also designed in a way that undefined and unallocated values, which were represented as null, were considered as type `object`.
This leads to a small pitfall, as you can't reliably use `typeof` to check if a value is null. If you need to check for `null`, it's better to use strict equality (`===` or `!==`).
```javascript
var value = null;
if (value === null) {
console.log('Value is null');
}
```
In this code, we're not asking JavaScript what the type of value is, but instead, we're comparing `value` directly to `null`. This method circumvents JavaScript's quirkiest behavior and gives us the result we want.
To sum up, `typeof null` in JavaScript will return `'object'`. Remember this peculiarity when working with JavaScript, especially in situations where you need to check if a value is `null`. For precise checks, use strict equality instead of `typeof`.