JavaScript

[자바스크립트] 변수 선언 키워드 let, const, var

뜻 지, 깨달음 오 2022. 10. 31. 11:55

변수 선언 키워드

  1. let: 지역변수를 선언
  2. const: 읽기 전용 상수 선언
  3. var: 변수를 선언

선언, 할당, 초기화

선언: 변수를 생성하는 행위 or 시점

할당: 선언된 변수에 값을 저장하는 행위 또는 시점

초기화: 선언된 변수에 처음으로 값을 저장하는 행위 또는 시점

블록 스코프

if for 함수 등의 중괄호 내부

블록 스코프를 가지는 변수는 바깥에서 접근 불가

let x = 1
if (x===1) {
	let x = 2
	console.log(x) //결과: 2
}

console.log(x) //결과: 1

 

 

변수 선언

let

재할당 가능, 재선언 불가능

let number =10 // 선언 및 초기값 할당
number = 20 // 재할당
let number = 10  // 선언 및 초기값 할당
let number = 20 // 재선언 불가

블록 스코프를 갖는 지역 변수를 선언

선언과 동시에 원하는 값으로 초기화 할 수 있음

const

재할당 재선언 둘다안됨

const number =10 // 선언 및 초기값 할당
number = 20 // 재할당 불가
const number = 10  // 선언 및 초기값 할당
const number = 20 // 재선언 불가

선언 시 반드시 초기값 설정해야됨. 그 이후 값 변경 불가

let과 동일하게 블록 스코프 가짐

var

재할당 재선언 둘다 됨

ES6 이전에 사용되던 키워드

“호이스팅” 되는 특성으로 인해 문제 발생 가능 (ES6 이후부터 var 사용x)

  • 호이스팅: 변수를 선언 이전에 참조할 수 있는 현상
  • var로 선언하면 선언 이전에 참조 가능
  • 선언 이전에 접근하면 undefined 반환
  • let이랑 const는 호이스팅 일어나면 에러 발생함

함수 스코프를 가짐 (함수 바깥에서 접근 불가)

 

키워드 재선언 재할당 스코프 비고
let X O 블록 스코프 ES6부터 도입
const X X 블록 스코프 ES6부터 도입
var O 함수 스코프 사용X