Javascript, 내장 객체

[1] 내장 생성자

  • 자바스크립트에 처음부터 포함
  • 이 생성자는 모든 자바스크립트 실행 환경에서 사용할 수 있다.
  • 내장 생성자에는 이미 유용한 프로퍼티와 메서드가 마련되어 있어 이를 이용하여 객체를 생성하면 다양한 작업을 쉽게 처리할 수 있다.

< ECMAScript 5의 내장 생성자 >

생성자 이름생성되는 객체
Object일반 객체
String문자열 객체
Number숫자 객체
Boolean논리값 객체
Array배열
Date날짜와 시간을 다루는 객체
Function함수 객체
RegExp정규 표현식 객체
Error오류 객체
EvalErroreval() 함수와 관련된 오류를 표현하는 객체
InternalError자바스크립트 내부에서 발생한 오류를 표현하는 객체
RangeError값이 허용 범위를 넘었을 때 발생한 오류를 표현하는 객체
ReferenceError없는 변수를 참조할 때 발생한 오류를 표현하는 객체
SyntaxError문법이 어긋날 때 발생한 오류를 표현하는 객체
TypeError값이 기대한 타입이 아닐 때 발생한 오류를 표현하는 객체
URIError잘못된 URI를 만났을 때 발생한 오류를 표현하는 객체

ECMAScript 6에서는 생성자가 더 추가되었다.

< ES6부터 추가된 주요 내장 생성자 >

생성자 이름생성되는 객체
Symbol심벌을 생성
Int8Array8부호가 있는 8비트 정수 배열을 생성
Unit8Array8부호가 없는 8비트 정수 배열을 생성
Int16Array16부호가 있는 16비트 정수 배열을 생성
Unit16Array16부호가 없는 16비트 정수 배열을 생성
Int32Array32부호가 있는 32비트 정수 배열을 생성
Unit32Array32부호가 없는 32비트 정수 배열을 생성
Float32Array3232비트 부동소수점 배열을 생성
Float64Array6464비트 부동소수점 배열을 생성
ArrayBuffer고정 길이 이진 데이터 버퍼를 생성
DateViewArrayBuffer 데이터를 읽고 쓸 수 있는 수단을 제공
Promise처리 지연 및 비동기 처리를 관리하는 수단을 제공
Generator제너레이터 함수를 다룰 수 있는 수단을 제공
GeneratorFunction제너레이터 함수를 생성
Proxy객체의 기본적인 동작을 재정의하는 기능을 제공
Mapkey/value 맵을 생성
Set중복을 허용하지 않는 데이터 집합을 생성
WeakMap약한 참조를 유지하는 key/value 맵을 생성
WeakSet약한 참조를 유지하는 고유한 데이터 집함을 생성

[2] Date 생성자

Date 생성자는 날짜와 시간을 표현하는 객체를 생성

Date 객체에 내장된 다양한 메서드를 활용하여 날짜와 시간 처리를 간단하게 할 수 있다.

var now = new Date();
console.log(now)    // → Sun Dec 11 2022 18:27:47 GMT+0900 (한국 표준시)

Date 객체는 Date 생성자로 생성. 위 코드를 실행하면 실행 시점의 날짜, 시간 정보를 담은 객체를 생성하고, 그 객체의 참조를 변수 now에 대입한다. 이후 console.log를 사욯하면 Date 객체의 날짜와 시간 정보를 볼 수 있다.

Date 생성자의 인수로 날짜와 시간을 전달하면 그 날짜와 시간을 가리키는 Date 객체가 생성된다.

var then = new Date(2008, 5, 10);
console.log(then);    // → Tue Jun 10 2008 00:00:00 GMT+0900 (한국 표준시)

Date 객체는 계산식 안에서는 밀리초 단위 정수로 값의 타입이 바뀐다.

var elapsed = now - then;
console.log(elapsed);    // → 457727267442

이 성질을 활용하면 프로그램 실행에 걸리는 시간을 밀리초 단위로 구할 수 있다.

var start = new Date();
/* 실행 시간을 측정할 코드를 작성하는 위치 */
var end = new Date();
var elapsed = end - start;        // 프로그램 실행에 걸리는 시간(밀리초 단위)


// 이 코드는 '모던 자바스크립트 입문(徹底マス夕一JavaScriptの敎科書)'에서 인용한 것입니다.
// [ISBN #978-4797388640]. Copyright 2017 by 磯博

다음은 Date 객체가 제공하는 주요 메서드. 날짜와 시간을 다룰 때 유용하게 사용할 수 있다.

[wptb id=2202]

[3] Function 생성자

Function은 함수를 생성하는 내장 생성자

var square = new Function("x", "return x * x");

여기서 첫 번째 인자인 “x”는 인수의 이름을 뜻하는 문자열이고, 두 번째 인수는 함수 몸통(function body)이 작성된 문자열. 일반적으로 인수가 n개 일 때는 다음과 같이 사용한다.

var 변수 이름 = new Function(첫 번째 인수, …, n 번째 인수, 함수 몸통);

단점

  • Function 생성자로 생성한 함수는 전역 변수와 자신의 지역 변수만 읽고 쓸 수 있다. 그래서 함수를 동적으로 생성해야 하는 특별한 상황 외에는 사용하지 않는다.
  • 악의를 품은 사용자가 입력한 문자열을 Function 생성자의 인수인 ‘함수 몸통’으로 전달하면 악성 코드가 실행되어 보안 문제가 발생할 수 있다.

Function 생성자는 함수를 생성하는 기능보다 함수 리터럴에 래퍼 객체를 제공한다는 점에 의미를 둘 수 있다.

[4] 기타 내장 객체

다음은 내장 생성자가 생성하지는 않지만 기본적으로 사용할 수 있는 내장 객체

[wptb id=2195]

[5] 전역 객체

전역 객체는 자바스크립트에서 매우 중요한 객체

전역 객체의 프로퍼티는 프로그램의 어느 위치에서나 사용할 수 있다.

자바스크립트 인터프리터가 시작될 때 혹은 웹브라우저가 새로운 페이지를 읽어 들일 때마다 새로운 전역 객체가 생성되며, 아래 표와 같은 프로퍼티를 갖게 된다.

[wptb id=2200]

클라이언트 측 자바스크립트에서는 Window 객체가 전역 객체

Window 객체에는 프로퍼티와 웹부라우저 고유의 다양한 프로퍼티가 추가되어 있다.

웹브라우저의 전역 객체 프로퍼티는 콘솔에서 다음과 같이 입력하여 확인할 수 있다.

console.log(window);

[6] 자바스크립트 객체의 분류

  • 네이티브 객체 : ECMAScript 사양에 정의된 객체
  • 호스트 객체 : ECMAScript에는 정의되어 있지 않지만 자바스크립트 실행 환경에 정의된 객체가 호스트 객체(host object)
  • 사용자 정의 객체 : 사용자가 정의한 자바스크립트 코드를 실행한 결과로 생성된 객체가 사용자 정의 객체
네이티브 객체내장 생성자 객체Object, String, Number, Boolean, Array, Date, Function, RegExp, Error, Symbol 등
.기타 객체JSON, Math 등
호스트 객체브라우저 객체Window, Navigator, History, Location, Screen, Document 등
.DOM 객체HTML 요소를 고작하는 개체
.기타 객체XMLHttpRequest, HTML5의 각종 API 등
사용자 정의 객체.자바스크립트 코드를 실행한 결과로 생성된 객체

< 참고문헌 >
🔹주 참고문헌 : 모던 자바스크립트 입문 – 이소 히로시 지음, 서재원 옮김
🔹MDN Web Docs

“Javascript, 내장 객체”에 대한 1개의 생각

  1. 핑백: 블로그 글 정리 - 둥이아빠, 닥터 홍

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


error: 컨텐츠가 보호되고 있습니다.
위로 스크롤