자바스크립트에서의 빌트인 객체

Javascript

객체의 분류

표준 빌트인 객체

ECMAScript 사양에 정의된 객체이므로 자바스크립트 실행 환경과 관계없이 언제나 사용할 수 있다. 이는 전역 객체의 프로퍼티로서 제공되며 별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다.

호스트 객체

ECMAScript 사양에 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가로 제공하는 객체를 말한다. 브라우저 환경에서는 Web API를 호스트 객체로 제공하고, Node.js 환경에서는 Node.js 고유의 API를 호스트 객체로 제공한다.

사용자 정의 객체

사용자가 직접 정의한 객체를 의미한다.

원시값과 래퍼 객체

흔히 다른언어에서 원시값이 선언되어 있고, 그건의 길이또는 크기를 알고싶을때 우리는 .length, .size() 이런 함수를 사용한다. 이와 마찬가지로 자바스크립트에서도 문자열, 숫자, 불리언 값에 대해 마침표 표기법으로 접근하면 엔진이 일시적으로 원시값을 연관된 객체로 변환하여 프로퍼티에 접근하거나 메서드를 호출하고 다시 원시값으로 되돌린다.

이를 객체처럼 접근하면 생성되는 임시 객체를 래퍼 객체라고 한다.

이때 원시값으로 되돌리고 래퍼 객체는 가비지 컬렉션의 대상이 된다.

문자열, 숫자, 불리언, 심벌 이외의 원시값 null과 undefined는 래퍼 객체를 생성하지 않는다. 따라서 객체처럼 사용하면 에러를 발생한다.

전역 객체

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

전역 객체는 표준 빌트인 객체, 호스트 객체, var 키워드로 선언한 전역 변수와 전역 함수를 프로퍼티로 갖는다.

  1. var 키워드로 선언한 전역 변수와 선언하지 않은 변수에 값을 할당한 암묵적 전역
  2. let, const 선언한 전역 변수는 전역 객체의 프로퍼티가 아니다.
encodeURI/decodeURI

encodeURI는 완전한 URI를 문자열로 전달받아 이스케이프 처리를 위해 인코딩한다. URI는 인터넷에 있는 자원을 나타내는 유일한 주소를 말한다. 하위 개념으로 URL, URN이 있다.

decodeURI 함수는 인코딩된 URI를 인수로 전달받아 이스케이프 처리 이전으로 디코딩한다.