[JavaScript] Literal, Variable, Constant

참고도서 : 러닝 자바스크립트

변수와 상수

변수 선언 및 할당

  • let currentTempC = 22; : currentTempC를 선언하고 초깃값을 할당하는 일을 한다.
  • currentTempC = 22.5 : 그 다음은 let을 쓰지 않는다. let은 변수 선언에만 쓰이고, 각 변수는 한 번만 선언할 수 있다.
  • let targetTempC; : 변수를 선언할 때 꼭 초깃값을 지정해야하는 것은 아니다. 초깃값을 할당하지 않으면 암시적으로 undefined가 할당된다.
  • let targetTempC, room1 = "conference_room_a", room2 = "lobby"; : let문 하나에서 변수를 여러 개 선언할 수 있다. targetTempC는 값을 할당하지 않아 암시적으로 undefined를 받는다. room1, room2는 문자열 변수이다.

상수

constES6에서 새로 생겼다. 상수도 변수와 같이 값을 할당받을 수 있지만, 한 번 할당한 값을 바꿀 수는 없다. 상수 역시 여러 개를 선언할 수 있다.

  • const ROOM_TEMP_C = 21.5, MAX_TEMP_C = 30; : 상수 이름에는 보통 대문자와 밑줄만 사용한다.

변수와 상수

변수와 상수 중 상수를 더욱 쓰려고 노력하여야한다. 데이터의 값이 바뀌는 것보다는 고정된 값이 이해하기 쉽다. 상수를 사용하면 값을 바꾸면 안될 데이터에서 실수로 바꾸는 일이 줄어든다.

따라서 우선 상수를 먼저 생각한다. 그 상수의 값이 바뀌는 것이 자연스럽다고 생각한다면 언제든지 변수로 바꿀 수 있다.

제어문, 루프 등에는 상수를 쓰면 안되고 변수를 써야한다. 시간이 지나면서 값이 바뀌는 경우에도 변수를 써야한다.

식별자 이름

변수나 상수, 함수 이름을 식별자라고 한다. 이엔 규칙이 있다.

  • 글자나 달러 기호($), 밑줄( _ )로 시작해야 하고 쓸 수 있다.
  • 유니코드 문자도 쓸 수 있다.
  • 예약어는 식별자로 쓸 수 없다.
  • 대문자로 시작해서는 안된다. 예외는 클래스 뿐이다.
  • 밑줄 한두 개로 시작하는 식별자는 아주 특별한 상황 또는 내부 변수에서만 사용한다.
  • 제이쿼리를 사용할 경우, 달러 기호로 시작하는 식별자는 제이쿼리 객체라는 의미이다.

리터럴

리터럴이란, 값을 프로그램 안에서 직접 지정한다는 의미이다. 리터럴은 값을 만드는 방법이다. 자바스크립트는 제공한 리터럴 값을 받아 데이터를 만든다.

let room1 = "conference_room_a";  // "conference_room_a"(따옴표 안은 리터럴이다.)

let currentRoom = room1;          // 이제 currentRoom의 값은
                                  // room1의 값("conference_room_a")과 같다.

currentRoom = conference_room_a;  // 에러가 일어난다.
                                  // conference_room_a란 식별자는 존재하지 않는다.

리터럴과 식별자의 차이를 이해하는 것이 중요하다! 자바스크립트는 따옴표를 통해 리터럴과 식별자를 구별한다. 식별자는 숫자로 시작할 수 없으므로 숫자에는 따옴표가 필요없다.