■ 프로그래밍/JavaScript

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

hi_mj 2020. 1. 25. 23:42

프로그래밍에서 변수는 어떠한 값을 위한 컨테이너라고 생각하면 된다. 변수는 컴퓨터 메모리에 존재하는 정보를 담은 작은 컨테이너이다. 다시 말해, 변수는 메모리에 데이터를 적고 저장(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으로 바꾼다.