본문 바로가기
카테고리 없음

21 빌트인 객체

by lacuca9 2024. 9. 28.

자바 스크립트 객체의 분류

  • 표준 빌트인 객체 (standard built-in objects / native objects / global objects)
    전역의 공통 기능을 제공. 실행 환경과 관계없이 언제나 사용 가능
    별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다
  • 호스트 객체 (host objects)
    실행 환경에서 추가로 제공하는 객체
  • 사용자 정의 객체 (user-defined objects)
    사용자가 직접 정의한 객체

표준 빌트인 갱체

JS는 40여개의 표준 빌트인 객체를 제공.

Math, Reflect, JSON을 제외한 표준 빌트인 객체는 모두 인스턴스를 생성할 수 있는 생성자 함수 객체.

생성자 함수 객체인 표준 빌트인 객체는 프로토타입 메서드와 정적 메서드를 제공

아니면 정적 메소드만 제공

 

래퍼 객체(wrapper object)

문자열, 숫자, 불리언 값에 대해 객체처럼 접근하면 생성되는 임시 객체

const str = 'hi';

// 원시 타입인 문자열이 래퍼 객체인 String 인스턴스로 변환된다.
console.log(str.length); // 2
console.log(str.toUpperCase()); // HI

// 래퍼 객체로 프로퍼티에 접근하거나 메서드를 호출한 후, 다시 원시값으로 되돌린다.
console.log(typeof str); // string

이때 문자열 래퍼 객체인 String 생성자 함수의 인스턴스는 String.prototype의 메서드를 상속받아 사용할 수 있다

래퍼 객체의 처리가 종료되면 [[StringData]] 내부 슬롯에 할당된 원시값으로 원래 상태로 되돌리고 가비지 컬렉션 대상이됨

 

문자열, 숫자, 불리언, 심벌 외의 원시값, 즉 null과 undefined는 래퍼 객체를 생성x

null, undefined 값을 객체처럼 사용하면 에러가 발생

 

전역 객체(global object)

코드 실행 이전 단계에서 JS 엔진에 의해 어떤 개게보다도 먼저 생성되는 특수 객체.

어떤 객체에도 속하지 않은 최상위 객체.

브라우저 환경 : window(또는 self, this, frames)

Node.js : global

 

ES11에서 도입된 globalThis는 이름을 통일한 식별자

 

전역 객체는 표준 빌트인 객체와 환경에 따른 호스트 객체,

그리고 var 키워드로 선언한 전역 변수와 전역 함수를 프로퍼티로 갖는다.

계층적 구조상 어떤 객체에도 속하지 않은 모든 빌트인 객체의 최상위 객체

 

특징 :

  • 개발자가 의도적으로 생성할 수 없다. 전역 객체를 생성할 수 있는 생성자 함수가 제공되지 않는다
  • 프로퍼티를 참조할 때 window(또는 global)를 생략할 수 있다

 

let이나 const 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다

 

전역 객체의 프로퍼티와 메서드는 전역 변수와 전역 함수처럼 사용할 수 있다