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

+ Recent posts