-
[JavaScript] 자바스크립트 상수(Constant) 이해하기프로그래밍 이야기/JavaScript 공부 2020. 4. 5. 20:13
[JavaScript] 자바스크립트 변수(varibable) 이해하기 에서 변수에 대해 알아봤다.
이번에는 상수에 대해서 알아보자.
상수란 무엇일까?
간단하게 상수는 변수의 반댓말이다.
수학에서의 상수와 동일하게 常(항상 상)자를 사용해서 변하지 않고 고정된 값을 담을 때 사용한다.
변하지 않는 값, 이것을 제외하면 나머지는 변수와 개념은 동일하다.
상수를 만드는 방법: 상수 선언
자바스크립트에서 상수는 var 와 마찬가지로 constant 의 앞글자를 가져와 const 라는 키워드로 선언한다.
const 상수이름; 상수이름 = 상수값; // Uncaught SyntaxError: Missing initializer in const declaration
처럼 선언 할 수 있을 것 같지만,
상수는 앞서 설명한 것 처럼 선언 이후에 값을 대입할 경우
Uncaught SyntaxError: Missing initializer in const declaration 이라는 에러를 만나게 된다.
따라서 상수는 반드시 선언과 동시에 값을 대입(초기화)해줘야 한다.
const 상수이름 = 상수값; console.log(상수이름); // 상수값
당연히 재선언 될 수도 없다.
const 상수이름 = 상수값1; const 상수이름 = 상수값2; // Uncaught SyntaxError: Identifier '상수이름' has already been declared
Uncaught SyntaxError: Identifier '상수이름' has already been declared 이라는 에러를 만나게 된다.
나중에 다시 정리하겠지만 이건 let 키워드를 사용해 변수를 선언할 때도 동일하다.
+ 변수 이름과 겹치는 것도 불가능하다.
let 상수이름 = 1; const 상수이름 = 1; // Uncaught SyntaxError: Identifier '상수이름' has already been declared
역시나 Uncaught SyntaxError: Identifier '상수이름' has already been declared 이라는 에러가 나타난다.
상수 이름 규칙
자바스크립트 외의 다른 언어에서는 일반적으로 상수를 대문자 + 스네이크 표기법(snake_case)를 사용한다.
스네이크 표기법은 단어 사이에 언더바 _ 를 사용해서 구분하는 방식이다.
예를 들면 아래와 같다.const PI = 3.14; const MY_NUMBER = 1234;
하지만, 개인적인 경험에 의하면 const 를 굳이 상수로 구분하지 않고, 암묵적으로 변수라고 함께 묶어서 변수를 선언하는 방식으로 이해하고 명명하는 경우가 많고, 네이밍 규칙도 그냥 카멜 표기법(camel case)을 사용하는 경우가 더 많은 것 같다.
const pi = 3.14; const myNumber = 1234;
상수를 사용하는 이유
꼭 프로그래밍에서 뿐아니라,
무분별한 자율은 경우에 따라 심각한 문제를 야기할 수 있고,
적당한 제한과 규칙은 경우에 따라 안전이라던가 안정을 가져다주곤 한다.
상수는 위에서 훑어본 상수적인(?) 특성 때문에 코드를 상대적으로 조금 더 엄격하게 사용케하는 장점이 있다.
이는 예상치 못한 오류를 줄이는데 꽤나 도움이 되는 방식이다.
실제로 자바스크립트 프로젝트를 훑어보아도
간간히 꽤나 오래된 프로젝트라면 var를,
그게 아니라면 let 보다는 const를 훨씬 더 많이 볼 수 있다.
(이 이슈에 대해서는 이제 더 이상 var를 사용하지 않는 이유와 함께 따로 정리할 해볼까 한다.)
const는 값을 도중에 바꿀 수도 없는데 어떻게 상대적으로 활용빈도가 더 높지..?
프로그램은 다양한 상황에 따라 값이 유연하게 변할 수 있어야 되는거 아닌가..?라는 의문을 가질 수 있겠지만,
이번 페이지에서는 일단 const의 기본적인 개념에 대해서만 이해해 두자.
자바스크립트로 프로그래밍을 하다보면 자연스럽게 const 키워드를 사용하고 있는 자신을 발견하게 될 것이다.
'프로그래밍 이야기 > JavaScript 공부' 카테고리의 다른 글
[JavaScript] 자바스크립트 연산자(Operators) 이해하기 - 1 (2) 2020.04.18 [JavaScript] 자바스크립트 객체(Object) 이해하기 - 2 (0) 2020.04.15 [JavaScript] 자바스크립트 객체(Object) 이해하기 - 1 (0) 2020.04.12 [JavaScript] 자바스크립트 자료형(DataType) 이해하기 (0) 2020.04.12 [JavaScript] 자바스크립트 변수(Variable) 이해하기 (0) 2020.03.31