변수(variable)란 데이터(data)를 저장할 수 있는 메모리 공간에 이름을 붙인 것이며, 그 이름을 이용해 데이터를 변경할 수도 있다.
<aside> 💡 변수의 키워드를 빼고 변수이름만 있을 경우 전역변수가 된다.
</aside>
ES6이전 모든 변수의 예약어
함수 영역 스코프
선언 전에 실행해도 undefined 값을 가지는 호이스팅(hoisting)이 있을 수 있음
재할당과 재선언 가능
→ 자칫하면 예상못한 프로그램 오류 발생 가능
<aside> 💡 호이스팅(hoisting)
인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var
로 선언한 변수의 경우 호이스팅 시 undefined
로 변수를 초기화합니다. 반면 let
과 const
로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다.
</aside>
var 예약어의 문제점을 보완하여 ES6부터 var 대신 사용을 권장하는 예약어