Notice that `x === void 0` is not always as same as `typeof x === 'undefined'` in browser context:
console.log(document.all === void 0); // false
console.log(document.all === null); // false
console.log(document.all == void 0); // true
console.log(typeof document.all); // 'undefined'
But it does not mean anyone of them is incorrect, since there is no defined behavior for such a monster thing in ECMAScript.