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