Да, как я и думал 

 Так заманила эта тема что решил таки попробовать 
 
undefined = 5;
alert(undefined);
var i;
undefined = void(i = undefined);
alert(i);
alert(undefined);
Сами куда нить засуньте и выполните 

Смысл вот в чем: после объявления переменной интерпретатору необходимо время на ее инициализацию, чтобы этого избежать мы используем уже имеющуюся, а после выполнения необходимого кода возвращаем ей значение. Все гениальное просто, а простое гениально 
 ПРЕДУПРЕЖДЕНИЕ
ПРЕДУПРЕЖДЕНИЕ не надо использовать такие подходы, они окупаются только в больших и сложных фреймворках, а в маленьких проектах могут натворить кучу бед!