[javascript] 함수 스코프와 var의 특징

자바스크립트에서 변수를 선언할 때 var 키워드를 사용하면 해당 변수는 함수 스코프를 갖게 됩니다. 이것은 다른 언어에서 주로 사용되는 블록 스코프와는 다른 동작 방식을 갖습니다.

함수 스코프

함수 스코프는 함수 내부에서 정의된 변수가 해당 함수 내에서만 유효하다는 것을 의미합니다. 이것은 변수가 선언된 함수 내부에서만 접근할 수 있다는 것을 의미합니다. 함수 스코프는 코드의 유지보수와 디버깅을 용이하게 합니다. 또한, 함수 스코프를 이용하여 변수의 충돌을 피할 수 있습니다.

var 키워드의 특징

var 키워드로 선언된 변수는 변수가 선언된 함수 내에서만 유효합니다. 하지만, 변수를 선언하기 전에도 참조할 수 있고, 다시 선언할 수도 있습니다. 이러한 특징은 실수로 중복 선언되거나 잘못된 값을 할당할 가능성을 내포하므로 주의가 필요합니다.

function example() {
  if (true) {
    var message = "Hello!";
  }
  console.log(message); // "Hello!"
}

위의 예제에서 var 키워드로 선언된 message 변수는 if 블록 내에서 선언되었지만, 함수 내 어디서든지 접근할 수 있습니다.

결론

var 키워드를 사용하면 함수 스코프를 갖는 변수를 생성할 수 있습니다. 그러나 var 키워드는 선언 전에 참조할 수 있고 중복 선언이 가능하기 때문에 유의해야 합니다.

함수 스코프와 var의 특징을 이해하면 변수의 범위와 생명주기를 더욱 명확하게 이해할 수 있습니다.

참고 문헌: MDN Web Docs - var