상수
JS에서 변수를 선언할 때 사용하는 키워드는 var, let, const가 있다. 이 중 변하지 않는 변수(상수) 를 선언할 때는 var, let 대신 const를 사용한다.
const birthday = '2000. 02. 29';위 처럼 const로 선언한 변수를 상수라고 부른다. 상수는 값의 재할당이 불가능 하고, 변경을 시도하면 에러가 발생한다. 따라서 값의 변경이 일어나지 않는다고 개발자가 인지할 수 있는 경우 실수를 방지하기 위해 const 를 사용하여 변수를 선언하는 것을 권장한다.
일반 변수 및 상수 표기법
일반적으로 변수 혹은 상수명을 표기할 때 카멜 케이스(camelCase) 를 많이 사용한다.
let userName = 'testuser';
const userBirthday = '2000. 02. 29';대문자 상수
대문자 상수도 일반 상수와 마찬가지로 const를 사용하여 선언한다. 일반 상수와 기능적인 차이는 없으며 코드의 가독성을 위해 표기법의 차이만 있다.
대문자 상수 표기법
대문자 변수를 표기할 때는 보통 어퍼 케이스(UPPER_CASE) 를 많이 사용한다. 모든 문자를 대문자로 표기하며, 단어가 변경될 때 언더바(_)를 붙여 표기한다. 예시로 컬러 코드를 담을 상수를 만들어보자.
const COLOR_ORANGE = "#FF7F00";위와 같은 문자열(색상코드)값을 사용할 때 하드코딩해서 사용하지 않고 상수로 할당하여 사용하면 다음과 같은 장점이 있다.
COLOR_ORANGE는"#FF7F00"보다 기억하기가 쉽다.- 오타 등의 실수가 적어진다.
- 코드의 가독성이 증가한다.
일반 상수와 대문자 상수의 차이
그럼 일반적인 상수와 대문자 상수를 사용할 때는 어떤 차이가 있을까? 뭔가 느낌적으로는 알겠지만 그래도 한 번 정리하고 넘어가보자.
둘 다 변수의 값이 절대 변하지 않는다는 공통적인 특징이 있다. 그 중에는 코드가 실행되기 전에 코드를 작성하면서 이미 그 값을 알고 있는 상수("#FF7F00"처럼)가 있고, 프로그램이 실행되며 계산되지만 최초 할당 이후 값이 변하지 않는 상수가 있다.
예시
const COLOR_ORANGE = "#FF7F00"; // 런타임 이전에 이미 값을 알고 작성한 코드
const today = /* 프로그램 실행시점 기준 오늘 날짜 */ today의 값은 프로그램이 실행되기 전에는 알 수 없고 실행중에 최초 할당이 된 이후에는 값의 변화가 일어나지 않기 때문에 일반 상수로 취급한다.
정리
상수의 선언방식은 일반 상수와 대문자 상수 크게 두 가지가 있다. 둘 다 값이 할당된 이후에는 변하지 않는 다는 것은 동일하다. 가장 큰 차이점은 런타임 이전(대문자)에 할당되냐 런타임 이후(일반)에 할당되냐의 차이. 즉, 대문자 상수는 하드코딩한 값일 경우 사용한다.