개발공부/JavaScript

JavaScript에서 var을 쓰면 안되는 경우 (feat. var hoisting)

개발자 찐빵이 2022. 1. 18. 21:40
728x90

1. var hoisting

Hoisting : 어디에 선언했느냐에 상관없이 선언을 제일 위로 끌어올려주는 것.

var을 사용하면 hoisting이 되기 때문에 아래와 같은 이상한 행동을 할 수 있다.

  • 선언하기 전에 값을 할당
  • 값을 할당하기 전에 출력

2. block scope이 없다.

{
    variable = "I am a variable";
    var variable;
}
console.log(variable);

블럭 안에서 변수를 선언하고,
블럭 밖에서 변수를 출력할 수 있다.

3. 재선언이 가능하다.

var banana = "banana";
console.log(banana); // banana

var banana = "apple";
console.log(apple); // apple

바나나가 사과가 되는 기적..!
이게 에러 없이 가능하다.

그럼 변수 선언할 때 무엇을 사용해야 할까?

letconst를 사용하면 위 문제를 해결할 수 있다.

반응형