어제의 나보다 성장한 오늘의 나

자바스크립트의 핵심 개념 본문

공부/JavaScript && jquery

자바스크립트의 핵심 개념

NineOne 2021. 4. 8. 22:37

객체

  • 자바스크립트의 '거의' 모든 것은 객체이다.
  • 몇 가지가 제외된다. 기본 데이터 타입인 boolean, number, string이다.
  • 특별한 값인 null, undefined도 해당된다. 이를 제외한 나머지는 모두 객체이다.
  • 상황에 따라선 기본 데이터 타입은 모두 객체처럼 다룰 수도 있다. 그렇기 때문에 자바스크립트는 null과 undefined를 제외한 모든 것을 객체로 다룰 수 있다. 

함수

  • 함수도 객체 취급한다. 일반적인 객체보다 조금 더 많은 기능이 있는 객체라고 할 수 있다.
  • 단순히 표현하기엔 자바스크립트에서 함수는 상당히 중요하고, 함수가 일급 객체로 다뤄지기 때문이다.

프로토 타입

  • 모든 객체는 숨겨진 링크(Link)인 프로토타입을 가진다.
  • 이 링크는 해당 객체를 생성한 생성자의 프로토타입 객체를 가리킨다.
  • 이 링크로 자바스크립트는 훨씬 더 다양하게 자신만의 자료구조를 작성할 수 있다.

실행 컨텍스트와 클로저

  • 자바스크립트는 자신만의 독특한 과정으로 실행 컨텍스트를 만들고 그 안에서 실행이 이루어진다.
  • 이 실행 컨텍스트는 자신만의 유효 범위(Scope)를 갖는데, 이 과정에서 클로저를 구현할 수 있다.

객체지향 프로그래밍

  • 자바스크립트는 클래스를 지원하지 않지만 객체지향 프로그래밍이 가능하다.

함수형 프로그래밍

  • 자바스크립트는 함수형 프로그래밍이 가능하다.
  • 함수형 프로그래밍은 높은 수준의 모듈화를 가능케 하는 매우 효율적인 프로그래밍 방법이다.
  • 주요 특성인 일급 객체로서의 함수 특성과 클로저를 활용하여 이를 가능케 한다.
  • 하지만 이 때문에, 가독성을 떨어뜨리기도 한다.

자바스크립트의 단점

  • 굉장한 유연한 언어이고 뛰어난 표현력을 가지고 있다. 하지만 이러한 특성 때문에 종종 디버깅에 어려움을 겪는다.
  • 느슨한 타입 체크는 개발자에게 타입 체크에 대한 자유를 주지만, 컴파일 타임에 잡지 못하는 오류는 고스란히 런타임 오류로 발견된다.
  • 또한 중요한 논란 중에 하나가 전역 객체의 존재이다. 최상위 레벨의 객체들은 모두 전역 객체 안에 위치하는데, 이는 이름 충돌의 위험성이 있다.

 

 

출처

인사이드 자바스크립트(송형주, 고현준 지음) - 한빛미디어

Comments