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
|
---
title: Number
slug: Web/JavaScript/Reference/Global_Objects/Number
tags:
- JavaScript
- Number
- Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Number
---
<div>{{JSRef("Global_Objects", "Number")}}</div>
<p>Объект <strong><code>Number</code></strong> является объектом-обёрткой, позволяющей вам работать с числовыми значениями. Объект <code>Number</code> создаётся через конструктор <code>Number()</code>.</p>
<h2 id="Syntax" name="Syntax">Синтаксис</h2>
<pre>new Number(<em>value</em>);
var <em>a</em> = new Number('123'); // a === 123 is false
var <em>b</em> = Number('123'); // b === 123 is true
<em>a</em> instanceof Number; // is true
<em>b</em> instanceof Number; // is false</pre>
<h3 id="Parameters" name="Parameters">Параметры</h3>
<dl>
<dt><code>value</code></dt>
<dd>Числовое значение, которое примет объект после создания.</dd>
</dl>
<h2 id="Description" name="Description">Описание</h2>
<p>Несколько замечаний относительно использования объекта <code>Number</code>:</p>
<ul>
<li>Если аргумент не может быть преобразован в число, возвращается {{jsxref("Global_Objects/NaN", "NaN")}}.</li>
<li>В неконструкторном контексте (то есть, без оператора {{jsxref("Operators/new", "new")}}), объект <code>Number</code> может использоваться для проведения преобразования типов.</li>
</ul>
<h2 id="Properties" name="Properties">Свойства</h2>
<dl>
<dt>{{jsxref("Number.EPSILON")}} {{experimental_inline}}</dt>
<dd>Наименьший интервал между двумя представимыми числами.</dd>
<dt>{{jsxref("Number.MAX_SAFE_INTEGER")}} {{experimental_inline}}</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")}} {{experimental_inline}}</dt>
<dd>Минимальное целое число, которое можно безопасно использовать в (<code>-(2<sup>53</sup> - 1)</code>).</dd>
<dt>{{jsxref("Number.MIN_VALUE")}}</dt>
<dd>Наименьшее представимое положительное число — то есть, самое близкое к нулю положительное число (которое ещё не является нулём).</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>
<div>{{jsOverrides("Function", "properties", "MAX_VALUE", "MIN_VALUE", "NaN", "NEGATIVE_INFINITY", "POSITIVE_INFINITY", "protoype")}}</div>
<h2 id="Methods" name="Methods">Методы</h2>
<dl>
<dt>{{jsxref("Number.isNaN()")}} {{experimental_inline}}</dt>
<dd>Определяет, является ли переданное значение значением {{jsxref("Global_Objects/NaN", "NaN")}}.</dd>
<dt>{{jsxref("Number.isFinite()")}} {{experimental_inline}}</dt>
<dd>Определяет, является ли переданное значение конечным числом.</dd>
<dt>{{jsxref("Number.isInteger()")}} {{experimental_inline}}</dt>
<dd>Определяет, является ли тип переданного значения «числом», а само число — целым значением.</dd>
<dt>{{jsxref("Number.isSafeInteger()")}} {{experimental_inline}}</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("Global_Objects/Infinity", "Infinity")}}), но был удалён.</s></dd>
<dt>{{jsxref("Number.parseFloat()")}} {{experimental_inline}}</dt>
<dd>Представляет собой тот же самый метод, что и метод {{jsxref("Global_Objects/parseFloat", "parseFloat")}} глобального объекта.</dd>
<dt>{{jsxref("Number.parseInt()")}} {{experimental_inline}}</dt>
<dd>Представляет собой тот же самый метод, что и метод {{jsxref("Global_Objects/parseInt", "parseInt")}} глобального объекта.</dd>
</dl>
<div>{{jsOverrides("Function", "methods", "isNaN")}}</div>
<h2 id="Number_instances" name="Number_instances">Экземпляры объекта <code>Number</code></h2>
<p>Все экземпляры объекта <code>Number</code> наследуются от {{jsxref("Number.prototype")}}. Объект прототипа конструктора <code>Number</code> может быть изменён, чтобы затронуть все экземпляры объекта <code>Number</code>.</p>
<h3 id="Methods_of_Number_instance" name="Methods_of_Number_instance">Методы</h3>
<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype', 'Methods')}}</div>
<h2 id="Examples" name="Examples">Примеры</h2>
<h3 id="Example_Using_the_Number_object_to_assign_values_to_numeric_variables" name="Example:_Using_the_Number_object_to_assign_values_to_numeric_variables">Пример: использование объекта <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="Example_Using_Number_to_convert_a_Date_object" name="Example:_Using_Number_to_convert_a_Date_object">Пример: целочисленный диапазон для объекта <code>Number</code></h3>
<p>Следующий пример показывает, какие минимальное и максимальное целочисленные значения может представить объект <code>Number</code> (за подробностями обращайтесь к стандарту EcmaScript, главе <em>8.5 Тип Number</em>):</p>
<pre class="brush: js">var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;
</pre>
<p>При разборе данных, сериализованных в JSON, можно ожидать, что целые значения, выпадающие из этого диапазона будут повреждены, когда парсер JSON приведёт их к типу <code>Number</code>. Возможным обходным путём может быть использование объекта {{jsxref("Global_Objects/String", "String")}}.</p>
<h3 id="Example_Using_Number_to_convert_a_Date_object" name="Example:_Using_Number_to_convert_a_Date_object">Пример: использование <code>Number</code> для преобразования объекта <code>Date</code></h3>
<p>В следующем примере объект {{jsxref("Global_Objects/Date", "Date")}} преобразуется в числовое значение с использование объекта <code>Number</code> в качестве функции:</p>
<pre class="brush: js">var d = new Date('December 17, 1995 03:24:00');
console.log(Number(d));
</pre>
<p>Пример выведет "819199440000".</p>
<h3 id="Example_Convert_numeric_strings_to_numbers" name="Example:_Convert_numeric_strings_to_numbers">Пример: преобразование строк с числами в числа</h3>
<pre class="brush: js">Number('123') // 123
Number('') // 0
Number('0x11') // 17
Number('0b11') // 3
Number('0o11') // 9
Number('foo') // NaN
Number('100a') // NaN
</pre>
<h2 id="Specifications" name="Specifications">Спецификации</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>Изначальное определение. Реализована в 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>Добавлены новые методы и свойства: ({{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="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
<div class="hidden">
<p>The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
</div>
<p>{{Compat("javascript.builtins.Number")}}</p>
<h2 id="See_also" name="See_also">Смотрите также</h2>
<ul>
<li>{{jsxref("Global_Objects/NaN", "NaN")}}</li>
<li>Глобальный объект {{jsxref("Global_Objects/Math", "Math")}}</li>
</ul>
|