aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/global_objects/number/index.html
blob: 2a2592dcc8561f6abc88a2d8e401a161fa20f191 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
---
title: Number
slug: Web/JavaScript/Reference/Global_Objects/Number
tags:
  - JavaScript
  - Number
  - Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Number
---
<div>{{JSRef}}</div>

<p><strong><code>Number</code></strong> 객체는 숫자 값으로 작업할 수 있게 해주는 래퍼<sup>wrapper</sup> 객체입니다. <code>Number</code> 객체는 <strong><code>Number()</code> 생성자</strong>를 사용하여 만듭니다. 원시 숫자 자료형은 <strong><code>Number()</code> 함수</strong>를 사용해 생성합니다.</p>

<h2 id="구문">구문</h2>

<pre class="syntaxbox">new Number(<em>value</em>);
var <em>a</em> = new Number('123'); // a === 123은 false
var <em>b</em> = Number('123'); // b === 123은 true
<em>a</em> instanceof Number; // true
<em>b</em> instanceof Number; // false</pre>

<h3 id="매개변수">매개변수</h3>

<dl>
 <dt><code>value</code></dt>
 <dd>생성할 객체의 숫자 값.</dd>
</dl>

<h2 id="설명">설명</h2>

<p><code>Number</code> 객체의 주된 용도는 다음과 같습니다.</p>

<ul>
 <li>만약 인수를 숫자로 변환할 수 없으면 {{jsxref("NaN")}}을 리턴합니다.</li>
 <li>생성자로써 사용하지 않으면({{jsxref("Operators/new", "new")}} 연산자를 사용하지 않으면) <code>Number</code>를 사용하여 형변환을 할 수 있습니다.</li>
</ul>

<h2 id="속성">속성</h2>

<dl>
 <dt>{{jsxref("Number.EPSILON")}}</dt>
 <dd>두 개의 표현 가능한 숫자 사이의 최소 간격.</dd>
 <dt>{{jsxref("Number.MAX_SAFE_INTEGER")}}</dt>
 <dd>JavaScript에서 안전한 최대 정수. (<code>2<sup>53</sup> - 1</code>)</dd>
 <dt>{{jsxref("Number.MAX_VALUE")}}</dt>
 <dd>표현 가능한 가장 큰 양수.</dd>
 <dt>{{jsxref("Number.MIN_SAFE_INTEGER")}}</dt>
 <dd>JavaScript에서 안전한 최소 정수. (<code>-(2<sup>53</sup> - 1)</code>)</dd>
 <dt>{{jsxref("Number.MIN_VALUE")}}</dt>
 <dd>표현 가능한 가장 작은 양수. 즉, 0보다 크지만 0에 가장 가까운 양수.</dd>
 <dt>{{jsxref("Number.NaN")}}</dt>
 <dd>"숫자가 아님"을 나타내는 특별한 값.</dd>
 <dt>{{jsxref("Number.NEGATIVE_INFINITY")}}</dt>
 <dd>음의 무한대를 나타내는 특수한 값. 오버플로우 시 반환됩니다.</dd>
 <dt>{{jsxref("Number.POSITIVE_INFINITY")}}</dt>
 <dd>양의 무한대를 나타내는 특수한 값. 오버플로우 시 반환됩니다.</dd>
 <dt>{{jsxref("Number.prototype")}}</dt>
 <dd><code>Number</code> 객체에 속성을 추가할 수 있습니다.</dd>
</dl>

<h2 id="메서드">메서드</h2>

<dl>
 <dt>{{jsxref("Number.isNaN()")}}</dt>
 <dd>주어진 값이 <code>NaN</code>인지 확인합니다.</dd>
 <dt>{{jsxref("Number.isFinite()")}}</dt>
 <dd>주어진 값이 유한수 인지 확인합니다.</dd>
 <dt>{{jsxref("Number.isInteger()")}}</dt>
 <dd>주어진 값이 정수인지 확인합니다.</dd>
 <dt>{{jsxref("Number.isSafeInteger()")}}</dt>
 <dd>주어진 값이 안전한 정수(<code>-(2<sup>53</sup> - 1)</code>과 <code>2<sup>53</sup> - 1</code> 사이의 정수)인지 확인합니다.</dd>
 <dt><s class="obsoleteElement">{{jsxref("Number.toInteger()")}} {{obsolete_inline}}</s></dt>
 <dd><s class="obsoleteElement">전달 된 값을 평가하고 이를 정수(혹은 {{jsxref("Infinity", "Infinity")}})로 변환하는데 사용되지만, 제거되었습니다.</s></dd>
 <dt>{{jsxref("Number.parseFloat()")}}</dt>
 <dd>전역 객체 {{jsxref("parseFloat", "parseFloat()")}}와 동일한 값입니다.</dd>
 <dt>{{jsxref("Number.parseInt()")}}</dt>
 <dd>전역 객체 {{jsxref("parseInt", "parseInt()")}}와 동일한 값입니다.</dd>
</dl>

<h2 id="Number_인스턴스"><code>Number</code> 인스턴스</h2>

<p>모든 <code>Number</code> 인스턴스는 {{jsxref("Number.prototype")}}를 상속합니다. <code>Number</code> 생성자의 프로토타입 객체는 모든 <code>Number</code> 인스턴스에 영향을 미치도록 수정할 수 있습니다.</p>

<h3 id="메서드_2">메서드</h3>

<div>{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype', 'Methods')}}</div>

<h2 id="예제">예제</h2>

<h3 id="Number_객체를_사용해_숫자형_변수에_할당"><code>Number</code> 객체를 사용해 숫자형 변수에 할당</h3>

<p>다음 예제에서는 <code>Number</code> 객체의 속성을 사용하여, 여러 숫자 변수에 값을 할당합니다:</p>

<pre class="brush: js">var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
</pre>

<h3 id="Number의_정수_범위"><code>Number</code>의 정수 범위</h3>

<p>다음 예제는 <code>Number</code> 객체가 표현할 수 있는 정수의 최소값과 최대값을 보여줍니다. (자세한 내용은 ECMAScript 표준, <em><a href="https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type">6.1.6 The Number Type</a> 장을 참고하세요)</em></p>

<pre class="brush: js">var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;
</pre>

<p>JSON으로 직렬화한 데이터를 읽을 때, 위의 범위를 벗어나는 수는 JSON 분석기의 <code>Number</code> 형변환 시 손상될 수 있습니다. 이 때는 {{jsxref("String")}}을 대신 사용하는 것도 방법입니다.</p>

<h3 id="Number를_사용해_Date_객체_숫자로_변환"><code>Number</code>를 사용해 <code>Date</code> 객체 숫자로 변환</h3>

<p>다음 예제는 <code>Number</code>를 함수로 사용하여 {{jsxref("Date")}} 객체를 숫자 값으로 변환합니다.</p>

<pre class="brush: js">var d = new Date('December 17, 1995 03:24:00');
console.log(Number(d));
</pre>

<p><code>819199440000</code>가 기록됩니다.</p>

<h3 id="숫자형_문자열에서_숫자로_변환">숫자형 문자열에서 숫자로 변환</h3>

<pre class="brush: js">Number('123')     // 123
Number('12.3')    // 12.3
Number('123e-1')  // 12.3
Number('')        // 0
Number(null)      // 0
Number('0x11')    // 17
Number('0b11')    // 3
Number('0o11')    // 9
Number('foo')     // NaN
Number('100a')    // NaN</pre>

<h2 id="명세">명세</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('ES1')}}</td>
   <td>{{Spec2('ES1')}}</td>
   <td>Initial definition. Implemented in JavaScript 1.1.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.7', 'Number')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-number-objects', 'Number')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>New methods and properties added: ({{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}})</td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="브라우저_호환성">브라우저 호환성</h2>

<div>
<p>{{Compat("javascript.builtins.Number")}}</p>
</div>

<h2 id="같이_보기">같이 보기</h2>

<ul>
 <li>{{jsxref("NaN")}}</li>
 <li>{{jsxref("Math")}}</li>
</ul>