빌트인 객체

김민수·2023년 10월 29일
0
post-thumbnail

1. 자바스크립트 객체의 분류

  • 표준 빌트인 객체
    • ECMAScript 사양에 정의된 객체이며, 자바스크립트 실행환경과 상관없이 언제나 사용할 수 있다.
    • 별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다.
  • 호스트 객체
    • 클라이언트 사이드 Web API를 호스트 객체로 제공하고, Node.js 환경에서는 고유의 API를 호스트 객체로 제공한다.
  • 사용자 정의 객체
    • 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체

2. 표준 빌트인 객체

  • 자바스크립트는 40여 개의 표준 빌트인 객체를 제공한다.
  • Math.Reflect, JSON을 제외한 표준 빌트인 객체는 모두 인스턴스를 생성할 수 있는 생성자 함수 객체다.
  • 표준 빌트인 객체는 프로토타입 메서드와 정적 메서드를 제공하고 생성자 함수 객체가 아닌 표준 빌트인 객체는 정적 메서드만 제공한다.
// String 생성자 함수에 의한 String 객체 생성
const strObj = new String('Lee'); // String {"Lee"};

// String 생성자 함수를 통해 생성한 strObj 객체의 프로토타입은 String.prototype이다.
console.log(Object.getPrototypeOf(strObj) === String.prototype) // true

3. 원시값과 래퍼 객체

cosnt str = 'hello';

// 원시 타입인 문자열이 프로퍼티와 메서드를 갖고 있는 객체처럼 동작한다.
console.log(str.length);        // 5
console.log(str.toUpperCase()); // HELLO

원시값을 객체처럼 사용하면 자바스크립트 엔진은 암묵적으로 연관된 객체를 생성하여 생성된 객체로 프로퍼티에 접근하거나 메서드를 호출하고 다시 원시 값으로 되돌린다.
래퍼 객체 : 문자열, 숫자, 불리언 값에 대해 객체처럼 접근하면 생성되는 임시 객체

그 후, 래퍼 객체의 처리가 종료되면 래퍼 객체의 원시값으로 원래의 상태, 즉 식별자가 원시값을 갖도록 되돌리고 래퍼 객체는 가비지 컬렉션의 대상이 된다.

  • null, undefined는 래퍼 객체를 생성하지 않는다. -> 객체처럼 사용하면 에러가 발생한다.

4. 전역 객체

전역 객체 : 코드가 실행되기 이전 단계에 자바스크립트 엔진에 의해 어떤 객체보다도 먼저 생성되는 특수한 객체이며, 어떤 객체에도 속하지 않은 최상위 객체다.

  • 브라우저 환경에서는 window, Node.js 환경에서는 global가 전역 객체를 가리킨다.
  • 전역 객체는 계층적 구조상 어떤 객체에도 속하지 않은 모든 빌트인 객체의 최상위 객체다.

전역 객체의 특징

  • 전역 객체는 개발자가 의도적으로 생성할 수 없다.
  • 전역 객체의 프로퍼티를 참조할 때 window or global를 생략할 수 있다.
  • 모든 표준 빌트인객체를 프로퍼티로 가지고 있다.
  • 자바스크립트 실행 환경에 따라 추가적으로 프로퍼티와 메서드를 갖는다.
    • 브라우저, Node.js 환경에서 고유의 호스트 객체로 제공
  • var 키워드로 선언한 전역 변수와 선언하지 않은 변수에 값을 할당한 암묵적 전역. 그리고 전역 함수는 전역 객체의 프로퍼티가 된다.
  • let ,const 키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다. 즉, window, 등으로 접근할 수 없다.
  • 브라우저 환경의 모든 자바스크립트 코드는 하나의 전역 객체 window를 공유한다.

빌트인 전역 프로퍼티

  • Infinity
  • NaN
  • undefined

빌트인 전역 함수

  • eval
  • isNaN
  • parseFloat
  • encodeURI / decodeURI
  • encodeURIComponent / decodeURIComponent

0개의 댓글