Language/JavaScript [JavaScript] 전역 객체와 래퍼 객체
  • 728x90
    반응형

     

     

     

     

    전역 객체(global object)

    전역 객체란 자바스크립트에 미리 정의된 객체로 전역 프로퍼티나 전역 함수를 담는 공간의 역할을 한다.

    전역 객체 그 자체는 전역 범위(global scope)에서 this 연산자를 통해 접근할 수 있다.

     

    자바스크립트에서 모든 객체는 전역 객체의 프로퍼티가 된다.

    웹 브라우저가 새로운 페이지를 로드(load) 하면, 자바스크립트는 새로운 전역 개체를 만들고 해당 프로퍼티들을 초기화 한다.

     

     

     

    래퍼 객체(wrapper object)

    🔔 예제)

    
    var str = "문자열";		     // 문자열 생성
    var len = str.length;		// 문자열 프로퍼티인 length 사용

     

    위의 예제에서 생성한 문자열 리터럴 str은 객체가 아닌데도 length 프로퍼티를 사용할 수 있다.

    프로그램이 문자열 리터럴 str의 프로퍼티를 참조하려고 하면, 자바스크립트는 new String(str)을 호출한 것처럼 문자열 리터럴을 객체로 자동 변환해 주기 때문이다.

     

    이렇게 생성된 임시 객체는 String 객체의 메소드를 상속받아 프로퍼티를 참조하는 데 사용된다.

    이후 프로퍼티의 참조가 끝나면 사용된 입시 객체는 자동으로 삭제된다.

    이렇게 숫자, 문자열, 불리언 등 원시 타입의 프로퍼티에 접근하려고 할 때 생성되는 임시 객체를 래퍼 객체(wrapper object)라고 한다.

     

    🔔 예제)

    <!DOCTYPE html>
    <html lang="ko">
    
    <head>
        <meta charset="UTF-8">
        <title>JavaScript Standard Object</title>
    </head>
    
    <body>
        <h1>레퍼 객체</h1>
        <script>
            var str = "문자열";                            // 문자열 리터럴 생성
            var strObj = new String(str);                // 문자열 객체 생성
    
            // 리터럴 값은 내부적으로 래퍼 객체를 생성한 후에 length 프로퍼티를 참조함.
            document.write(str.length + "<br>");
    
            document.write((str == strObj) + "<br>");    // 동등 연산자는 리터럴 값과 해당 래퍼 객체를 동일하게 봄.
            document.write((str === strObj) + "<br>");    // 일치 연산자는 리터럴 값과 해당 래퍼 객체를 구별함.
    
            document.write(typeof str + "<br>");        // string 타입
            document.write(typeof strObj + "<br>");        // object 타입
       </script>
    </body>
    </html>

     

    실행결과

    레퍼 객체

     

     

     

    표준 객체(standard object)

    자바스크립트에서 표준 객체(standard object)는 다른 객체의 기초가 되는 핵심적인 객체이다.

     

    자주 사용되는 대표적인 자바스크립트 표준 객체는 다음과 같다.

     

    1. Number 객체
    2. Math 객체
    3. Date 객체
    4. String 객체
    5. Array 객체

     

     

     

    728x90
    반응형

    'Language > JavaScript' 카테고리의 다른 글

    [JavaScript] Number 메소드  (0) 2018.10.18
    [JavaScript] Number 객체  (0) 2018.10.17
    [JavaScript] 프로토 타입  (0) 2018.10.17
    [JavaScript] 객체  (0) 2018.10.17
    [JavaScript] 함수  (0) 2018.10.16
상단으로