Characteristics of JavaScript 자바스크립트의 특징

wiz·2022년 5월 2일
0

분류

  • 고급 언어
  • 인터프리터 언어(클라이언트의 웹 브라우저에 의해 해석되고 실행)
    • 컴파일 과정을 거치지 않는 인터프리터 언어 형태이기 때문에 비교적 자료형 조사를 철저하게 하지 않는다
  • 객체 지향형 프로그래밍과 함수형 프로그래밍을 어느정도 모두 표현할 수 있다
    • 동적 프로토타입 기반 객체지향 언어
    • 동적 타입 언어이다
    • 함수가 일급 객체이다
    • 함수가 클로저를 정의한다

기타 특징

  • 이벤트 중심(event-driven)의 프로그래밍 언어
  • HTML 문서 내에 기술되어지고 HTML 문서와 함께 수행되어지는 언어
    • 웹 문서(HTML)에 삽입해서 사용하는 스크립트 언어
  • 웹 브라우저에서 웹 문서를 실행할 때 프로그램 코드가 해석됩니다.
  • HTML에 연산, 제어 등 프로그래밍적인 요소를 만들고  DOM과 이벤트 제어를 위해 사용되며 클라이언트의 자원도 활용할 수 있다
  • 자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용할 수 있다
  • 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있다

장점

  • 자바스크립트는 HTML 파일 내에서 작성할 수 있으므로 개발 속도가 빠릅니다.
  • 웹 브라우저에서 동작하는 스크립트 언어로 운영체제의 제한을 받지 않는다
  • 컴파일 과정이 따로 필요없으며 바로 화면에 적용가능하다
  • 인터프리터 언어로서 동적이기 때문에 타입을 명시할 필요가 없다

단점

  • 브라우저상에서 소스 코드가 노출되어 있어 보안에 취약하다
  • 컴파일하지 않는 언어이므로 복사하여 그대로 사용할 수 있다
  • 한정된 객체와 객체 함수 제공한다
  • 브라우저에 종속적, 의존적이다
    • 브라우저의 정책, 브라우저의 종류에 영향을 받는다
  • 예측하기 어려운 this 바인딩, 호이스팅
  • 언어 차원에서 immutable 을 제공해주지 않는다
    • 함수형 프로그래밍에 immutable 불변성은 매우 중요하다
  • 객체가 너무나 동적이다
    • 속성 추가, 삭제, 수정이 너무나 자유롭다

reference

profile
성장 중인 프론트엔드 개발자

0개의 댓글