ES5까지 변수를 선언할 수 있는 유일한 방법은 var이었다....
하지만 var 키워드는 심각한 문제를 발생시킬 수 있었으니.....
- 변수 중복 선언을 허용했다. (변수 값이 재할당되어 변경되는 부작용)
- 함수 레벨 스코프만을 지역스코프로 인정 -> 전역 변수를 남발 -> 의도치 않게 중복 선언 되는 문제
- 변수 호이스팅에 의해 var 키워드로 선언한 변수는 변수 선언문 전에 참조할 수 있다.
ES6에서는 새로운 변수 키워드인 let, const를 도입했다....
- 변수 중복 선언을 금지했다.
- 블록 레벨 스코프를 따른다. 모든 코드 블록을 지역스코프로 인정 (함수, if문, while문, try/catch문)
- 변수 호이스팅이 발생하지 않는 것처럼 동작한다. (선언단계와 초기화단계가 분리되어 진행됨)
- let 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다. (let 전역 변수는 보이지 않는 블록 내에 존재하게 되는데, 그것은 전역 렉시컬 환경의 선언적 환경레코드라고 함..)
'Javascript' 카테고리의 다른 글
| [js] 함수와 일급 객체 (2) | 2025.01.21 |
|---|---|
| [js] 생성자 함수에 의한 객체 생성 (5) | 2025.01.21 |
| [js] Property Attribute (4) | 2025.01.20 |
| [js] 스코프 (3) | 2025.01.14 |
| [js] 객체에 대해서 ... (1) | 2025.01.13 |