21장 빌트인 객체

Eriniss·2022년 6월 3일
0

21.1 자바스크립트 객체의 분류

  • 표준 빌트인 객체
    표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다.

  • 호스트 객체
    호스트 객체는 ECMAScript 사양에 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가로 제공하는 객체를 말한다.

  • 사용자 정의 객체
    사용자 정의 객체는 표준 빌트인 객체와 호스트 객체처럼 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체를 말한다.

21.2 표준 빌트인 객체

자바 스크립트는 40여 개의 표준 빌트인 객체를 제공하며 대부분 생성자 함수로 호출하여 인스턴스를 생성할 수 있다.

21.3 원시값과 래퍼 객체

원시값에 객체처럼 접근하면 임시객체를 생성하여 프로퍼티나 메서드를 받고 다시 원시 값으로 되돌아 간다. 이때 변경된 객체는 원시값에 영향을 줄 수 없으며 후에 가비지 컬렉션이 된다.

원시값 -> 객체 -> 원시값

[예제 21-07]

const num = 1.5;

// 원시 타입인 숫자가 래퍼 객체인 Number 객체로 변환된다.
console.log(num.toFixed()); // 2

// 래퍼 객체로 프로퍼티에 접근하거나 메서드를 호출한 후, 다시 원시값으로 되돌린다.
console.log(typeof num, num); // number 1.5
  • string, number, boolean을 new 연산자로 인스턴스를 생성하는 것은 권장하지 않는다.
const objNum = new Number(123);

console.log(objNum) // Number {123}

21.4 전역 객체

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

21.4.1 빌트인 전역 프로퍼티

전역 객체의 프로퍼티를 의미한다.

Infinity

Infinity 프로퍼티는 무한대를 나타내는 숫자값 Infinity를 갖는다.

NaN

NaN는 숫자가 아님(Not-a-Number)을 나타내는 숫자값 NaN를 갖는다.

undefined

undefined 프로퍼티는 원시 타입 undefined를 값으로 갖는다.

21.4.2 빌트인 전역 함수

eval

eval은 문자열을 실행. 표현식의 경우 런타임에 평가하여 값을 생성하고 표현식이 아닌 문일 경우 문자열 코드를 런타임에 실행한다.
eval은 보안상의 이유와 느린 처리속도로 사용금지해야 한다.

isFinite

isFinite 전달받은 인수가 유한이면 ture, 무한 또는 NaN이면 false를 반환한다.

isNaN

isNaN 인수가 NaN인기 검사하여 불리언으로 반환한다.

parseFloat

parseFloat 전달받은 문자열 인수를 부동 소수점 숫자, 즉 실수로 해석하여 반환한다.

parseInt

parseInt 전달받은 문자열 인수를 정수로 해석하여 반환한다. 문자열 타입이 아닌 숫자타입도 정수로 반환한다. 또한 여러 진수로 표현 가능하다.

encodeURI/decodeURI & enCodeURIComponent/deCodeURIComponent

enCodeURI/deCodeURI 파트와 enCodeURIComponent/deCodeURIComponent는 생략

21.4.3 암묵적 전역

함수 내에서 변수를 할당하지 않고 값을 입력할 경우 마치 전역변수 처럼 작동하는 암묵적 전역 현상이 발생한다.

[예제 21-37]

var x = 20; // 전역 변수

function foo () {
  // 선언하지 않은 식벽자에 값을 할당
  y = 30; // window.y = 20;
}
foo();

// 선언하지 않은 식별자 y를 전역에서 참조할 수 있다.
console.log(x + y); // 50

0개의 댓글