var은 함수 스코프를 가진 변수 키워드임

function some() {
  var x = 10; // x는 some함수 내에서만 참조 가능
}

function some() {
  if (1) {
     var x = 10
  }
}
이건
호이스팅으로 인해

function some() {
  var x
  if (1) {
    x = 10
  }
}

과 같음 그래서 some내에서는 어디서든 참조 가능

function some() {
  var x = 10
}
function any() {
  console.log(x) // any 함수 스코프 내에 x가 있는지 보고 없으면 전역에서 x를 찾고 없으면 undefined
}

즉 함수 범위에서만 참조 가능


일반적으로 다른 언어는 지역 범위

블록 스코프 블록 안에서만 접근 가능하고

var은 함수 최상단으로 선언이 호이스팅(끌어올림)되기 때문에  

함수 블록내 어디서든 접근 됨