본문 바로가기

■ 프로그래밍/JavaScript

변수(Variables) 및 변수 생성(Create) - var, let, const

프로그래밍에서 변수는 어떠한 값을 위한 컨테이너라고 생각하면 된다. 변수는 컴퓨터 메모리에 존재하는 정보를 담은 작은 컨테이너이다. 다시 말해, 변수는 메모리에 데이터를 적고 저장(label and stored data)하는 것이다. 

 

변수명 작성 규칙

- 변수명은 문자, 밑줄(_), 달러 기호($) 등으로 시작할 수 있으며 한글은 사용할 수 없다. 

- 변수명 작성 시, 숫자가 맨 앞에 올 수 없다. 

- 자바스크립트의 예약어는 변수명으로 사용 불가하다(ex. for, while, var, class 등, 전체 보기: MDN’s keyword documentation)

- 변수명에는 띄어쓰기를 못 쓰기 때문에 주로 캐멀케이스로 작성된다. (ex. userName, accountNumber)

- 변수명은 대소문자를 구분한다. myName과 myname은 다른 변수이다. 

 

변수 선언과 초기화는 var, let, const로 할 수 있다. 

 

var

2015년에 ES6에서 소개 된 가장 큰 변화는 변수 선언을 let과 const로도 할 수 있다는 점이다. 그 전까지는 오직 var로만 변수 선언을 할 수 있었다. 

var myName = 'MJ';
console.log(myName); // output: MJ
1. var: 변수 생성(create) 및 선언(declare)
2. myName: 변수명
3. =: 할당 연산자(assignment operator), 'MJ'를 변수(myName)에 할당
4. 'MJ': myName이 'MJ'로 초기화 됨(initialized)
5. 값이 선언되고, 문자열 'MJ'을 변수명을 이용하여 콘솔에 출력

var에 대해 더 알아보기: MDN var documentation

 

let

let은 변수가 다른 값으로 재할당 될 수 있다. 

let meal = 'Pizza';
console.log(meal); // output: Pizza
meal = 'Hamburger';
console.log(meal); // output: Hamburger

let이나 var로 변수의 값이 없는 상태로 할당할 경우, 자동적으로 초기화되어 undefined가 할당된다.

let day;
console.log(day); // output: undefined
day = 25;
console.log(day); // output: 25

 

const

const는 constant(변함없는, =fixed)의 이미로 값을 재할당할 수 없다. 따라서 보통 절대 바뀌면 안되는 변수를 const로 할당한다. 만약 변수를 재할당 할 경우, TypeError가 뜰 것이다. 

const myName = 'MJ';
console.log(myName); // output: MJ

그리고 const로 변수를 할당할 때, 반드시 변수 값을 작성해야 한다. 만약 const로 변수 값 없이 변수를 생성하려하면 SyntaxError가 날 것이다. 

 

ES6에서 let과 const가 나오면서, var를 거의 쓰지 않는 추세이다. 보통 const로 변수를 할당하고, 바뀔 일이 있다면 let으로 바꾼다.