Это тоже hoisting (поднятие) переменной?
Если вы прописываете этот код в консоли не обновляя страницу, то в итоге получается вы ввели такой код:console.log(x);//undefined
console.log(x);//undefined
console.log(x);//undefined
console.log(x);//undefined
console.log(x);//undefined

var x = 5;

console.log(x);//5
console.log(x);//5
console.log(x);//5
console.log(x);//5
console.log(x);//5

var x = 5;
В общем всё логично.
Нет,  тут у тебя просто x остался определен.