JS 특징

  • 객체기반의 언어 입니다.
  • 프로토타입 기반의 언어입니다.
  • 인터프리터 언어 입니다. (웹 브라우저에의해 해석되고 실행됩니다)
  • HTML 문서 내에서 기술되고 HTML 문서와 같이 실행됩니다.
  • 동적언어 타입입니다.
    <br/>
    <br/>

컴파일/인터프리터 언어

자바스크립트는 인터프리터 언어입니다.
둘의 차이는 무엇일까요?
<br/>
컴파일 언어인 자바를 예로 들면,.java 파일을.class파일인 자바바이트코드로 컴파일하는번역과정이 이루어집니다.
.class 파일을 JVM이 도와 운영체제가 이해할 수 있도록 하여실행하며 동작합니다.
(JVM이 도와 자바바이트 코드를 기계어로 번역 실행 하는점에서, 자바는 컴파일언어기도 하지만 인터프리터 언어이기도 합니다.)
<br/>
인터프리터 언어인 자바스크립트는,번역과실행이 동시에 이루어 집니다.
즉 .class파일과 같은 실행파일이 별도로 존재하지 않습니다.
<br/>
인터프리터는 컴파일이 없기 때문에, 별도의 컴파일 시간이 없습니다.
따라서 큰 소스코드의 경우 컴파일 시간이 오래 걸릴 수 있는데, 인터프리터언어의 경우 바로 실행가능합니다.
반대로 컴파일언어는 이미 번역이 되어있기 때문에, 인터프리터를 이용해 실행시키는 것보다 훨씬 빠르게 동작합니다.
<br/>
<br/>

정적언어/동적언어

자바스크립트는 동적언어 입니다. 반대로 자바는 정적언어이지요.
정적언어는 자료형을 컴파일시에 결정하는 것을 말합니다.
따라서 다음과 같이 변수를 선언 할때 자료형을 지정해주어야 합니다.
<br/>

int a = 1
String str = "one";

<br/>
따라서 컴파일 시 타입에 대한 정보를 저장하기에 속도가 빠르고, 타입에러로 인한 문제점을 쉽게 파악 할 수 있습니다.
반대로 동적언어는 컴파일 시가 아닌 실행 시에 자료형을 결정합니다.
다음과 같이 타입 없이 변수만 선언하여 값을 지정 할 수 있습니다.
<br/>

var a = 3;
var str = "one";

<br/>
실행시에 타입이 결정되기 때문에, 선택의 여지가 많습니다 .하지만 실행 시에 예상치 못한 타입이 들어와 Type Error 가 발생하는 경우도 있는 점을 고려해야 합니다.
<br/>
<br/>

참고

<a href="https://ithub.tistory.com/86">인터프리터언어와 컴파일언어에 대해서</a>
<a href="https://itmining.tistory.com/65">정적언어(타입)과 동적언어(타입)</a>

0
이전 댓글 보기
등록
TOP