var a = 5;
function a() {
return 10;
}var a;
function a() {
return 10;
}var больше не стоит использовать, вообще. Только let и const.var a = 5; — тут происходит 2 вещи: function a() уплывает наверх выше назначения a = 5, которое оказывается после всех деклараций. Можно даже так:function a() {
return 10;
}
a = 5;Это, по сути, и происходит в 1-м примере.