자바스크립트란?

hyuk(정윤혁)·2022년 5월 25일
0

Today I Learned

목록 보기
29/38
post-thumbnail

정의

자바스크립트로 작성한 프로그램을 스크립트라고 합니다. 스크립트는 웹페이지의 Html 안에 작성할 수 있고, 웹페이지를 불러올 때 스크립트가 자동으로 실행됩니다.

스크립트는 별도의 컴파일 없이 보통의 문자 형태로 작성과 실행이 가능합니다.

자바스크립트는 브라우저뿐만 아니라 서버에서도 실행 가능합니다.
브라우저엔 자바스크립트 가상 머신 엔진이 내장돼 있습니다.

  • V8 크롬,오페라 브라우저에서 사용
  • SpiderMonkey 파이어폭스에서 사용
  • IE는 버전에 따라 Trindent or Chakra를 사용 (ChakraCore는 엣지에서 사용)
  • SquirrelFish 사파리에서 사용

엔진 작동 원리
1. 엔진이 스크립트를 읽음 (파싱)
2. 읽은 스크립트를 기계어로 전환 (컴파일)
3. 전환된 코드가 실행

브라우저에서 할 수 없는 일

브라우저는 보안을 위해 자바스크립트 기능에 제약을 걸어놨습니다.

  • 웹페이지 내 스크립트는 디스크에 저장된 임의의 파일을 읽거나 쓰고, 복사, 실행할 때 제약을 받으르 수 있습니다. 운영체제가 지원하는 기능을 브라우저가 직접 사용하지 못하게 제한해뒀기 때문입니다.

카메라나 마이크 같은 기능은 사용자의 명시적인 허가가 있어야 합니다.

  • 브라우저 내 탭과 창은 보통 서로의 정보를 알 수 없습니다. 하지만 자바스크립트를 사용해 한 창에서 다른창을 열 때에는 예외가 적용됩니다. (도메인, 프로토콜, 포트가 다르면 페이지에 접근 X)

사용자의 보안을 위해 만들어진 제약사항을 동일 출처 정책이라고 부릅니다.

  • 자바스크립트를 이용하면 페이지를 생성ㅎ한 서버와 정보를 주고 받을 수 있지만 타사이트나 도메인에서 데이터를 받아오는 건 보안 상 불가능합니다. (HTTP헤더를 이용한 예외가 있음)

자바스크립트의 장점

  • Html/Css와 완전히 통합할 수 있습니다.
  • 주요 브라우저에서 지원하고, 기본 언어로 사용됩니다.
  • 간단한 작업을 간단하게 처리 가능하게 해줍니다.

자바스크립트 트랜스파일 언어

  • TypeScript 개발을 단순화하고 복잡한 시스템을 지원하는 목적으로 자료형의 명싷화에 집중해 만든 언어입니다. Microsoft 개발
  • Flow도 자료형을 강제하지만, TypeScript와 다른 방식을 사용합니다. Facebook 개발
  • Dart는 모바일 앱과 같이 브라우저가 아닌 환경에서 동작하는 고유의 엔진을 가진 독자적 언어입니다. Google 개발
  • CoffeeScript는 자바스크립트를 위한 syntactic sugar입니다. 짧은 문법으로 이해하기 쉬운 코드를 작성할 수 있습니다.
profile
노션 저장소는 🏠홈버튼 눌러주세요 !

0개의 댓글