Skip to content

Commit ae4a26e

Browse files
authored
Create chapter_21.md
1 parent 8c1dc47 commit ae4a26e

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

book/공희재/chapter_21.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Chapter 21 - 빌트인 객체
2+
3+
## 1. 자바스크립트 객체의 분류
4+
자바스크립트 객체는 다음과 같이 크게 3개로 분류할 수 있다.
5+
1. Standard built-in objects 또는 Native objects 또는 Global objects (표준 빌트인 객체)
6+
2. Host objects (호스트 객체)
7+
3. User-defined objects (사용자 정의 객체)
8+
차례대로 살펴 보자.
9+
10+
## 2. Standard built-in objects: 표준 빌트인 객체
11+
자바스크립트는 다음과 같이 40여 개의 표준 빌트인 객체를 제공한다.
12+
* Object
13+
* String
14+
* Number
15+
* Boolean
16+
* Symbol
17+
* Date
18+
* Math
19+
* RegExp
20+
* Array
21+
* Map/Set
22+
* ...
23+
24+
이러한 표준 빌트인 객체의 prototype 프로퍼티에 바인딩된 객체는 다양한 기능의 메서드를 제공한다.
25+
26+
## 3. Wrapper object: 원시값과 래퍼 객체
27+
문자열, 숫자, 불리언 객체를 생성하는 String, Number, Boolean 표준 빌트인 생성자 함수가 존재하긴 하나,<br/>
28+
자바스크립트가 암묵적으로 생성하는 래퍼 객체에 의해 해당 표준 빌트인 객체들의 프로토타입 메서드 또는 프로퍼티를 참조할 수 있게 된다.
29+
30+
따라서 굳이 String, Number, Boolean 표준 빌트인 생성자 함수를 new 연산자와 함께 호출해 문자열, 숫자, 불리언 인스턴스를 생성할 필요가 없으며 권장하지 않는다.
31+
32+
## 4. Global object: 전역 객체
33+
Global object는 코드가 실행되기 전, 자바스크립트 엔진에 의해 그 어떤 객체보다도 먼저 생성되는 특수한, 최상위 객체다.<br/>
34+
브라우저 환경에서는 window가 되고, Node.js 환경에서는 global이 된다.
35+
36+
Global object의 특징은 다음과 같다.
37+
* 개발자가 의도적으로 생성할 수 없음. 즉, Global object를 생성하는 생성자 함수가 제공되지 않는다.
38+
* Global object의 프로퍼티를 참조할 때, 식별자명(e.g., `window`, `global`)을 생략할 수 있다.
39+
40+
### 4-1. Built-in global property: 빌트인 전역 프로퍼티
41+
Built-in global property는 Global object의 프로퍼티를 의미한다. 다음과 같이 주로 애플리케이션 전역에서 사용하는 값을 제공한다.
42+
* `Infinity`
43+
* `NaN`
44+
* `undefined`
45+
46+
### 4-2. Built-in global function: 빌트인 전역 함수
47+
Built-in global function은 애플리케이션 전역에서 호출할 수 있는 빌트인 함수로서, Global object의 메서드다.
48+
* `eval()`
49+
* `isFinite()`
50+
* `isNaN()`
51+
* `parseFloat()`
52+
* `parseInt()`
53+
* `encodeURI() / decodeURI()`
54+
* `encodeURIComponent() / decodeURIComponent()`
55+
56+
### 4-3. Implicit global: 암묵적 전역
57+
선언하지 않은 식별자에 값을 할당하는 코드를 작성하게 되면 마치 참조 에러가 발생할 것 같지만,<br/>
58+
선언하지 않은 그 식별자는 Global object의 프로퍼티가 되기 때문에 마치 전역 변수처럼 동작한다.<br/>
59+
(하지만 전역 '변수'는 아니라 변수 호이스팅이 발생하지 않음을 유의)
60+
61+
이러한 현상을 우리는 Implicit global라 부른다.
62+
63+
끝.

0 commit comments

Comments
 (0)