1. 객체
자바스크립트의 거의 모든 것은 객체이다. 거의 라는 표현을 쓰는 이유는 몇가지 제외되기 때문이다.
바로 기본 데이터 타입인 boolean, number, string이다. 그리고 null undefined도 해당된다.
이를 제외한 나머지는 모두 객체이다.
boolean, number, string은 객체처럼 다룰 수도 있다.
2. 함수
자바스크립트에서는 함수도 객체로 취급한다. 일반적인 객체보다 조금 더 많은 기능이 있는 객체라고 할 수 있다.
하지만 이렇게 단순히 표현하기엔 자바스크립트에서 함수는 상당히 중요하다. 이는 함수가 일급 객체(First class object)로 다뤄지기 때문이다.
3. 프로토 타입
모든 객체는 숨겨진 링크(link)인 프로토타입(prototype)을 가진다. 이 링크는 해당 객체를 생성한 생성자의 프로토타입 객체를 가리킨다. 이 링크를 ECMAScript에서는 [[prototype]]이라고 표현한다.
이 링크로 자바스크립트는 훨씬 더 다양하게 자신만의 자료 구조를 작성할 수 있다.
4. 실행 컨텍스트와 클로저
자바스크립트는 자신만의 독특한 과정으로 실행 컨텍스트를 만들고 그 안에서 실행이 이루어진다.
이 실행 컨텍스트는 자신만의 유효 범워(Scope)를 갖는데, 이 과정에서 클로저를 구현할 수 있다.
이것은 자바스크립트를 제대로 이해하기 위한 핵심 개념이지만, 이해하기가 그렇게 쉬운 개념은 아닌 듯 하다.
'프로그래밍 > JavaScript' 카테고리의 다른 글
원신 MBTI를 만들어 봤습니다. (휴대폰 미디어 쿼리 완료) (0) | 2021.08.13 |
---|---|
[JS] DOM 연습 (0) | 2021.01.15 |
자바스크립트 함수의 정의 (0) | 2020.12.30 |
자바스크립트 == (동등) 연산자와 === (일치) 연산자 (0) | 2020.12.30 |
자바스크립트 데이터 타입과 연산자! (0) | 2020.10.14 |