상세 컨텐츠

본문 제목

자바스크립트 특징

자바스크립트/바닐라 자바스크립트

by 모든지 신나게 2020. 4. 20. 11:07

본문

1. 자바스크립트의 개요

자바스크립트의 특징

인터프리터 언어이다.

  • 단 최근 브라우저에 JIT 컴파일러가 내장되어 있어 실생 속도가 매우 빨라졌다.

동적 프로토타입 기반 객체 지향 언어이다.

  • C++이나 Java 등은 클래스를 이용하여 객체를 생성하는 클래스 기반 객체 지향 언어이지만 자바스크립트는 클래스가 아닌 프로토타입을 상속하는 프로토타입 객체 지향 언어이다.
  • 자바스크립트에서는 객체를 생성한 훙에도 프로퍼티와 메서드를 동적으로 추가하거나 삭제가 가능하다. C++, Java와 다른 점 중 하나이다.

동적 타입 언어다.

  • C++, Java는 실행되기 전 변수 타입이 결정되는 정적 타입 언어이지만 자바스크립트는 변수 타입이 없기 떄문에 프로그래을 실행하는 도중에 변수에 저장되는 데이터 타입이 동적으로 바뀔 수 있다. 이를 동적 타입 언어라 한다.

함수가 일급 객체이다.

  • 자바스크립트의 함수는 객체이며, 함수에 함수를 인수로 넘길 수 있다.
  • 이런 특성을 활용하여 고차 함수를 구현할 수 있어 함수형 프로그래밍이 가능해진다.

함수가 클로저를 정의한다.

  • 자바스크립트의 함수는 클로저(closure)를 정의한다.
  • 클로저로 변수를 은닉하거나 영속성을 보장하는 등 다양한 기능을 구현할 수 있다.

자바스크립트의 기술적 요소

다음은 자바스크립트에서 가장 중요한 부분이다.

ECMAScript(코어 언어)

  • 자바스크립트의 핵심 기술은 ECMAScript로 규정되어 있다.
  • 예전에는 언어 취급을 받지 못하던 자바스크립트가 프로그래밍 언어의 구색을 갖춘 이유 중 하나이다.

클라이언트 측의 고유한 기술 요소

  • 웹 브라우저에서 동작하는 자바스크립트를 클라이언트 측 자바스크립트라고 한다.

  • 클라이언트 측 자바스크립트는 ECMAscript가 규정한 코어 언어와 웹 브라우저의 API로 구성되어있다. 다음은 주요 API를 설명한다.

    • Window 인터페이스 : 자바스크립트로 브라우저 또는 창을 조작하는 기능을 제공한다.
    • DOM : 자바스크립트로 HTML 문서의 요소를 제어하는 기능을 제공한다.
    • XMLHttpRequest : 서버와 비동기로 통신하는 기능을 제공한다.
  • 또한 HTML5에 규정된 다양한 API도 사용할 수 있다.

    • API 설명
      Drag and Drop HTML 요소 혹은 파일을 드래그해서 다른 HTML 요소에 놓을 떄 데이터를 전달하는 기능을 제공한다.
      Blob 이진 데이터를 다루는 기능을 제공한다.
      File 로컬 파일 시스템을 읽고 쓸 수 있는 기능을 제공한다.
      Web Workers 프로그램 여러 개를 멀티스레드로 병렬 처리하는 기능을 제공한다.
      Web Storage 대용량이며 저장 기간에 제한이 없는 데이터를 로컬에 저장하는 기능을 제공한다.
      Indexed Database 로컬에 키-값(key-value) 타입의 관게형 데이터베이스 기능을 제공한다.
      WebSockets 서버와 양방향 통신 기능을 제공한다.
      Geolocation GPS 등의 위치 정보를 다루는 기능을 제공한다.
      Canvas 2차원, 3차원 그래픽스 기능을 제공한다.

서버 측 자바스크립트의 고유한 기술 요소

예전에는 웹 서버는 Java, php등이 점유율이 높았지만 배우기 쉬운 python과 프론트쪽과 연계하기 쉬운 자바스크립트도 점유율을 점점 높이고 있는 추세이다. 특히 자바스크립트가 발전한 이유 중 하나인 Node.js가 웹 애플리케이션 개발에 많이 쓰인다.

ECMAScript 6

ECMAScript 6은 2015년 6월에 권고된 새로운 ECMAScript 바전이며 ECMAScript 2015라 부르고 줄여서 ES6이라고 부르기도 한다.

ES6은 다른 프로그래밍 언어가 제공하는 다양한 기능을 추가하면서 자바스크립트가 프로그래밍 언어라 불리게 되었고 이전 자바스크립트의 호환성도 보장한다.

'자바스크립트 > 바닐라 자바스크립트' 카테고리의 다른 글

자바스크립트 함수  (0) 2020.04.20
자바스크립트 기초  (0) 2020.04.20

관련글 더보기

댓글 영역