Почему у неинициализированной переменной значение 0?
Потому что так сложились звезды. Потенциально, вывод может быть любым, потому он и undefined. Ноль - входит в множество всевозможных вариантов
Потому что у них стоят значения по умолчанию. а по умолчанию - это ноль.