[Deep Dive] 07. 식별자 네이밍 규칙

Lenny·2023년 1월 8일
0
post-thumbnail

식별자 네이밍 규칙

식별자는 어떤 값을 구별해서 식별해낼 수 있는 고유한 이름을 말한다.

식별자는 다음과 같은 네이밍 규칙을 준수해야한다.

  • 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러 기호($)를 포함할 수 있다.
  • 식별자는 특수문자를 제외한 문자, 언더스코어(_), 달러 기호($)로 시작해야 한다. 숫자로 시작하는 것은 허용하지 않는다.
  • 예약어는 식별자로 사용할 수 없다.

📒 예약어

예약어는 프로그래밍 언어에서 사용되고 있거나 사용될 예정인 단어를 말한다.

한글로도 식별자를 지정할 수 있는지?

ES5부터 식별자를 만들 때 유니코드 문자를 허용하므로 알파벳 외의 한글이나 일본어 식별자도 사용할 수 있다.
하지만 알파벳 외의 유니코드 문자로 명명된 식별자를 사용하는 것은 바람직하지 않으므로 권장하지 않는다.

대 소문자 구분

자바스크립트는 대소문자를 구분하므로 다음은 각각 별개의 변수다.

var firstname;
var firstName;
var FIRSTNAME;

좋은 변수 이름

변수 이름은 변수의 존재 목적을 쉽게 이해할 수 있도록 의미를 명확히 표현해야 한다.
좋은 변수 이름은 코드의 가독성을 높인다.

var x = 3; // NG. x 변수가 의미하는 바를 알 수 없다.
var score = 100; // score 변수는 점수를 의미한다.

변수 선언에 별도의 주석이 필요하다면 변수의 존재 목적을 명확히 드러내지 못하는 것이다.

네이밍 컨벤션(naming convention)

네이밍 컨벤션은 하나 이상의 영어 단어로 구성된 식별자를 만들 때 가독성 좋게 단어를 한눈에 구분하기 위해 규정한 명명 규칙이다.

다음과 같은 4가지 유형의 네이밍 컨벤션이 자주 사용된다.

// 카멜 케이스(camelCase)
var firstName;

// 스네이크 케이스(snake_case)
var first_name;

// 파스칼 케이스(PascalCase)
var FirstName;

// 헝가리언 케이스(typeHungarianCase)
var strFirstName; // type + identifier
var $elem = document.getElementById('myId'); // DOM 노드
var observable$ = fromEvent(document, 'click'); // RxJS 옵저버블

일관성을 유지한다면 어떤 네이밍 컨벤션을 사용해도 좋지만 자바스크립트에서는 일반적으로 변수나 함수의 이름에는 카멜 케이스를 사용하고, 생성자 함수, 클래스의 이름에는 파스칼 케이스를 사용한다.

ECMAScript 사양에 정의되어 있는 객체와 함수들도 카멜 케이스와 파스칼 케이스를 사용하고 있다. 따라서 코드 전체의 가독성을 높이려면 카멜 케이스와 파스칼 케이스를 따르는 것이 유리하다.


👀 참조

  • 모던 자바스크립트 Deep Dive
profile
🧑‍💻

0개의 댓글