[TIL-Javascript.info] Day 1

cdbrouk·2020년 12월 12일
0

TIL-Javascript.info

목록 보기
1/1
post-thumbnail

이번 TIL 포스트 시리즈는 javascript.info를 공부하는 포스트 입니다.

What is Javascript

실행을 위한 별도의 preparation 혹은 compilation이 필요 없는 스크립트
HTML 안에서 쓰여질 수 있으며, 페이지가 로드될 때 자동으로 실행된다

Javascript Engines

javascript를 실행하는 computer program 혹은 interpretor 입니다.
최초의 엔진들은 interpreter 역할 정도 였다면 근래 엔진 (modern engines)들은 JIT(Just In Tie) 방식의 컴파일을 사용합니다.
모든 브라우저 별로 각자 자바스크립트 엔진을 가지고 있으며 DOM(Document Object Model)을 통해 렌더링 엔진과 함께 실행됩니다. 또한 V8 엔진의 경우는 Node에서도 사용됩니다.

엔진의 종류

  • V8: Chrome, Opera, Node
  • SpiderMonkey: Firefox
  • SquirrelFish: Safari
  • ChakraCore: Microsoft Edge

할 수 있는 것들과 할 수 없는 것들

  • javascript는 메모리나 CPU 같은 low level에 대한 조작을 허용하지 않습니다.

  • 실행 환경에 따른 영향을 받습니다. Nodejs에서의 자바스크립트와 브라우저에서의 자바스크립트는 다른 기능들을 지원합니다.

  • 웹페이지에서의 스크립트는 특정 상황에서만 디스크에 저장된 파일을 다룰 수 있습니다.

  • 또한 IO 디바이스에 대한 상호작용은 사용자의 명시적 허가가 있어야만 다룰 수 있습니다.

  • 도메인, 프로토콜, 포트가 다르다면 다른 페이지에 대한 정보를 알 수 없습니다 (Same Origin Policy). 이를 피하기 위해선 서로간의 데이터 교환에 대한 동의에 관하여 자바스크립트 코드가 필요합니다.

  • 브라우저 환경이 아닌 Node서버의 환경이라면 이러한 제약은 존재하지 않을 것입니다.

Others

  • 자바스크립트로 transpile 되는 많은 언어들이 있습니다.
  • CoffeeScript, Typescript(MS), Flow(Facebook), Dart(Google) 등.

Keywords

  • JIT : interpretor방식처럼 실행 중 프로그래밍 언어를 읽어가며 해당 기능에 대응하는 기계어 코드를 실행합니다. 거기에 그 코드를 캐싱하여 재사용 시 컴파일을 다시 할 필요가 없습니다.

Reference

profile
Web Fullstack developer

0개의 댓글