중복 선언 및 값의 재할당에 따른 부작용, Side Effect 발생
var 키워드로 선언된 변수는 오직
코드블록(함수)
만지역 스코프
로 인정됨,
전역변수 생성을 남발하게 되는 문제가 발생.
var 키워드로 선언한 변수는 선언문 이전에 참조 가능하지만,
할당문 이전에 참조하면 undefined를 반환.
동일한 이름의 변수를 선언 시 문법 에러가 발생하게 됨.
var 키워드와 달리 모든
코드 블록
을 지역 스코프로 인정
변수 호이스팅은 발생하나, 마치 발생하지 않는것처럼 동작됨.
선언문 이전에 변수를 참조하면 참조에러를 발생시키며, 선언 단계와 변수값 초기화 단계를 분리해둠.
const 키워드로 선언한 변수는 선언과 동시에 초기화가 이루어짐.
재할당이 가능한 let 키워드와는 달리 const는 재할당을 허용하지 않는다.
const 키워드로 선언된 변수에
객체
를 할당한 경우값을 변경 할 수 있음
즉 프로퍼티 동적 생성, 삭제, 값의 변경을 통해 객체 변경하는 것은 가능하다.