식별자 정의와 특징
식별자는 변수를 구분할 수 있는 변수명을 말함
식별자는 반드시 문자, $, _ 로 시작
대소문자를 구분하며, 클래스명 외에는 모두 소문자로 시작
예약어 사용 불가능
카멜 케이스
파스칼 케이스
대문자 스네이크 케이스
변수 선언 키워드
let
const
var
[참고] 선언, 할당, 초기화
변수 선언 키워드 - let
let
재할당 가능 & 재선언 불가능
블록 스코프를 갖는 지역 변수를 선언,
선언과 동시에 원하는 값으로 초기화 할 수 있음
const
재할당 불가능 & 재선언 불가능
선언 시 반드시 초기 값을 설정해야 하며, 이후 값 변경이 불가능
let
과 동일하게 블록 스코프를 가짐
[참고] 블록 스코프(Block scope)
- if, for, 함수 등의 중괄호({}) 내부를 가리킴
- 블록 스코프를 가지는 변수는 블록 바깥에서 접근 불가능
변수 선언 키워드 - var
var
var
대신 const
와 let
을 사용하는 것을 권장변수 선언시 var, const, let 키워드 중 하나를 사용하지 않으면 자동으로 var로 선언됨
[참고]함수 스코프(function scope)
- 함수의 중괄호 내부를 가리킴
- 함수 스코프를 가지는 변수는 함수 바깥에서 접근 불가능
[참고] 호이스팅(hoisting)
- 변수를 선언 이전에 참조할 수 있는 현상
- var로 선언된 변수는 선언 이전에 참조할 수 있으며, 이러한 현상을 호이스팅이라 함
- 변수 선언 이전의 위치에서 접근 시 undefined를 반환
- 즉, JavaScript에서 변수들은 실제 실행시에 코드의 최상단으로 끌어 올려지게 되며(hoisted) 이러한 이유 때문에 var로 선언된 변수는 선언 시에 undefined로 값이 초기화되는 과정이 동시에 일어남
- 반면 let, const는 호이스팅이 일어나면 에러를 발생시킴
- 변수를 선언하기 전에 접근이 가능한 것은 코드의 논리적인 흐름을 깨뜨리는 행위이며 이런한 것을 방지하기 위해 let,const가 추가됨
- 즉 var는 사용하지 않아야 하는 키워드
- 다만, 아직까지도 많은 기존의 JavaScript코드는 ES6 이전의 문법으로 작성되어 있으므로 호이스팅에 대한 이해가 필요
변수 선언 키워드 정리