Characteristics of JavaScript 자바스크립트의 특징
분류
- 고급 언어
- 인터프리터 언어(클라이언트의 웹 브라우저에 의해 해석되고 실행)
- 컴파일 과정을 거치지 않는 인터프리터 언어 형태이기 때문에 비교적 자료형 조사를 철저하게 하지 않는다
- 객체 지향형 프로그래밍과 함수형 프로그래밍을 어느정도 모두 표현할 수 있다
- 동적 프로토타입 기반 객체지향 언어
- 동적 타입 언어이다
- 함수가 일급 객체이다
- 함수가 클로저를 정의한다
기타 특징
- 이벤트 중심(event-driven)의 프로그래밍 언어
- HTML 문서 내에 기술되어지고 HTML 문서와 함께 수행되어지는 언어
- 웹 문서(HTML)에 삽입해서 사용하는 스크립트 언어
- 웹 브라우저에서 웹 문서를 실행할 때 프로그램 코드가 해석됩니다.
- HTML에 연산, 제어 등 프로그래밍적인 요소를 만들고 DOM과 이벤트 제어를 위해 사용되며 클라이언트의 자원도 활용할 수 있다
- 자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용할 수 있다
- 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있다
장점
- 자바스크립트는 HTML 파일 내에서 작성할 수 있으므로 개발 속도가 빠릅니다.
- 웹 브라우저에서 동작하는 스크립트 언어로 운영체제의 제한을 받지 않는다
- 컴파일 과정이 따로 필요없으며 바로 화면에 적용가능하다
- 인터프리터 언어로서 동적이기 때문에 타입을 명시할 필요가 없다
단점
- 브라우저상에서 소스 코드가 노출되어 있어 보안에 취약하다
- 컴파일하지 않는 언어이므로 복사하여 그대로 사용할 수 있다
- 한정된 객체와 객체 함수 제공한다
- 브라우저에 종속적, 의존적이다
- 브라우저의 정책, 브라우저의 종류에 영향을 받는다
- 예측하기 어려운 this 바인딩, 호이스팅
- 언어 차원에서 immutable 을 제공해주지 않는다
- 함수형 프로그래밍에 immutable 불변성은 매우 중요하다
- 객체가 너무나 동적이다
reference