프론트엔드 기본개념 복습/Javascript

2021-09-25 자바스크립트 기본 특징

콘요맘떼 2021. 9. 26. 05:39

1. 자바스크립트는 객체 기반 스크립트 언어이다.

클래스를 이용하여 호출한 후에 객체가 생성되는 자바와 달리 자바스크립트는 클래스가 필요없이 호출과 동시에 객체가 생성된다.

 

2. HTML은 웹의 내용을 작성하고 CSS는 그를 꾸며주며 JS는 웹의 동작을 구현한다.

3. 자바스크립트는 주로 웹 브라우저에서 사용되나 Node.js와 같은 프레임워크를 활용하면 서버 프로그래밍과 같이 브라우저 밖에서도 사용이 가능하다.

4. 현재 컴퓨터나 스마트폰 등의 대부분 웹 브라우저에는 자바스크립트 인터프리터가 포함되어 있다.

5. 자바스크립트는 동적이며 타입을 명시할 필요가 없는 인터프리터 언어이다.

 

  • 컴파일 언어

- 컴파일러를 통해 고급 언어를 기계어로 변환하는 언어

- 컴파일된 후의 기계어는 실행 속도가 빠르다.

- 예시 : C, C++, C#, Java

 

  • 인터프리터 언어

- 소스코드를 컴파일하지 않고 인터프리터가 직접 한 줄씩 해석(번역)하고 실행하는 언어

- 컴파일 언어에 비해서 실행 속도가 느리다.

- 예시 : R, python, Javascript

 

  • 자바스크립트는 인터프리터 언어이지만 플랫폼 엔진에 따라 컴파일을 거칠 수 있다.

- 자바스크립트가 인터프리터 언어임에도 성능이 빠른 이유이다.

- 자바스크립트의 컴파일 과정

  (1) 인터프리터가 코드를 읽으면서 실행한다.

  (2) 코드가 실행되기 직전에 프로파일러가 컴파일을 통해 최적화할 수 있는 코드를 컴파일러에게 넘겨준다.

  (3) 토크나이징/렉싱 → 파싱 → 기계어 코드 생성의 단계를 거쳐 컴파일된다.

 

- 자바스크립트의 컴파일은 실행 직전 일어나기 때문에 JIT 컴파일이라고 부른다. (Just In Time)

 

 

6. 자바스크립트는 객체지향 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.

7. 자바스크립트의 현 표준은 2015년에 발표된 ES6이다.

8. 자바스크립트에서 함수는 일급 객체이다 → 따라서 고차 함수 구현을 통한 함수형 프로그래밍이 가능

 

 

일급 객체

- 다른 객체들에 일반적으로 적용 가능한 연산들을 모두 지원하는 객체

- 일급 객체의 조건

  (1) 변수에 할당할 수 있어야 한다.

  (2) 다른 함수의 인자로 전달될 수 있어야 한다.

  (3) 다른 함수의 결과로 리턴될 수 있어야 한다.

 

- 함수가 일급 객체임에 따라 등장하는 개념

  (1) 고차함수 (Higher-order Function) : 함수를 인자로 전달받거나 리턴하는 함수

  (2) 콜백함수 (Callback Function) : 인자로 전달되는 함수