javascript - 식별자에 관하여
오늘은 JavaScript 이론 공부중 기본인 식별자에 정의에 대해 잘 몰라서 식별자와 관련된 여러 잡다한 내용들을 정리해보는 시간을 가져볼까 합니다.
우선 식별자(Identifier)가 무엇인지 살펴보도록 하겠습니다.
식별자 (Identifier)
우선 JavaScript에서의 식별자(Identifier)는 변수, 함수, 매개변수, 속성 등을 식별하기 위해 사용되는 이름입니다. 식별자는 아래와 같은 규칙을 따라야 합니다.
식별자(Identifier) 네이밍 규칙
- 문자, 숫자, 밑줄(_), 달러 기호($)로 구성됩니다.
- 첫 글자는 반드시 문자, 밑줄(_), 달러 기호($) 중 하나여야 합니다.
- 숫자로 시작하는 것은 허용되지 않습니다.
- 대소문자를 구분합니다.
- JavaScript는 대소문자를 구분합니다. 예를 들어,
myVar
와MyVar
는 서로 다른 식별자입니다.
- JavaScript는 대소문자를 구분합니다. 예를 들어,
- 예약어를 사용할 수 없습니다.
- JavaScript의 예약어는 식별자로 사용될 수 없습니다. 예를 들어,
if
,for
,function
등은 JavaScript에서 예약어이므로 변수 이름 등으로 사용할 수 없습니다. - 식별자로 사용 가능하나 strict mode에서는 사용 불가합니다.
- JavaScript의 예약어는 식별자로 사용될 수 없습니다. 예를 들어,
- 의미 있는 이름을 사용하세요.
- 코드의 가독성을 높이기 위해 의미 있는 이름을 사용하는 것이 좋습니다. 변수나 함수의 역할을 나타내는 이름을 선택하세요.
- 카멜 케이스(Camel Case)를 사용하는 것이 일반적입니다.
- 변수나 함수의 이름을 지을 때, 여러 단어가 합쳐진 경우 첫 단어를 제외한 각 단어의 첫 글자를 대문자로 적는 카멜 케이스를 사용하는 것이 일반적입니다. 예를 들어,
myVariable
,calculateArea()
와 같이 사용합니다.
- 변수나 함수의 이름을 지을 때, 여러 단어가 합쳐진 경우 첫 단어를 제외한 각 단어의 첫 글자를 대문자로 적는 카멜 케이스를 사용하는 것이 일반적입니다. 예를 들어,
- 의미 있는 줄임말은 허용됩니다.
- 일반적으로 코드의 가독성을 위해 식별자에 의미 있는 줄임말을 사용하는 것이 권장됩니다. 예를 들어,
getElementById()
에서Id
는 식별자이지만 ‘Identity’의 줄임말로 사용됩니다.
- 일반적으로 코드의 가독성을 위해 식별자에 의미 있는 줄임말을 사용하는 것이 권장됩니다. 예를 들어,
- 의미 있는 이름을 사용하세요.
- 코드의 가독성을 높이기 위해 의미 있는 이름을 사용하는 것이 좋습니다. 변수나 함수의 역할을 나타내는 이름을 선택하세요.
이러한 식별자 규칙을 사용하는 이유는 차후 코드 보수 및 수정을 본인이 아닌 다른 사람이 하게 됐을 경우 아니면 본인이 오랜만에 코드를 봐서 햇갈릴 수 있는 경우 등등.. 다양한 상황에서 코드를 알아보기 쉽게 하고 이해도를 높이기 위해서 이러한 규칙들을 사용합니다.
위에 규칙들을 보면 사실 예약어는 일반적인 상황에서 사용은 가능합니다. 여기서 strict mode에 대해서 간단하게 설명하고 넘어가겠습니다.
엄격 모드(strict mode)
Strict mode(엄격 모드)는 ECMAScript 5에서 도입된 JavaScript의 한 가지 기능으로, 코드를 더 엄격하게 해석하고 실행하는 모드입니다. Strict mode를 사용하면 코드의 에러를 발견하고 디버깅하는 데 도움이 되며, 일부 예기치 않은 동작을 방지하고 안전성을 높이는 데 도움이 됩니다. (기존에 실행만 되면 넘어갔던 에러들까지 잡겠다 정도로 이해하면 좋을거 같다.)
Strict mode의 주요 특징과 효과는 다음과 같습니다:
에러 강화: 일부 JavaScript의 묵시적인 에러를 명시적인 에러로 변환합니다. 예를 들어, 변수를 선언하지 않고 사용하는 경우 전역 객체에 해당 변수를 추가하는 것이 아니라 ReferenceError를 발생시킵니다.
보안 강화: 일부 잠재적인 보안 문제를 방지합니다. 예를 들어, 전역 객체의 속성을 변경하는 것을 금지하고, eval() 함수의 사용을 제한합니다.
성능 개선: 엄격 모드에서는 일부 최적화 기술이 가능해지므로 코드 실행 속도가 향상될 수 있습니다.
ES6 모듈 사용: 엄격 모드에서는 자동으로 ES6 모듈 기능이 활성화되어 전역 스코프를 만들지 않습니다.
strict mode는 기존의 JavaScript의 나름(?) 널널하던 에러 기준을 엄격하게 만듭니다.
strict mode를 사용하면 차후 에러가 쌓여서 문제가 한번에 터지는 일은 없을겁니다.
이렇게 간단하게 식별자와 관련된 잡다한 내용들을 정리해 보았습니다.
오늘도 필자의 글을 읽어주셔서 감사합니다.