모던 자바스크립트 Deep Dive - 21장 빌트인 객체

어제보다·2024년 8월 1일
post-thumbnail

Javascript에는 객체를 3가지로 분류하고 있다.

  • 표준 빌트인 객체
  • 호스트 객체
  • 사용자 정의 객체

이번에는 빌트인 객체에 대해 알아보려고 한다.

표준 빌트인 객체

표준 빌트인 객체는 JavaScript에서 기본적으로 제공되는 객체로, 개발자가 자주 사용하는 기능들을 쉽게 활용할 수 있도록 미리 정의된 객체들이다.

// String 생성자 함수에 의한 String 객체 생성
const strObj = new String('Lee'); // String {"Lee"}
console.log(typeof strObj);       // object

// Number 생성자 함수에 의한 Number 객체 생성
const numObj = new Number(123); // Number {123}
console.log(typeof numObj);     // object

// Boolean 생성자 함수에 의한 Boolean 객체 생성
const boolObj= new Boolean(true); // Boolean {true}
console.log(typeof boolObj);      // object

// Function 생성자 함수에 의한 Function 객체(함수) 생성
const func = new Function('x', 'return x * x'); // ƒ anonymous(x )
console.log(typeof func);                       // function

// Array 생성자 함수에 의한 Array 객체(배열) 생성
const arr = new Array(1, 2, 3); // (3) [1, 2, 3]
console.log(typeof arr);        // object

// RegExp 생성자 함수에 의한 RegExp 객체(정규 표현식) 생성
const regExp = new RegExp(/ab+c/i); // /ab+c/i
console.log(typeof regExp);         // object

// Date 생성자 함수에 의한 Date 객체 생성
const date = new Date();  // Fri May 08 2020 10:43:25 GMT+0900 (대한민국 표준시)
console.log(typeof date); // object

원시값과 래퍼 객체

const str = 'hello';
 
console.log(str.length); // 5
console.log(str.toUpperCase()); // HELLO
 
// 래퍼 객체로 프로퍼티에 접근하거나 메서드를 호출한 후, 다시 원시값으로 되돌린다.
console.log(typeof str); // string
  • 사실 Javascript에는 이미 문자열, 숫자, 불리언 등의 원시값이 존재한다. 그럼에도 객체를 생성하는 String, Number, Boolean 등의 표준 빌트인 생성자 함수가 존재한다.
    그 이유를 알아보자.
  • 예시에서 str은 원시 데이터 타입인데 객체 처럼 동작하고 있다. JavaScript에서 "."은 객체에만 접근할 수 있는 Object Access Operator다. 즉, 이 예시에서 str은 객체라는 말이다.
  • JavaScript에서는 이러한 동작을 하기 위해선 객체여야만 하기 때문에 암묵적으로 연관된 객체를 생성하여 생성된 객체로 프로퍼티에 접근하거나 매서드를 호출하고 다시 원시값으로 되돌린다.
  • 이때 임시적으로 생성되는 객체를 "래퍼 객체"라고 한다.

참고자료: 모던 자바스크립트 Deep Dive 교재

profile
똑똑해지는중...

0개의 댓글