식별자는 어떤 값을 구별해서 식별해낼 수 있는 고유한 이름을 뜻한다.
- 식별자는 특수문자를 제외한 문자, 숫자 ,언더스코어(_), 달러 기호($)를 포함할 수 있다.
- 단, 식별자는 특수문자를 제외한 문자, 언더스코어(_), 달러 기호($)로 시작해야 한다. 숫자로 시작하는 것은 허용하지 않는다.
- 예약어는 식별자로 사용할 수 없다.
await | break | case | catch | class | const |
continue | debugger | default | delete | do | else |
enum | export | extends | false | finally | for |
function | if | implements* | import | in | instanceof |
interface* | let* | new | null | package* | private* |
protected* | public* | return | super | static* | switch |
this | throw | true | try | typeof | var |
void | while | with | yield* |
* 식별자로 사용 가능하나 strct mode에서는 사용 불가
변수 이름도 식별자이므로 위 네이밍 규칙을 따라야한다.
참고로 변수는 쉼표(,)로 구분해 하나의 문에서 여러 개를 한번에 선언할 수 있다.
var person, $elem, _name, first_name, val1;
다음 식별자 명명 규칙에 위배되므로 변수 이름으로 사용할 수 없다.
var first-name;
var 1st;
var this;
//전부 에러가 뜬다.
자바스크립트는 대소문자를 구별하므로 다음 변수는 각각 별개의 변수다.
var firstname;
var firstName;
var FIRSTNAME;
변수의 이름은 변수의 존재 목적을 쉽게 이해할 수 있도록 의미를 명확히 표현해야 한다.
좋은 변수 이름은 코드의 가독성을 높인다.
변수 선언에 별도의 주석이 필요하다면 변수의 존재 목적을 명확히 드러내지 못하는 것이다. (클론코딩이라는 책에서도 똑같이 말한다.)
// 경과시간, 단위는 날짜다.
var d; // x
var elapsedTimeInDays; // ok
네이밍 컨벤션은 하나 이상의 영어 단어로 구성된 식별자를 만들 때 가독성을 좋게 단어를 한눈에 구분하기 위해 규정한 명명 규칙이다.
네이밍 컨벤션을 잘 지키면 읽기 좋은 이름을 만들 수 있다.
다음과 같은 4가지 유형의 네이밍 컨벤션이 자주 사용된다.
// 카멜 케이스(camelCase)
var firstName;
// 스네이크 케이스
var first_name;
// 파스칼 케이스
var FistName;
// 헝가리언 케이스
var strFirstName; // type + identifier
var $elem = document.getElementById("myId"); // DOM 노드
var observable$ = fromEvent(document, "click"); // RxJS 옵저블
일관성을 유지한다면 어떤 네이밍 컨벤션을 사용해도 좋지만
자바스크립트에서는 일반적으로 변수나 함수의 이름에는 카멜 케이스를 사용하고
생성자 함수, 클래스의 이름에는 파스칼 케이스를 사용한다.
ECMASAcript사양에 정의되어 있는 객체와 함수들도 카멜 케이스와 파스칼 케이스를 사용하고 있다.
따라서 코드 전체의 가독성을 높이려면 카멜 케이스와 파스칼 케이스를 따르는 것이 유리하다.
source : 모던 자바스크립트
'Javascript > 개념' 카테고리의 다른 글
[JS - 개념] Sort() <배열 고차함수> (0) | 2023.05.26 |
---|---|
[JS - 개념] String.prototype.replace() (0) | 2023.01.31 |
[JS - 개념] Array.prototype.at() (0) | 2022.10.01 |
[JS - 개념] forEach() / map() / filter() (0) | 2022.08.09 |
[JS - 개념] splice() (0) | 2022.08.05 |