aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/number/index.html
blob: c948519ee5048dfef6194a2447615ec376cf3e90 (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
178
179
180
181
182
183
184
185
186
187
---
title: Number
slug: Web/JavaScript/Reference/Global_Objects/Number
tags:
  - JavaScript
  - Number
  - Довідка
  - Клас
translation_of: Web/JavaScript/Reference/Global_Objects/Number
original_slug: Web/JavaScript/Reference/Global_Objects/Число
---
<div>{{JSRef}}</div>

<p><span class="seoSummary">Об'єкт <strong><code>Number</code></strong> у JavaScript — це <a href="/uk/docs/Glossary/Primitive#Об'єкти-обгортки_в_JavaScript">об'єкт-обгортка</a>, що дозволяє працювати з числовими значеннями, такими як <code>37</code> чи <code>-9.25</code>. </span></p>

<p>Конструктор <code><strong>Number</strong></code> містить константи та методи для роботи з числами. Значення інших типів можуть бути перетворені на числа за допомогою <strong>функції <code>Number()</code></strong>.</p>

<p>Тип <strong>Number</strong> у JavaScript є <a href="https://uk.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D0%B7_%D1%80%D1%83%D1%85%D0%BE%D0%BC%D0%BE%D1%8E_%D0%BA%D0%BE%D0%BC%D0%BE%D1%8E">64-бітним значенням подвійної точності формату IEEE 754</a>, як <code>double</code> у Java чи у C#. Це означає, що воно може відображати дробові значення, але існують певні обмеження на те, що воно може зберігати. Тип Number зберігає лише близько 17 десяткових знаків точності; числа підлягають <a href="https://en.wikipedia.org/wiki/Floating-point_arithmetic#Representable_numbers,_conversion_and_rounding">округленню</a>. Найбільше значення, яке може зберігати Number, дорівнює приблизно 1.8×10<sup>308</sup>. Числа за межами цього значення замінюються на спеціальну числову константу {{jsxref("Infinity")}}.</p>

<p>Числові літерали, такі як <code>37</code>, у коді JavaScript є числами з рухомою крапкою, а не цілими числами. Не існує окремого цілочисельного типу у звичайному повсякденному використанні. (JavaScript нині має тип {{jsxref("BigInt")}}, але він був створений не того, щоб замінити Number у повсякденному використанні. <code>37</code> досі належить до типу Number, а не до BigInt.)</p>

<p>Числа також можна виразити у таких літеральних формах, як <code>0b101</code><code>0o13</code><code>0x0A</code>. Дізнайтесь більше щодо <a href="/uk/docs/Web/JavaScript/Reference/Lexical_grammar#Числові_літерали">лексичної граматики чисел тут</a>.</p>

<h2 id="Опис">Опис</h2>

<p>При використанні в якості функції, <code>Number(value)</code> перетворює рядок чи інше значення на тип Number. Якщо значення не можна перетворити, повертається {{jsxref("NaN")}}.</p>

<h3 id="Літеральний_синтаксис">Літеральний синтаксис</h3>

<pre class="brush: js notranslate">123    // сто двадцять три
123.0  // те саме
123 === 123.0  // true</pre>

<h3 id="Синтаксис_функції">Синтаксис функції</h3>

<pre class="brush: js notranslate">Number('123')  // вертає число 123
Number('123') === 123  // true

Number("коник")    // NaN
Number(undefined)  // NaN</pre>

<h2 id="Конструктор">Конструктор</h2>

<dl>
 <dt><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Число/Number"><code>Number()</code></a></dt>
 <dd>Створює нове значення <code>Number</code>.</dd>
</dl>

<h2 id="Статичні_властивості">Статичні властивості</h2>

<dl>
 <dt>{{jsxref("Число.EPSILON", "Number.EPSILON")}}</dt>
 <dd>Найменша можлива різниця між двома числами.</dd>
 <dt>{{jsxref("Число.MAX_SAFE_INTEGER", "Number.MAX_SAFE_INTEGER")}}</dt>
 <dd>Найбільше безпечне ціле число у JavaScript (<code>2<sup>53</sup> - 1</code>).</dd>
 <dt>{{jsxref("Число.MAX_VALUE", "Number.MAX_VALUE")}}</dt>
 <dd>Найбільше додатне число, доступне для відображення.</dd>
 <dt>{{jsxref("Число.MIN_SAFE_INTEGER", "Number.MIN_SAFE_INTEGER")}}</dt>
 <dd>Найменше безпечне ціле число у JavaScript (<code>-(2<sup>53</sup> - 1)</code>).</dd>
 <dt>{{jsxref("Число.MIN_VALUE", "Number.MIN_VALUE")}}</dt>
 <dd>Найменше додатне число, доступне для відображення, — найближче до нуля (за винятком самого нуля) додатне число.</dd>
 <dt>{{jsxref("Число.NaN", "Number.NaN")}}</dt>
 <dd>Спеціальне значення "{{glossary("NaN", "не число")}}".</dd>
 <dt>{{jsxref("Число.NEGATIVE_INFINITY", "Number.NEGATIVE_INFINITY")}}</dt>
 <dd>Спеціальне значення, що відображає від'ємну нескінченність. Повертається при переповненні.</dd>
 <dt>{{jsxref("Число.POSITIVE_INFINITY", "Number.POSITIVE_INFINITY")}}</dt>
 <dd>Спеціальне значення, що відображає нескінченність. Повертається при переповненні.</dd>
 <dt>{{jsxref("Число.prototype", "Number.prototype")}}</dt>
 <dd>Дозволяє додавати властивості до об'єкта <code>Number</code>.</dd>
</dl>

<h2 id="Статичні_методи">Статичні методи</h2>

<dl>
 <dt>{{jsxref("Число.isNaN()", "Number.isNaN()")}}</dt>
 <dd>Визначає, чи є передане значення <code>NaN</code>.</dd>
 <dt>{{jsxref("Число.isFinite()", "Number.isFinite()")}}</dt>
 <dd>Визначає, чи є передане значення скінченним числом.</dd>
 <dt>{{jsxref("Число.isInteger()", "Number.isInteger()")}}</dt>
 <dd>Визначає, чи є передане значення цілим числом.</dd>
 <dt>{{jsxref("Число.isSafeInteger()", "Number.isSafeInteger()")}}</dt>
 <dd>Визначає, чи є передане значення безпечним цілим числом (число між <code>-(2<sup>53</sup> - 1)</code> та <code>2<sup>53</sup> - 1</code>).</dd>
 <dt>{{jsxref("Число.parseFloat()", "Number.parseFloat()")}}</dt>
 <dd>Те саме, що й глобальна функція {{jsxref("parseFloat", "parseFloat()")}}.</dd>
 <dt>{{jsxref("Число.parseInt()", "Number.parseInt()")}}</dt>
 <dd>Те саме, що й глобальна функція {{jsxref("parseInt", "parseInt()")}}.</dd>
</dl>

<h2 id="Методи_екземплярів">Методи екземплярів</h2>

<dl>
 <dt>{{jsxref("Число.prototype.toExponential()", "Number.prototype.toExponential(<var>дробовіЦифри</var>)")}}</dt>
 <dd>Повертає рядок, що містить експоненціальний запис числа.</dd>
 <dt>{{jsxref("Число.prototype.toFixed()", "Number.prototype.toFixed(<var>цифри</var>)")}}</dt>
 <dd>Повертає рядок, що містить запис числа у форматі з нерухомою крапкою.</dd>
 <dt>{{jsxref("Число.prototype.toLocaleString()", "Number.prototype.toLocaleString([<var>мови</var> [, <var>параметри</var>]])")}}</dt>
 <dd>Повертає рядок, що містить узалежнений від мови запис числа. Заміщує метод {{jsxref("Object.prototype.toLocaleString()")}}.</dd>
 <dt>{{jsxref("Число.prototype.toPrecision()", "Number.prototype.toPrecision(<var>точність</var>)")}}</dt>
 <dd>Повертає рядок, що містить запис числа із зазначеною точністю у форматі з нерухомою крапкою або у експоненціальному форматі.</dd>
 <dt>{{jsxref("Число.prototype.toString()", "Number.prototype.toString([<var>основа</var>])")}}</dt>
 <dd>Повертає рядкове представлення наданого об'єкта у вказаній системі числення. Заміщує метод {{jsxref("Object.prototype.toString()")}}.</dd>
 <dt>{{jsxref("Число.prototype.valueOf()", "Number.prototype.valueOf()")}}</dt>
 <dd>Повертає просте числове значення об'єкта. Заміщує метод {{jsxref("Object.prototype.valueOf()")}}.</dd>
</dl>

<div></div>

<h2 id="Приклади">Приклади</h2>

<h3 id="Використання_обєкта_Number_для_присвоєння_змінним_числових_значень">Використання об'єкта <code>Number</code> для присвоєння змінним числових значень</h3>

<p>Наведений приклад використовує властивості об'єкта <code>Number</code>, щоб присвоїти кільком змінним числові значення:</p>

<pre class="brush: js notranslate">const biggestNum     = Number.MAX_VALUE
const smallestNum    = Number.MIN_VALUE
const infiniteNum    = Number.POSITIVE_INFINITY
const negInfiniteNum = Number.NEGATIVE_INFINITY
const 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 Тип Number</a></em>):</p>

<pre class="brush: js notranslate">const biggestInt = Number.MAX_SAFE_INTEGER   //  (2<sup>53</sup> - 1) =&gt;  9007199254740991
const smallestInt = Number.MIN_SAFE_INTEGER  // -(2<sup>53</sup> - 1) =&gt; -9007199254740991</pre>

<p>При розборі даних, поданих у форматі JSON, цілі числа, що виходять за межі цього діапазону, можуть виявитися пошкодженими, коли аналізатор JSON примусово перетворює їх у тип <code>Number</code>.</p>

<p>Цьому можна запобігти використанням ({{jsxref("String","рядків")}}).</p>

<p>Більші числа можуть бути відображені за допомогою типу {{jsxref("BigInt")}}.</p>

<h3 id="Використання_Number_для_перетворення_обєкта_Date">Використання <code>Number</code> для перетворення об'єкта <code>Date</code></h3>

<p>У наведеному прикладі об'єкт класу {{jsxref ("Date")}} перетворюється на числове значення за допомогою функції <code>Number</code>:</p>

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

<p>Це виведе <code>819199440000</code>.</p>

<h3 id="Перетворення_числових_рядків_та_null_на_числа">Перетворення числових рядків та null на числа</h3>

<pre class="brush: js notranslate">Number('123')     // 123
Number('123') === 123 /// true
Number('12.3')    // 12.3
Number('12.00')   // 12
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
Number('-Infinity') //-Infinity
</pre>

<h2 id="Специфікації">Специфікації</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Специфікація</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>

<p class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</p>

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

<h2 id="Див._також">Див. також</h2>

<ul>
 <li>{{jsxref("NaN")}}</li>
 <li>{{jsxref("Operators/Arithmetic_Operators", "Арифметичні оператори")}}</li>
 <li>Глобальний об'єкт {{jsxref("Math")}}</li>
 <li>Цілі числа з довільною точністю: {{jsxref("BigInt")}}</li>
</ul>