프로그래밍 어휘 구조

그 언어로 프로그램을 작성할 때 지켜야 할 기본적인 규칙의 집합

자바스크립의 어휘 구조

  • 대소문자 구분, 스페이스, 줄바꿈
  • 주석
  • 리터럴
  • 식별자와 예약어
  • 유니코드
  • 선택 사항인 세미콜론


2.1자바스크립트 프로그램의 텍스트

- 키워드, 변수, 함수 이름, 기타 식별자(iden-tifier)를 쓸 때 대소문자를 일관적으로 써야 한다.

  • 자바스크립트는 대소문자를 구별한다.
    (online, Online, OnLine, ONLINE은 모두 다른 변수)

  • 토큰 사이의 공백을 무시하며, 대부분의 경우 줄바꿈도 무시한다.
    (프로그램에서 공백과 줄바꿈을 마음대로 쓸 수 있으므로 사용자에게 맞는 일관적인 형식으로 작성 가능하다.)

  • 스페이스 문자(\u0020)외에 탭(tab), ASCII 제어 문자, 유니코드 스페이스 문자를 모두 공백으로 인식한다.

  • 뉴라인(\n), 캐리지 리턴(\r), 캐리지리턴/라인 피드를 모두 줄바꿈 문자로 인식한다.



2.2 주석

- 주석은 자바스크립트 코드에 대한 설명 등을 작성 한다.

// 한 줄 주석
/* 여러 줄 주석
 * 각 행 앞의 *문자는 없어도 되지만
 * 그럴듯해 보임
*/


2.3 리터럴(literal)

- 리터럴(literal)은 프로그램 안에 직접 쓴 데이터 값이다.

12				// 숫자 12
1.2				// 숫자 1.2
"hello world"	// 문자열
'Hi'			// 문자열
true			//boolean
false			//boolean
null			//객체가 존재하지 않음


2.4 식별자와 예약어

- 식별자는 이름으로 상수,변수, 프로퍼티, 함수, 클래스의 이름에 사용하고 일부 루프의 라벨로도 사용한다.

- 식별자 규칙
시작

  • 글자
  • 밑줄(_)
  • 달러 기호($)

중간

  • 글자
  • 숫자
  • 밑줄
  • 달러 기호

2.4.1예약어

- 예약된 키워드로 식별자로 사용할 수 없다.

⬆️예약어 예시



2.5 유니코드

- 자바스크립트 프로그램은 유니코드 문자셋으로 작성된다.
- 유니코드 문자는 모두 문자열이나 주석에 사용할 수 있습니다.
- 수정할 때 편리하게 사용하기 위해 ASCII글자와 숫자만 쓰는게 일반적이다.

const π = 3.14; //수학 기호를 변수로 사용
const= true;				//영어가 아닌 언어를 변수로 사용

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

- 컴퓨터 중 유니코드 문자를 정확히 표시, 입력, 처리하지 못하는 것이 있어서 유니코드 문자를 표현하는 이스케이프 시퀀스(escaape sequence)를 정의한다.

- \u문자로 시작하고 정확히 네 개의 16진수 문자(0-9, A-f)를 쓰거나, 1~6개의 16진수를 중괄호 안에 쓰는 형태이다.

let café = 1;	// 유니코드 문자로 변수 정의
caf\u0029		// => 1; 이스케이프 시퀀스로 변수에 접근
caf\u{E9}		// => 1; 다른 형태의 이스케이프 시퀀스

- ES6에서 이모지와같이 16비트 이상 필요한 유니코드 포인트를 지원하기 위해 중괄호 문법을 도입했다.

consloe.log("\u{1F600}");	// 웃는 얼굴 이모지 출력

2.5.2. 유니코드 정규화

- 자바스크립트 프로그램에 ASCII 문자가 아닌 문자를 사용할 때는 유니코드에 그 문자를 인코딩 방법이 하나 이상 있음을 반드시 인지해야 한다.
- 텍스트 에디터에는 똑같이 표시되지만, 이전 인코딩이 달라 자바스크립트는 다른 것으로 간주한다.

const café = 1;	// "caf\u{e9}"인 상수
const café = 1;	// "caf\u{301}"인 다른 상수
café			// => 1: 값이 1인 상수
café			// => 2: 값이 2인 상수

- 자바스크립트는 해석하고 있는 소스코드가 이미 정규화를 마친 상태라고 가정하여, 스스로 정규화를 수행하지 않는다.

2.6 세미콜론

- 자바스크립트에서는 세미콜론을 굳이 넣지 않아도 된다.

2.6.1생략 가능한 경우

a = 3;
b = 4

2.6.2. 생략이 불가능한 경우

1) 함수를 연달아 적을 때

a = 3; b =4;

2) 의도하지 않은 결과로 해석이 될 때

입력

let y = x + f
(a=b).toString()

해석

let y = x + f9a+b).toString();

입력

return
true;

해석

return; true;

의도

return true;

return, break, contiue 다음에 어떤 표현식을 쓴다면, 그 사이에 줄바꿈이 들어가서는 안된다.

3) ++, --연산자

- 후위 연산자로 사용 시 반드시 적용할 표현식과 같은 행에 작성해야 한다.

4) =>(화살표 함수)

- 반드시 매개변수 리스트와 같은 행에 있어야 한다.

profile
프론트 공부 중입니다:)

0개의 댓글