JavaScript에서 var
로 변수 선언에 대해 알아보기
과거에는 JavaScript에서 변수를 선언할 때 var
키워드를 주로 사용했습니다. 그러나 let
과 const
가 도입된 이후, var
는 사용되지 않는 경우가 많습니다. 그래도 여전히 기존 코드나 오래된 자료에서 var
를 볼 수 있으니, var
의 특징과 사용이 줄어든 이유에 대해 알아보겠습니다.
var
변수의 선언과 사용var
키워드는 let
과 유사하게 변수 이름을 지정하여 변수를 선언할 수 있습니다. 선언과 동시에 값을 할당할 수도 있습니다.
예시:
var myVariable;
myVariable = 'codeit';
var myVariable = 'codeit'; // 선언과 동시에 할당
var
의 단점과 사용이 줄어든 이유중복 선언 허용
var
키워드로 선언된 변수는 중복 선언이 가능합니다. 기존 변수에 값이 재할당되는 것이 아니라 변수 선언 자체가 다시 이루어져 코드에서 오류를 유발할 수 있습니다.var myVariable = 'codeit';
console.log(myVariable); // 'codeit'
var myVariable = 'Codeit!';
console.log(myVariable); // 'Codeit!'
이처럼 중복 선언을 허용하면 변수 이름이 의도치 않게 중복되어 코드의 가독성과 안정성이 떨어집니다.
함수 스코프
var
키워드는 함수 스코프만을 따르며, 블록 스코프를 따르지 않습니다.let
과 const
와 달리, var
로 선언된 변수는 함수 블록에서만 구분됩니다.{
var x = 3;
}
console.log(x); // 3
function myFunction() {
var y = 4;
}
console.log(y); // Uncaught ReferenceError: y is not defined
이처럼 함수 스코프에 의존하면 블록 스코프를 활용할 수 없어 코드의 의도에 맞게 동작하지 않을 수 있습니다.
호이스팅 (Hoisting)
var
로 선언한 변수는 코드 실행 전에 스코프의 최상단으로 "끌어올려져" 사용됩니다. 이를 호이스팅이라고 부르며, 코드의 흐름을 혼란스럽게 할 수 있습니다.console.log(myVariable); // undefined
var myVariable = 2;
console.log(myVariable); // 2
이처럼 var
변수는 선언되기 전에 접근이 가능하여 예상하지 못한 결과를 초래할 수 있습니다.
sayHi();
function sayHi() {
console.log('hi');
}
이 코드에서 함수 호출이 함수 선언보다 위에 위치해도 오류 없이 작동합니다. 하지만, 이는 코드 흐름을 방해할 수 있습니다.
var
키워드는 과거 JavaScript에서 변수를 선언할 때 사용되었지만, 중복 선언 허용, 함수 스코프, 호이스팅 등의 이유로 현재는 잘 사용되지 않습니다. 코드를 작성할 때는 가능하면 let
과 const
를 사용해 안정성과 가독성을 높이세요.