우리는 이미 리터럴(literal) 을 사용했습니다.
앞에서 currentTempC에 값을 할당할 때 사용한 22
와 22.5
가 숫자형 리터럴입니다.
마찬가지로, room1을 초기화 할 때 문자열 리터럴인 "conference_room_a"
를 사용했습니다.
리터럴이라는 단어는 값을 프로그램 안에서 직접 지정한다는 의미입니다.
리터럴은 값을 만드는 방법입니다.
자바스크립트는 당신이 제공한 리터럴 값을 받아 데이터를 만듭니다.
리터럴과 식별자(identifier) 의 차이를 이해하는 것이 중요합니다.
예를 들어 앞에서 room1 변수에 값 "conference_room_a"
을 할당한 것을 생각해 봅시다.
room1은 변수를 가리키는 식별자입니다.
그리고 "conference_room_a"
은 문자에 리터럴인 동시에 room1의 값입니다.
자바스크립트는 따옴표를 통해 리터럴과 식별자를 구분합니다.
식별자는 숫자로 시작할 수 없으므로 숫자에는 따옴표가 필요 없습니다.
다음 예제를 보십시오.
let room1 = "conference_room_a"; // "conference_room_a"(따옴표 안)은 리터럴입니다.
let currentRoom = room1; // 이제 currentRoom의 값은
// room1의 값 ("conference_room_a")과 같습니다.
currentRoom = conference_room_a; // 에러가 일어납니다.
// conference_room_a 란 식별자는 존재하지 않습니다.
TIP 식별자를 써야 하는 곳, 다시 말해 값이 필요한 곳에는 어디든지 리터럴을 쓸 수 있습니다.
예를 들어 프로그램에서 ROOM_TEMP_C가 있는 곳 어디든 숫자형 리터럴 21.5를 써도 됩니다.
숫자형 리터럴을 한두군데 쓰는 정도라면 이렇게 해도 괜찮습니다.
하지만 그런 곳이 10개, 또는 100개쯤 된다면 상수나 변수를 써야 합니다.
상수나 변수를 쓰면 코드를 이해하기 쉽고 값을 바꿀 때도 한 곳에서만 바꾸면 됩니다.
어디에 변수를 쓰고 어디에 상수를 쓸지 결정하는 것은 프로그래머의 몫입니다.
어떤 경우는 상수를 쓰는 것이 거의 확실합니다.
예를 들어 파이의 근삿값이나 DAYS_IN_MARCH 같은 경우는 상수가 적절합니다.
ROOM_TEMP_C 처럼 모호한 경우도 있습니다.
필자는 21.5도라는 온도를 아주 쾌적한 온도라고 생각하지만, 그렇게 생각하지 않는 사람도 있을 겁니다.
따라서 이 값을 애플리케이션 안에서 바꿀 수 있어야 한다면 변수를 쓰는 게 맞습니다.