전역변수명과 같은 이름의 지역변수를 함수 내부에 선언하게 되면 먼저 선언된 값이 변경된다.
var키워드로 선언한 변수는 전역변수가 된다.
변수 호이스팅에 의해 var키워드로 선언한 변수는 변수 선언문 이전에 참조할 수 있다. (할당문 이전에 참조하면 undefined를 반환함)
let키워드로 이름이 같은 변수를 중복 선언하면 문법 에러(Syntax Error)가 발생한다.
let키워드로 선언한 변수는 모든 코드블록을 지역 스코프로 인정한다.
var키워드로 선언한 전역변수, 전역함수는 전역객체 window의 프로퍼티가 된다.
let키워드로 선언한 전역 변수는 전역객체의 프로퍼티가 아니므로 window.foo와 같이 접근할 수 없다.
const키워드로 선언한 변수는 반드시 선언과 동시에 초기화를 해야한다.
const키워드로 선언한 변수는 재할당이 금지된다.
const의 특징을 이용해 상수를 표현하는 데 사용한다.
※ 상수 : 재할당이 금지된 변수
const키워드로 선언된 변수에 객체를 할당한 경우 값을 변경할 수 있다.
const person = {
name: 'Lee'
};
person.name = 'Kim';