Используя var внутри function вы делаете переменную доступной только
локально внутри function.
var x = 1;
//тут дотупно x
function a(){
var y = 2;
//тут дотупно x, y
function b(){
var z = 3;
//тут дотупно x, y, z
function c(){
//тут дотупно x, y, но z == undefinded, т.к. ниже использовано var и объявлена локальная z
var z = 100500;
//тут дотупно x, y, z, где z == 100500, но это никак не влияет на z которая "выше", та всё ещё равна 3, но отсюда уже напрямую не доступна
}
}
}