티스토리 뷰
- var:
- 함수 스코프를 가짐: 함수 내에서 선언된 변수는 함수 내에서만 유효함.
- 호이스팅(hoisting): 변수 선언이 스코프의 맨 위로 옮겨짐.
- 재선언 가능: 같은 변수를 여러 번 선언할 수 있음.
- 키워드 생략 가능
- 사용 사례:
- 과거의 JavaScript 코드에서 주로 사용됨.
- 함수 스코프를 가지므로 함수 내 어디서든 접근 가능한 변수를 선언할 때 사용됨.
- 장점:
- 호이스팅에 의해 변수 선언이 스코프의 맨 위로 끌어올려짐.
- 변수를 여러 번 선언할 수 있어도 오류가 발생하지 않음.
- 단점:
- 함수 스코프를 가지므로 블록 레벨 스코프를 만들 수 없음.
- 값이 재할당될 수 있어서 예기치 못한 버그를 유발할 수 있음.
- 긴 생명주기
- 중복 선언(변수에 예상치 않은 값이 들어있을 수 있음)
- 사용 사례:
- let:
- 블록 스코프를 가짐: 블록 {} 내에서만 유효함.
- 호이스팅: 변수 선언은 호이스팅되지만 초기화는 호이스팅되지 않음.
- 재선언 불가능: 같은 이름의 변수를 한 번만 선언할 수 있음.
- 값의 재할당 가능: 변수의 값을 다시 할당할 수 있음.
- 사용 사례:
- 블록 스코프를 가지는 변수를 선언할 때 사용됨.
- 값이 재할당될 수 있는 변수를 사용할 때 사용됨.
- 장점:
- 블록 스코프를 가지므로 블록 내에서만 유효한 변수를 생성할 수 있음.
- 값이 재할당 가능하여 유연성을 가짐.
- 단점:
- 호이스팅에 의해 변수 선언은 스코프의 맨 위로 끌어올려짐.
- 같은 이름의 변수를 다시 선언할 수 없음.
- 사용 사례:
- const:
- 블록 스코프를 가짐: 블록 {} 내에서만 유효함.
- 호이스팅: 변수 선언은 호이스팅되지만 초기화는 호이스팅되지 않음.
- 재선언 불가능: 같은 이름의 변수를 한 번만 선언할 수 있음.
- 값의 재할당 불가능: 한 번 할당한 값은 변경할 수 없음.
- 사용 사례:
- 변하지 않는 상수를 선언할 때 사용됨.
- 블록 스코프를 가지는 상수를 선언할 때 사용됨.
- 장점:
- 값의 재할당이 불가능하여 코드의 안정성을 높임.
- 블록 스코프를 가지므로 블록 내에서만 유효한 상수를 생성할 수 있음.
- 단점:
- 한 번 선언한 값은 변경할 수 없기 때문에 유연성이 떨어짐.
- 선언과 동시에 값을 할당해야 하므로 나중에 값을 할당할 수 없음.
- 사용 사례:
언제 어떤 키워드를 사용해야 할까요?
- 변수가 재할당되어야 하는 경우에는 let을 사용합니다.
- 변수가 상수이며 재할당되지 않아야 하는 경우에는 const를 사용합니다.
- 함수 스코프를 가지는 변수가 필요한 경우에는 var를 사용합니다. 하지만 ES6 이후에는 let과 const를 사용하는 것이 권장됩니다.