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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
---
title: Number
slug: Web/JavaScript/Reference/Global_Objects/Number
tags:
- JavaScript
- NeedsTranslation
- Number
- Reference
- TopicStub
translation_of: Web/JavaScript/Reference/Global_Objects/Number
---
<div>{{JSRef}}</div>
<p><strong><code>Number</code></strong> JavaScript 物件是允許你操作數值的包覆物件. <code>Number</code> 物件是以 <code>Number()</code> 建構子來建立的。</p>
<h2 id="語法">語法</h2>
<pre class="syntaxbox">new Number(value);</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>介於1和大於1的最小值之可表示的差。</dd>
<dt>{{jsxref("Number.MAX_SAFE_INTEGER")}}</dt>
<dd>JavaScript 中 IEEE-754 雙精度範圍間的最大整數 (<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 中 IEEE-754 雙精度範圍間的最小整數 (<code>-(2<sup>53</sup> - 1)</code>) 。</dd>
<dt>{{jsxref("Number.MIN_VALUE")}}</dt>
<dd>可表示的最小值,即最靠近0的正整數?(<code><math><semantics><mrow><mn>5.00</mn><mo>×</mo><msup><mn>10</mn><mn>324</mn></msup></mrow><annotation encoding="TeX">5.00\times10^{324}</annotation></semantics></math></code>)。</dd>
<dt>{{jsxref("Number.NaN")}}</dt>
<dd>特別用來表示<strong>非數值</strong>的物件。</dd>
<dt>{{jsxref("Number.NEGATIVE_INFINITY")}}</dt>
<dd>特別用來表示<strong>負無窮</strong>的數值。</dd>
<dt>{{jsxref("Number.POSITIVE_INFINITY")}}</dt>
<dd>特別用來表示<strong>正無窮</strong>的數值。</dd>
<dt>{{jsxref("Number.prototype")}}</dt>
<dd>允許被添加到 <code>Number</code> 物件的屬性。</dd>
</dl>
<h2 id="方法">方法</h2>
<dl>
<dt>{{jsxref("Number.isNaN()")}}</dt>
<dd>判斷傳入的值是不是 NaN.</dd>
<dt>{{jsxref("Number.isFinite()")}}</dt>
<dd>判斷傳入的值是不是一個有限的數值。</dd>
<dt>{{jsxref("Number.isInteger()")}}</dt>
<dd>判斷傳入的值是不是一個整數。</dd>
<dt>{{jsxref("Number.isSafeInteger()")}}</dt>
<dd>判斷傳入的值是不是在 IEEE-754 雙精度範圍間 (即介於 <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("Global_Objects/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('/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype', '方法')}}</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 standard, chapter <em>8.5 The Number Type</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_物件為_Unix_時間戳記">使用 <code>Number</code> 轉換 <code>Date</code> 物件為 Unix 時間戳記</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)); // 819199440000
</pre>
<h3 id="轉換數值字串成數值">轉換數值字串成數值</h3>
<pre class="brush: js">Number("123") // 123
Number("12.3") // 12.3
Number("") // 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">規範</th>
<th scope="col">狀態</th>
<th scope="col">註記</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>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="參見">參見</h2>
<ul>
<li>{{jsxref("NaN")}}</li>
<li>The {{jsxref("Math")}} global object</li>
</ul>
|