В чем практические отличия null от undefined?
Если вкратце, то:
null - ожидаемая пустота
undefined - неожиданная пустота
var a;
while (typeof a == 'undefined') {
    if (... какое-то изменяемое условие...) {
        a = ...null или любое другое значение...; //после этого цикл прервётся
    }
}