I happened upon something strange (at least to me), and maybe someone can elaborate on this for me:

```js
const a = undefined;
const c = {};

/** this works correctly **/
console.log(a === undefined);

/** this does not throw an exception **/
console.log(c.someProperty === undefined);

/** this throws an exception, why? **/
console.log(b === undefined);
```

Just is in the example above, why is it, that if I want to check for an objects property, with `=== undefined` which was not defined everything is okay, but as soon as I try to check for a top-level variable for being defined, I am getting an error?

Here's a [fiddle](https://jsfiddle.net/g0m9vrqe/).