JavaScript `undefined` vs `void 0`

javascriptundefinedvoid

What exactly is the difference between undefined and void 0 ?

Which is preferred and why?

Best Solution

The difference is that some browsers allow you to overwrite the value of undefined. However, void anything always returns real undefined.

undefined = 1;
console.log(!!undefined); //true
console.log(!!void 0); //false