쑤쑤_CS 기록장
21. 빌트인 객체 본문
자바스크립트의 객체(3)
#1. 네이티브 객체
애플리케이션 전역의 공통 기능을 제공한다.
Object, String, Number, Function, Array, RegExp, Date, Math와 같은 객체 생성에 관계가 있는 함수 객체와 메소드로 구성된다.
- Object
Object() 생성자 함수는 객체를 생성한다.
생성자 인수값이 null이거나 undefined이면 빈 객체를 반환한다.
그 이외의 경우 생성자 함수의 인수값에 따라 강제 형변환된 객체가 반환된다.
// String 객체를 반환한다
// var obj = new String('String');과 동치이다
var obj = new Object('String');
console.log(typeof obj + ': ', obj);
console.dir(obj);
var strObj = new String('String');
console.log(typeof strObj + ': ', strObj);
// Number 객체를 반환한다
// var obj = new Number(123);과 동치이다
var obj = new Object(123);
console.log(typeof obj + ': ', obj);
var numObj = new Number(123);
console.log(typeof numObj + ': ', numObj);
// Boolean 객체를 반환한다.
// var obj = new Boolean(true);과 동치이다
var obj = new Object(true);
console.log(typeof obj + ': ', obj);
var boolObj = new Boolean(123);
console.log(typeof boolObj + ': ', boolObj);
// 객체리터럴을 사용하는 것이 바람직하다.
var o = {};
- Function
모든 함수는 Function 객체이다.
new 연산자를 이용해 생성할 수 있다.
var adder = new Function('a', 'b', 'return a + b');
adder(2, 6); // 8
- Boolean
원시 타입 boolean을 위한 레퍼(wrapper) 객체이다.
Boolean 생성자 함수로 Boolean 객체를 생성할 수 있다.
var foo = new Boolean(true); // true
var foo = new Boolean('false'); // true
var foo = new Boolean(false); // false
var foo = new Boolean(); // false
var foo = new Boolean(''); // false
var foo = new Boolean(0); // false
var foo = new Boolean(null); // false
- Error
Error 생성자는 error 객체를 생성한다.
error 객체의 인스턴스는 런타임 에러가 발생하였을 때 throw된다.
try {
// foo();
throw new Error('Whoops!');
} catch (e) {
console.log(e.name + ': ' + e.message);
}
- Symbol
ECMAScript 6(Javascript 2015) 에서 추가된 유일하고 변경 불가능한(immutable) 원시 타입으로
Symbol 객체는 원시 타입 Symbol 값을 생성한다.
- 원시 타입과 래퍼객체(Wrapper Object)
var str = 'Hello world!';
var res = str.toUpperCase();
console.log(res); // 'HELLO WORLD!'
var num = 1.5;
console.log(num.toFixed()); // 2
원시 타입 값에 대해 표준 빌트인 객체의 메소드를 호출할 때, 원시 타입 값은 연관된 객체(Wrapper 객체)로 일시 변환된다.
Wrapper 객체는 String, Number, Boolean이 있다.
#2. 호스트 객체
: 호스트 환경에 정의된 객체
- 전역 객체
모든 객체의 유일한 최상위 객체를 의미하며
일반적으로 Browser-side에서는 window, Server-side(Node.js)에서는 global 객체를 의미한다.
- BOM (Browser Object Model)
브라우저 객체 모델은 브라우저 탭 또는 브라우저 창의 모델을 생성한다.
최상위 객체는 window 객체로 현재 브라우저 창 또는 탭을 표현하는 객체이다.
이 객체의 자식 객체 들은 브라우저의 다른 기능들을 표현한다.
- DOM (Document Object Model)
문서 객체 모델은 현재 웹페이지의 모델을 생성한다.
최상위 객체는 document 객체로 전체 문서를 표현한다.
이 객체의 자식 객체들은 문서의 다른 요소들을 표현한다.
'IT 지식 기록 > JavaScript 정리' 카테고리의 다른 글
23. Number 래퍼 객체 (0) | 2020.12.24 |
---|---|
22. 전역 객체 (0) | 2020.12.24 |
20. 자바스크립트 객체지향 프로그래밍 (0) | 2020.12.24 |
19. 클로저 (0) | 2020.12.24 |
18. 실행 컨텍스트와 자바스크립트의 동작 원리 (0) | 2020.12.24 |