[모던자바스크립트] 21. 빌트인 객체

이아현·2023년 9월 13일
0
post-thumbnail

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

  • 표준 빌트인 객체 : 애플리케이션 전역의 공통 기능을 제공
  • 호스트 객체 : 자바스크립트 실행 환경에서 추가로 제공하는 객체
  • 사용자 정의 객체 : 사용자가 직접 정의한 객체

✅ 2. 표준 빌트인 객체

  • 자바스크립트는 40여 개의 표준 빌트인 객체를 제공
  • Math, Reflect, JSON을 제외한 표준 빌트인 객체는 모두 인스턴스를 생성할 수 있는 생성자 함수
    • 생성자 함수 객체 - 프로토타입 메서드와 정적 메서드 제공
    • 생성자 함수가 아닌 표준 빌트인 객체 - 정적 메서드만 제공

✅ 3. 원시값과 래퍼 객체

  • 문자열, 숫자, 불리언 등의 원시값이 있음에도 불구하고 String, Number, Boolean과 같은 표준 빌트인 생성자 함수가 존재하는 이유가 무엇인가?
    • 원시값은 객체가 아니므로 프로퍼티나 메서드를 가질 수 없지만 자바스크립트 엔진은 일시적으로 원시값을 연관된 객체로 변환해준다. 원시값을 객체처럼 사용하면 자바스크립트 엔진은 암묵적으로 연관된 객체를 생성하여 생성된 객체로 프로퍼티, 메서드를 사용하고 다시 원시값으로 되돌린다.
    • 래퍼 객체 : 문자열, 숫자, 불리언 값에 대해 객체처럼 접근하면 생성되는 임시 객체
    • 래퍼 객체의 처리가 종료되면 가비지 컬렉션의 대상이 됨

✅ 4. 전역 객체

  • 어떤 객체보다도 먼저 생성되는 특수한 객체이며, 어떤 객체에도 속하지 않은 최상위 객체

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

  • 빌트인 전역 프로퍼티

    • Infinity : 무한대를 나타내는 숫자값
    • NaN : 숫자가 아님(Not - a - Number)을 나타내는 숫자값
    • undefined : 원시타입 undefined를 값으로 가짐
  • 빌트인 전역 함수

    • eval : 자바스크립트 코드를 나타내는 문자열을 인수로 전달받음
    • isFinite : 정상적인 유한수인지 검사하여 유한수면 true 아니면 false 반환
    • isNaN : 전달받은 인수가 NaN인지 검사하여 불리언 타입으로 반환
    • parseFloat : 실수로 해석하여 반환
    • parseInt : 정수로 해석하여 반환
    • encodeURI / decodeURI : 완전한 URI를 문자열로 전달받아 이스케이프 처리를 위해 인코딩
    • encodeURIComponent / decodeURIComponent : URI 구성요소를 인수로 전달받아 인코딩
  • 암묵적 전역

    var x = 10; // 전역변수
    
    function foo() {
    	y = 20;
    }
    foo();
    
    console.log(x+y); // 30
    • 선언하지 않은 식별자에 값을 할당하면 위의 예제에서 y와 같이 전역 객체의 프로퍼티가 됨
    • y는 변수 선언 없이 단지 전역 객체의 프로퍼티로 추가되었기 때문에 delete 연산자로 삭제할 수 있음
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글