Built in Object

지환·2024년 6월 16일
0

자바스크립트

목록 보기
23/30

자바스크립트 객체는 크게 3가지로 분류 된다.

표준 빌트인 객체 : ECMAScript 사양에 정의된 객체를 의미, 애플리케이션 전역에 공통 기능을 제공, 전역 객체의 프로퍼티로 제공되므로 별도의 선언 없이 전역 변수처럼 언제나 참조가능

호스트 객체 : ECMAScript 사양에 정의되어 있지는 않지만, 브라우저 환경 or Node.js 환경에서 추가로 제공하는 객체를 의미

사용자 정의 객체 : 사용자가 직접 정의한 객체를 의미

표준 빌트인 객체

인스턴스를 생성 할 수 있는 생성자 함수 객체이다.

  • 자바스크립트 Object, String, Number, Boolean, Symbol, Array, Map/Set, Function 등 40여 개의 표준 빌트인 객체를 제공

  • 프로토타입 메서드와 정적 메서드를 제공

  • 이 중 Math, Reflect, JSON 는 정적 메서드만 제공

원시값과 래퍼 객체

문자열, 숫자, 불리언 같은 원시값 에 대해 객체처럼 접근하면 생성되는 임시 객체 를 래퍼 객체(wrapper object) 라고 한다.

  • 문자열, 숫자, 불리언 등의 원시값이 마치 객체처럼 마침표(.) 나 대괄호 표기법으로 접근하여 메서드를 호출할 수 있다.

    • 이는, 자바스크립트 엔진이 일시적으로 원시값을 연관된 객체로 변환 해주기 때문
    • 즉, 암묵적으로 엔진이 연관된 객체를 생성하여 생성된 객체로 프로퍼티에 접근하거나 메서드를 호출하고 다시 원시값으로 되돌린다.
  • 예 ) 문자열 원시값에 대해, 마침표 표기법으로 접근하면, 그 순간 래퍼 객체인 String 생성자 함수의 인스턴스가 생성되고, 문자열은 래퍼 객체의 [[StringData]] 내부 슬롯에 할당

  • 래퍼 객체의 역할이 끝나면, 원시값은 다시 식별자에 연결되고 래퍼 객체는 가비지 컬렉션 의 대상이 된다.

전역 객체

  • 자바스크립트 엔진에 의해 어떤 객체보다도 먼저 생성되는 특수한 객체를 전역 객체라고 한다.

  • 브라우저 환경에서는 window, self, this, frames 로 사용하며, Node.js 환경에서는 global 로 전역 객체에 접근

  • 전역 객체는 준 빌트인 객체 , 호스트 객체, var 키워드로 선언한 전역 변수나 전역 함수 를 프로퍼티로 가진다.

전역 객체는 다음의 특징을 갖는다.

전역 객체를 생성할 수 있는 생성자 함수가 제공되지 않는다.

  • 전역 객체의 프로퍼티를 참조할 때, window(또는 global)를 생략할 수 있다.
    전역 객체는 표준 빌트인 객체를 프로퍼티로 가진다

  • 브라우저, Node.js 등 환경에 따라, 추가적인 프로퍼티/메서드를 갖는다.

  • var 키워드로 선언한 전역 변수와 선언하지 않은 변수에 값을 할당한 암묵적 전역, 전역 함수는 전역 객체의 프로퍼티가 된다.

  • let, const 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다. ( 즉, window(또는, global) 로 접근할 수 없다.)

  • 이 키워드로 선언한 전역 변수는, 보이지 않는 개념적인 블록(전역 렉시컬 환경의 선언적 환경 레코드) ) 내에 존재하게 된다.

  • 모든 자바스크립트 코드는 하나의 전역 객체를 공유한다.

profile
아는만큼보인다.

0개의 댓글