[코드스피츠 77] ES6+ 기초 편
✔️코드스피츠 77 - Es6+ 기초 편 1회차
*개발 시 생각해야 하는 요인들
- 철학 : 합리주의와 상대주의
- 가치 : 의사소통, 단순함, 유연함
- 원칙 : 지역화, 중복제거, 대칭성(get, set)
- 패턴 : 개발론, 설계론, 각종 적용 패턴
- 동기 : 돈, 시간
*Program & Timing
-Compile Program
- language code (lint time)
- Machine Language (compile time)
- file
- Load*
- Run (run time)
- Terminate (context error)
-Script Program
- language code (lint time)
- file
- Load*
- Machine Language
- Run (run time)
- Terminate
*Runtime
-cpu <-> memory 사이 연산 순서 by 폰 노이만 구조
- Loding
- Instruction fetch & decording
- Execution
—> 2,3을 무한 반복
-Compile program
Essential definition loading
Vtable mapping
Run
Runtime definition loading
Run
-Script program
스크립트는 컴파일 타임이 없기 때문에 런타임을 층을 나누어 처리한다.
> Static time : base functions, class.. 등을 정의
> Runtime : extended functions, class.. 등을 정의
—> static time, run time 둘 다 런타임이지만 상대주의적 런타임!
-프로그램이 작동하는 방식
Memory, address, pointer, variables, dicpatch
*직접 참조의 문제
Double dispatch 간접 접근 = linked list 구조
*자바스크립트의 기초
-Lexical grammar (MDN)
Control character 제어 문자
White space 공백 문자
Line Terminators 개행 문자
Comments 개행 문자
Keywords 예약어
Literals 리터럴
-Language Element
Statements 문 : 공문, 식문, 제어문 선언문 (단문 종문)
Expression 식 : 값식, 연산식 호출식
Identifier 식별자 : 기본형 참조형 (변수 상수)
Flow : 명령이 실행되는 순서
-Sync flow
Flow control (흐름 제어)
Sub flow (함수, 컨트롤 사용)
✔️코드스피츠 77 - Es6+ 기초 편 2회차
*Record
Statement - record
Flow control statement
*Completion Record
레코드들을 뭘로 선택할지 플로우에 관여할 수 있다.
*Direct flow control
-Label : “문”이 아니다. 같은 스코프에서 label이 2개일 수 없다. 레이블의 스코프는 중괄호가 만든다.
Identifier
Scope (label shadow / static parsing)
*Label range & set
Auto label (Iterator / switch / undefined named label) as comment
레이블 구문은 레이블 블럭의 가장 뒤로 이동한다.
흐름 제어에서 아주 강력하다.
*Switch
Special label block 특수한 레이블 공간을 만들어주는 문법이다.