TIR: 완벽가이드 1. 코어자바스크립트(1) 어휘 구조 - 220613

Lumpen·2022년 6월 13일
0

TIR

목록 보기
2/40

어휘 구조

어떻게 프로그램을 작성해야 하는지에 대한 기본 규칙
변수 이름 작성법 등의 가장 저수준 문법

문자 집합

자바스크립트 프로그램은 Unicode 문자 집합을 사용해 작성된다

  • Unicode: ASCII나 Latin-1의 상위 집합으로 지구상 대부분의 문자 표현 가능

ES3 표준을 따르는 자바스크립트 구현체는 Unicode 2.1 이상을 지원해야 하고
ES5 표준은 Unicode 3 이상을 지원해야 한다

대소문자 구분

HTML은 대소문자를 구분하지 않지만 자바스크립트는 대소문자를 구분한다 (XHTML은 대소문자 구분)
많은 클라이언트 측 자바스크립트 객체와 프로퍼티 이름은
HTML 태그나 속성의 이름과 동일하기 때문에 주의해야한다

공백, 줄바꿈, 제어 문자

자바스크립트는 프로그램 코드 내의 토큰들 사이에 있는 공백을 무시한다
대부분의 경우 줄바꿈도 무시한다 - 2.5절에서
공백과 줄바꿈을 마음껏 사용할 수 있는 덕에, 조금 더 읽고 이해하기 쉬운 코드를 작성할 수 있다
일반적 공백 뿐 아니라 탭, 수직 탭, 폼피드, 줄바꿈 없는 공백, 파이트 순서 표식,
유니코드 카테고리 Z에 포함된 문자들도 공백으로 인식한다
라인피드, 캐리지 리턴, 줄바꿈 문자, 문단 구분자 문자를 줄바꿈으로 인식한다
캐리지 리턴과 라인피드가 연이어서 나오는 경우 하나의 줄바꿈 문자로 취급한다

  • 토큰: 프로그래밍 언어에서 나눌 수 없는 최소한의 단위 (키워드, 변수명, 숫자 등)
  • 줄바꿈 없는 공백 (고정 공백): NBSP, 공백문자의 한 형태로, 현 위치에서 자동 불바꿈을 막는데 쓰인다
  • 바이트 순서 표식: BOM, 유니코드에서 한 문자를 나타내는 두 바이트를 읽는 순서를 결정

알아봐야할 내용

수직 탭, 유니코드 카테고리 Z, 폼피드, 라인피드, 캐리지 리턴 등..

유니코드 이스케이프 시퀀스

자바스크립트에서는 16비트 유니코드 글자를 표현할 수 있는
일련의 6자리 ASCII 문자열 시퀀스를 정의하고 있다
유니코드 시퀀스는 \u 로 시작하고, 뒤에 16진수 숫자 4개를 사용한다
주석에도 유니코드 이스케이프를 사용할 수 있지만 유니코드로 해석되진 않는다

유니코드 정규화

유니코드는 한 문자를 인코딩하는 방법이 하나 이상일 수 있다
유니코드 표준안은 모든 글자에 대한 기본 인코딩을 정의하고 텍스트를 규범적 형태로 변환하는
정규화 절차를 명시하고 있다
자바스크립트 인터프리터가 해석한 소스 코드는 이미 정규화 가정을 거쳤다고 가정하므로
식별자나 문자열 또는 정규 표현식에 대한정규화는 더이상 발생하지 않는다

주석

//와 /* */ 두가지 사용

리터럴

리터럴은 프로그램에 직접 나타나는 데이터 값

12, 1.2, 'hi', true, /javascript/gi, null 등
/javascript/gi: 정규표현식 리터럴

식별자와 예약어

식별자는 간단히 이름이라고 생각하면 된다
식별자는 변수나 함수에 이름을 붙이거나 코드 내 반복문에서 쓸 레이블을 붙이는데 사용된다
식별자의 시작은 알파벳, 밑줄(_), 달러($) 표시여야 한다
이어지는 문자에는 숫자가 포함될 수 있다
식별자의 시작에 숫자가 없는 이유는 숫자를 쉽게 구별하기 위함이다

이식성과 편집의 용이성을 위해 식별자에는 ASCII문자와 숫자만 사용한다
자바스크립트에서는 유니코드 문자 집합에 속한 모든 숫자와 문자를 포함시킬 수 있지만 쓰지말자

예약어

예약어는 몇 가지의 식별자를 기본으로 가지고 있는 것
예약어는 식별자로 사용될 수 없다

for, if, break, try 등..

ES5 에서는 class, const, enum, import 등이 추가되었다

엄격 모드에서만 사용할 수 없는 단어들

implements, let, private, public, interface 등

ES3 문법에서는 Java의 예약어를 전부 동일하게 지정하였지만
ES5에서는 그렇지 않다

기본 전역 변수와 함수

Array, Error, JSON, Number 등

선택적 세미콜론 사용

자바스크립트에서는 여러 문장이 서로 다른 줄에 나타나는 경우나
토큰이 닫힘 중괄호 '}' 로 끝날 경우 세미콜론을 생략할 수 있다
세미콜론에 대한 스타일은 취향이지만 반드시 필요한 경우를 알고있어야 한다
모든 줄바꿈을 세미콜론으로 해석하지는 않는다 (세미콜론 없이 해석할 수 없는 경우에만)

a = 3; b = 4 

다음과 같은 경우 의도치 않은 결과를 가져올 수 있다

// 작성한 코드
const y = x + f
(a + b).toString()

// 자바스크립트가 해석한 코드
const y = x + f(a + b).toString()

때문에 어떤 개발자들은 모든 문장의 시작을 세미콜론으로 시작하는 경우도 있다

return, break, continue

위 세가지 경우에는 줄바꿈이 세미콜론으로 인식 되지 않는다
때문에 줄바꿈을 사용하지 말자

// 작성한 코드
return
true

// 자바스크립트가 해석한 코드
return; true;

전치 연산자, 후치 연산자

// 작성한 코드
x
++
y

// 해석한 코드
x; ++y;
profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글