ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 키워드를 사용하고 있는 자신을 발견하게 될 것이다.

     

    댓글

Designed by BigTop.