What got you here won't get you there

[JS] Lexical Grammar, Language Element 본문

카테고리 없음

[JS] Lexical Grammar, Language Element

optimy 2021. 7. 5. 19:23
CONTROL CHARACTER 제어문자 U+200C, U+200D,  U+FEFF
WHITE SPACE 공백문자 \t, \f ...
LINE TERMINATORS 개행문자 \n, \r
COMMENTS 주석 //, /**/, #!
KEYWORD 예약어 break, case, const ...
LITERALS 리터럴 Null, Boolean, Number, Object, Array...

Language Element

Statements 문 : 컴파일러 혹은 실행기한테 주는 힌트

메모리에 흔적이 안남고 실행기가 힌트를 받아 어떻게 처리할지 생각함.

// Statements 문

// 공문
for (var i = 0; i < 5; i++); // 공문 반복
;;;;;; // 공문 여러개

// 선언문 - 메모리 상에 변수를 할당
var, let, const

// 제어문 - flow control

// 식문 - 식을 문으로 인정해줌
3;4;5;
if(true)3

/**************************************/

// 단문과 중문
if (true); // if 뒤에 단문
if (true);; // if 뒤에 단문 뒤에 공문
if (true){;;} // if 뒤에 중문

var a, b;
if (true) a = 3; b = 5; // if 뒤에 단문 + 알파
if (true) {a = 3; b = 5;} // if 뒤에 중문

if (true) a = 3; else b = 5; // if 뒤에 단문 + else 뒤에 단문
if (true) a = 3; else if (a > 2) b = 3; else b = 5; // if 뒤에 단문 + else 뒤에 단문(if-else)
if (true) a = 3; else {if (a > 2) b = 3; else b = 5;} // if 뒤에 단문 + else 뒤에 중문(if-else)

const f = (a) => {} // 중문이 아닌 함수 몸체로 인식
const f = (a) => ({}) // 함수 몸체의 중괄호가 아닌 객체 리터럴의 중괄호로 인식

 

Expression 식

// Expression 식 = 값 (값을 표현하는 여러 방법 = 식)

// 값식
3
true

// 연산식
a + b
a - b

// 호출식 - 함수 호출
myFunction(1, 2);

Identifier 식별자

대부분 변수. 기본형, 참조형 / 변수, 상수

Comments