LHJ

I'm a FE developer.

3.1 변수와 상수

18 Apr 2020 » js_lj

변수(variable) 란 간단히 말해 이름이 붙은 값으로, 변수라는 이름이 암시하듯 값은 언제든 바뀔 수 있습니다.
예를 들어 날씨에 관한 프로그램을 만든다면 currentTempC 라는 변수를 사용할 수 있을 겁니다.

let currentTempC = 22;  // 섭씨온도

NOTE_ let 키워드는 ES6에서 새로 생겼습니다.
ES6 이전에는 var 키워드만 사용할 수 있었는데, var에 대해서는 7장에서 설명합니다.

currentTempC = 22.5;

이번에는 let을 사용하지 않았습니다.
let은 변수 선언에만 쓰이고, 각 변수는 한 번만 선언할 수 있습니다.

TIP 단위가 필요한 숫자에서 단위와 값을 명확히 연결하는 방법은 없습니다.
즉, 언어의 기능에는 currentTempC가 섭씨온도라고 명확히 규정할 방법이 없습니다.
그런데 이 변수에 화씨온도를 할당하면 예상치 못한 결과가 나올 겁니다.
따라서 필자는 변수 이름에 C를 붙여서 섭씨(Celsius) 단위임을 명확히 나타내고자 했습니다.
자바스크립트는 이런 규칙을 강제할 수 없지만, 이런 규칙은 작은 실수를 방지하는 일종의 문서화입니다.

변수를 선언할 때 꼭 초깃값을 지정해야 하는 건 아닙니다.
초기값을 할당하지 않으면 암시적으로 특별한 값 undefined가 할당됩니다.

let targetTempC; // let targetTempC = undefined; 와 같습니다.

let문 하나에서 변수 여러 개를 선언할 수 있습니다.

let targetTempC, room1 = "conference_room_a", room2 = "lobby";

위 예제에서는 변수 세 개를 선언했습니다.
targetTempC는 값을 할당하지 않았으므로 암시적으로 undefined를 받습니다.
room1은 선언과 동시에 "conference_room_a"를 할당했고, room2 역시 선언과 동시에 "lobby"를 할당했습니다.
room1room2문자열(텍스트) 변수입니다.

상수(constant)ES6에서 새로 생겼습니다.
상수도 변수와 마찬가지로 값을 할당받을 수 있지만, 한 번 할당한 값을 바꿀 수는 없습니다.
상수를 써서 쾌적한 온도와 최고 온도를 지정해 봅시다.
const 역시 상수 여러 개를 선언할 수 있습니다.

const ROOM_TEMP_C = 21.5, MAX_TEMP_C = 30;

절대적인 규칙은 아니지만, 상수 이름에는 보통 대문자와 밑줄만 사용합니다.
이런 규칙을 따르면 코드에서 상수를 찾기 쉽고, 상수의 값을 바꾸려 하지도 않게 됩니다.