javascript에서 상수를 나타낼 때 대문자 변수명을 사용하는 이유
C언어에서 파생된 프로그래머들의 약속이고 이는 해당 값이 고정값(상수)임을 알리는 것이다.
export const API_KEY = 'SOMEKEY';
상수란 변하지 않는 값을 의미한다. 즉, 정상 실행 중에는 프로그램에서 변경할 수 없는 값이다.
ES6에서 도입된 const
자바스크립트 ES6이전엔 변수할당에 var만을 이용했기 때문에 대문자 변수명을 통해 상수를 나타냈다.
하지만 ES6에서 다른 의도를 가진 변수를 생성하는 방법으로 const와 let이 도입되었다. 보통 변경하지 않는 값은 const에 할당하고 변경 할 수 있는 값을 let에 할당한다.
그런데 여기서 중요한 건 const는 값의 재할당을 막을 뿐이지 참조하는 객체 속성 변경을 막지 않는다는 점이다.
const firstPerson = {
favoriteNumber: 10,
};
const secondPerson = firstPerson;
console.log(secondPerson.favoriteNumber); //10
firstPerson.favoriteNumber +=1;
console.log(secondPerson.favoriteNumber); //11
상수를 나타내는 방법
const는 값의 불변을 보장해주지 않는다. 따라서 javascript의 경우 상수를 선언하는 것은 const 사용 이상을 수행해야 한다.
변수가 상수인지 확인하려면 2가지 질문을 해야한다.
1. 변수의 값이 기본값인가?(Is the value of the variable primitive?)
2. 프로그램 전체에서 동일한 값을 가리키는 변수명을 유지하려고 하는가?
둘 다 해당이 된다면 그 값은 상수를 나타내는 추가 조치를 할 만 하다. 보통 const 변수명을 대문자로 하는 방식을 사용한다.
요점은 javascript에서 상수를 정의할 때 프로그래머의 의도가 포함되어야 한다는 점이다.
참조
https://www.freecodecamp.org/news/when-to-capitalize-your-javascript-constants-4fabc0a4a4c4/