JAVASCRIPT 9가지 특징

 자바스크립트는 여러 특징을 가진다.


1. high level

c언어 같은 low level 언어는 개발자가 리소스(사용 가능한 데이터, 데이터의 한 구성요소)를 손수 다뤄야 하지만 javascript 같은 high level은 개발자가 관리 할 필요없이 자동적으로 관리된다.

2.garbage collection

javascript안의 알고리즘으로써 컴퓨터 메모리 안에 오래되고 사용하지 않는 object를 정리해준다. 따라서 우리는 손수 코드를 작성하지 않아도 알고리즘이 자동으로 정리해준다.

3.interpreted or just-in-time compiled

자바스크립트로 쓰여진 코드는 우리는 이해할 수 있지만 컴퓨터는 이해를 못한다. 컴퓨터가 이해하는 건 machine code 0과 1 로 이루어진 코드이다. 자바스크립트를 포함해 다른 언어들은 우리가 작성한 코드를 0 과 1로 바꿔주는 interpreted 역할을 해준다.


4.Multi-paradigm

우선 paradigm 은 코드를 구성하는 접근법이나 생각이다. 세가지 대표적인 paradigm이 있다.

1. Procedural programming(지금까지 써온 선형적인 코드)

2. Object-oriented programming(OOP)

3. Funtional programming(FP)

자바스크립트는 이 세가지 paradigm 을 적용할 수 있다.


5.Prototype-based object-oriented

자바스크립트는 거의 대부분 객체로 이루어져 있다. 원시 값 빼고 (number,string,boolean..)

배열 또한 객체 인데 배열에 매쏘드를 사용가능한 이유는 array.prototype. 이란 곳에서 add 같은 매쏘드를 만들어 놨기 때문이다.


6.First-class functions

first-class functions를 가진 언어는 함수를 단순히 변수로 대한다. 다른 함수안에 인자로 넣을 수 도 있고 함수를 반환하는 함수를 만들 수 있다. 그리고 이것이 functional paradigm을 가능하게 한다.


7.Dynamic

자바스크립트는 변수를 선언할 때 데이터형을 작성하지 않는다. 자동으로 자바스크립트 엔진이 코드를 실행할때 동적으로 데이터형을 결정해준다. (Dynamically typed)


8.Single-threaded and Non-blocking event loop

Concurrency model : 자바스크립트가 어떻게 동시에 발생하는 여러 업무를 처리하는지이다.

왜 그게 필요하냐면 자바스크립트는 단일 thread(프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미합니다.) 에서만 실행되기 때문이다. 따라서 한번에 하나씩 밖에 못한다. 만약에 오래 걸리는 작업을 실행하면 다른 작업들은 실행이 안되는 문제가 발생하지만 이를 해결 하기 위해 event loop를 사용한다.

오래 걸리는 일을 'background'에서 실행시키고 마무리되면 다시 main thread 에 넣는 것이다.

(매우 이해하기 어려움 ㅜㅠ)


 자바스크립트의 9가지 특징에 대해 알아봤다.














댓글

이 블로그의 인기 게시물

Javascript this keyward

Javascript Object vs Primitives (Primitives vs reference type)

javascript 15 switch statement