-
var : 함수단위 유효범위 (전역 스코프)
let, const (ES2015+) : 블럭단위 유효범위 (지역 스코프)
var
- 변수 중복 선언, 재할당 모두 가능
let
- 변수 중복 선언이 불가하지만, 재할당은 가능
let name = 'kmj' console.log(name) // output: kmj let name = 'howdy' // output: Uncaught SyntaxError: Identifier 'name' has already been declared name = 'howdy' console.log(name) // output: howdy
const
- 반드시 선언과 초기화를 동시에 진행되어야 한다.
const name; // output: Uncaught SyntaxError: Missing initializer in const declaration const name = 'kmj'
- 변수 재선언과 재할당이 모두 불가 (재할당의 경우, 원시 값은 불가능하지만, 객체는 가능)
// 원시값의 재할당 const name = 'kmj' name = 'howdy' // output: Uncaught TypeError: Assignment to constant variable. // 객체의 재할당 const name = { eng: 'kmj', } name.eng = 'howdy' console.log(name) // output: { eng: "howdy" }
[참고]
'Blog > JavaScript' 카테고리의 다른 글
조건문 업그레이드 (0) 2022.02.11 단락 회로 평가 (0) 2022.02.11 댓글