자바스크립트 Now
[고민들]
- 자바스크립트 vs 프레임워크 vs 타입스크립트 등 기타 언어
[자바스크립트 파이프라인]
- 코드 → 트랜스파일러 → 패키징 → CI → 배포
- 코드 : ES5, 6, 7... , 타입스크립트, 코틀린, 다트 등등
- 트랜스파일러 : 1단 tsc, kotilc... / 2단 babel
- 패키징 : 웹팩 ...
- 트랜스파일링, 패키징 덕분에 고도화된 코드에 집중할 수 있는 환경이 만들어진다
[ECMAScript Standard]
- 거의 구글이 원하는 순서대로 표준이 만들어진다 → 크롬에 바로반영
- 본인들 브라우저에 부하가 주는 쪽으로 기준을 올리고 정치질한다
- 크롬에 반영되는 업데이트 스펙을 알아야만 한다
[버전별 히스토리]
- ES6
- class, object literal
- ES6의 class는 설탕문법이 아니다 → ES5로 구현불가
- class는 점점 확대되는 중
- arrow
- iterator generator for of
- const let
- destructuring, rest, spread
- Template string
- Symbol, Promise, Map, Set 등 내장 객체들
- ES7~10
-
7
- 중첩된 rest 해체
- [a, ...[b,...c]] ⇒ [a, b, c]
-
8
-
9
-
object 해체 가능
-
asynchronous iterators
→ 이것만 써야한다!
-
10
-
기타 stage3
- BigInt
- globalThis : 좀더 명확한 this
- top level await
- class field
- private filed/method
- optional chaining(?.)
- nullish coalescing(??)
- WeakReference
프로그램
[Program & Timing]
[일반 개발]
Language code
Machine language
- 직접 기계가 아닌 가상머신같은 환경일 가능성이 높다
- 컴파일러
File
Load
Run
Terminate
[자바스크립트 개발]
ES2020, TypeScript
Transpiler
File deploy
Browser Load
Browser Parsing
- 로드 하고 파싱하는데 있어서 브라우저가 더 잘이해하도록 패키징 하는게 다른 언어보다 중요하다
Run
Browser Close
- 상대적으로 다른 개발보다 닫으면 프로그램이 종료되기에 메모리 관리에 소홀하다
[Runtime]
[Runtime Execution ( 폰노이만 머신 )]