자바스크립트 완벽가이드 2장 (어휘 구조)
프로그래밍 언어의 어휘 구조는 프로그램을 어떻게 작성해야 하는지를 알려주는 기본 규칙이다. 어휘 구조는 가장 저수준 문법이다.
2.1 문자 집합
자바스크립트 프로그램은 Unicode 문자 집합을 사용해 작성된다.
2.1.1 대소문자 구분
자바스크립트는 대소문자를 구분하는 언어이다. 그러나 HTML은 대소문자를 구별하지 않는다.
2.1.2 공백, 줄바꿈 제어 문자
자바스크립트는 프로그램 코드 내의 토큰들 사이에 있는 공백들을 무시한다. 대부분의 경우, 줄바꿈 문자도 무시한다.
2.1.3 유니코드 이스케이프 시퀀스
일부 컴퓨터 하드웨어와 소프트웨어에서는 특정 유니코드 글자들을 입력받고서 화면에 출력할 수 없는데 이와 같은 경우 프로그래머가 유니코드를 사용할 수 있도록 일련의 6자리 ASCII 문자열 시퀀스를 정의하고 있다. 유니코드 이스케이프 시퀀스는 \u
로 시작하고, 그 뒤에 16진수 숫자 4개가 온다. (유니코드 이스케이프는 자바스크립트 문자열 리터럴이나 정규 표현식 리터럴에서 사용가능)
1 | "café" === "caf\u00e9" // true |
2.3 리터럴
리터럴(literal)은 프로그램에 직접 나타나는 데이터 값이다. 숫자, 문자열, 불리언, null 모두 리터럴이다.
2.5 선택적인 세미콜론 사용
자바스크립트가 항상 모든 줄바꿈을 세미콜론으로 해석하는 것은 아니다. 일반적으로 세미콜론 없이 코드를 해석할 수 없는 경우에만 줄바꿈을 세미콜론으로 해석한다. 일반적으로, 문장이 (, [, /, +, - 로 시작하면 자바스크립트 인터프리터는 해당 문장을 이전 문장에 이어서 해석한다.
다음 줄을 첫 줄의 문장과 이어서 하나로 처리할 수 없는 경우에만 줄바꿈을 세미콜론으로 해석한다는 일반 규칙에는 두 가지 예외가 있다.
- return, break, continue 문 바로 다음에 사용했을 경우다. 따라서 return, break, continue와 다음에 오는 키워드 사이에 줄바꿈을 하지 말아야 한다.
- ++나 – 연산자가 포함된 경우다.
1
2
3
4x
++
y
// 위코드는 x++; y가 아니라 x; ++y로 해석된다.