공부 정리/You Don't Know Js

[YDKJ] Get Started - Chapter 1 - 2(完)

경적필패. 2023. 4. 21. 18:54
반응형

요약

Jumpong the Gaps

  • JS는 과거의 호환성을 중요시한다고 했다. ES2019를 2016 엔진에서 실행한다면 충돌날 가능성이 높다. => 이러한 갭을 줄이기 위해서 나온 게 BABLE임.
  • BABLE은 ES2019코드를 2016 엔진에서도 돌아가는 문법으로 변환해줌.

 

Filling the Gpas

  • 최신 JS와 옛날엔진의 간극을 매우는 방법은 2가지, Transpilation과 polyfilling임
  • 트랜스파일링은 => 바벨과 같은 도구 사용하기.
  • polyfilling은 그냥 코드로 새로운 기능 구현해 주기.
  • JS가 계속 발전하기 때문에 이 간극은 계속해서 존재할 것임. 두 기술을 항상 채택해야 함.

 

What is Interpretation?

JS는 다음과정을 통해 컴파일된다.

  1. 개발자에디터에서 프로그램이 BABEL에 의해 변환되고 Webpack에 의해 패킹되어 JS엔진에 제공됨.
  2. JS엔진은 코드를 AST(소스코드를 트리 구조로 만드는 과정)로 파싱함
  3. JS엔진이 AST를 바이트코드로 변환하고 JIT 컴파일러가 이를 최적화함.
  4. 마지막으로 JS VM이 프로그램 실행

즉 JS는 컴파일 언어에 가깝다...!

 

 

WebAssembly

  • WASM은 JS 외의 언어들을 웹으로 가져와 성능을 높이려는 방향임.

(함께 보면 좋은 글 : https://dongwoo.blog/2017/06/06/%eb%b2%88%ec%97%ad-%ec%b9%b4%ed%88%b0%ec%9c%bc%eb%a1%9c-%ec%86%8c%ea%b0%9c%ed%95%98%eb%8a%94-%ec%9b%b9%ec%96%b4%ec%85%88%eb%b8%94%eb%a6%ac/)

 

 

Strictly speaking

  • es5부터 use strict 모드가 나왔다. 레거시 코드 때문에 현재도 선택사항임.
  • use strict모드는 조기 오류를 잡아내며, JS엔진이 코드를 최적화하고 효율적으로 사용하게끔 안내한다.
  • ES6 모듈은 Strict mode가 default임.

 

느낀 점

반응형