자바스크립트 기초
Lexical Grammar
- Control Character (제어문자)
- White Space (공백문자) : 유니코드 공백문자 50개 넘게 있음
- Line Terminators (개행문자) : 한 줄을 끊는 것도 수많은 유니코드가 있음
- Comments (주석)
- Keyword (예약어)
- Literals (리터럴) : 값이나 객체를 표현하는 더 이상 나눌 수 없는 최소 단위
Language Element
Statements 문
컴파일러, 실행기에 주는 힌트다.
메모리에 남지 않는다. 실행기가 그 힌트를 받아서 처리할 뿐.- 공문 : 빈문(아무것도 없는 문을 문으로 인정)
- 식문
- 제어문
- 선언문 : 메모리에 변수를 할당하는 문이다. 변수(메모리 주소의 별명, 타입, 크기) - 이를 Vtable에 써놓는다.
- 단문
- 중문 : 중괄호로 묶어서 여러개의 문을 넣는다.
Expression 식
식이란 값이다. 식은 무조건 값으로 도출된다. 함수도 값으로 도출
- 값식
- 연산식
- 호출식 : 호출하면
undefined
든 뭐든 값으로 도출
Identifier 식별자
- 기본형
- 참조형
- 변수
- 상수
// 공문 예시
for (var i = 0; i<5; i++);
;;;;;;;;;;
// 자바스크립트는 if else문만 존재. else if 문은 존재X
if (true);
if (true);;
if (true) {;;}
var a, b
if (true) a=3; b=5
var a, b
if (true) {a=3; b=5}
if (true) a=3; else b=5;
if (true) a=3; else if (a>2) b=3; else b=5;
if (true) a=3; else {if (a>2) b=3; else b=5;}
{}
리터럴을 만들기 위한 {} 뒤엔 ;
중문을 만들기 위한 {} 뒤엔 ;를 안붙인다.
중문 {}뒤에 ; 들어가면 공문이 하나 더 들어간 것이다.
const f = (a) => {}
위 {}는 함수 바디로 인식한다.
const f = (a) => ({})
이때는 오브젝트 리터럴로 인식한다.
다음시간부터 배울 내용
- Sync Flow : 동기화 흐름 (적재된 명령이 실행되는 동안 못 멈춘다.)
- Flow Control : 흐름제어문
- Sub Flow : 어떤 플로우는 반복적으로 쓰인다. (함수 또는 클래스)