Hacker News new | ask | show | jobs
by typicalbender 2715 days ago
This stack overflow[1] post goes into some more detail about why specifically that syntax.

tl;dr is that you can actually redefine the keyword `undefined` since its actually a global property and not reserved. void 0 will always return you the true value of undefined so it will work in all cases regardless of external shenanigans. Pretty neat.

[1] https://stackoverflow.com/questions/7452341/what-does-void-0...

2 comments

> you can actually redefine the keyword `undefined` since its actually a global property and not reserved

This is horrible :(

Undefined on the global object has been read only since es3.1 I think.

However you can still declare variables named undefined that get their own storage and so can have any value. Originally “undefined” didn’t exist in the global scope so many sites had “var undefined” or function f(..., undefined){..} to get a reference to the value.