recursal/MDN huggingface dataset:
Number.prototype.toPrecision()
==============================

Сводка
------

Метод **`toPrecision()`** возвращает строку, представляющую объект `Number` с указанной точностью.

Синтаксис
---------
```

numObj.toPrecision([precision])
```

### Параметры

`precision`

Необязательный параметр. Целое число, определяющее количество значащих цифр.

### Возвращаемое значение

Строка, представляющая объект `Number` в записи с фиксированной запятой или в экспоненциальной записи, округлённое до `precision` значащих цифр. Смотрите обсуждение округления в описании метода `toFixed()`, которое таким же образом применяется и к методу `toPrecision()`.

Если аргумент `precision` опущен, поведение аналогично методу `Number.prototype.toString()`. Если он не является целым числом, он будет округлён к ближайшему целому числу.

### Выбрасываемые исключения

`RangeError`

Если параметр `precison` не находится в диапазоне от 1 до 100 (включительно), будет выброшено исключение `RangeError`. Также реализации могут поддерживать большие и меньшие значения. ECMA-262 требует точности только до 21 значащей цифры.

Примеры
-------

### Пример: использование `toPrecision`


```js
var numObj = 5.123456;

console.log(numObj.toPrecision()); // выведет '5.123456'
console.log(numObj.toPrecision(5)); // выведет '5.1235'
console.log(numObj.toPrecision(2)); // выведет '5.1'
console.log(numObj.toPrecision(1)); // выведет '5'

numObj = 0.000123;

console.log(numObj.toPrecision()); // выведет '0.000123'
console.log(numObj.toPrecision(5)); // выведет '0.00012300'
console.log(numObj.toPrecision(2)); // выведет '0.00012'
console.log(numObj.toPrecision(1)); // выведет '0.0001'

// Обратите внимание, что если заданного количества разрядов
// недостаточно для точного отображения целой части числа,
// значение может быть возвращено в экспоненциальной записи.
console.log((1234.5).toPrecision(2)); // выведет '1.2e+3'
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.prototype.toprecision |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.prototype.toFixed()`
* `Number.prototype.toExponential()`
* `Number.prototype.toString()`
Number.prototype.toString()
===========================

Сводка
------

Метод **`toString()`** возвращает строковое представление указанного объекта `Number`.

Синтаксис
---------
```

numObj.toString([radix])
```

### Параметры

`radix`

Необязательный параметр. Целое число между 2 и 36, определяющее основание системы счисления, используемой для представления числового значения.

### Выбрасываемые исключения

`RangeError`

Если в метод `toString()` передано основание не в диапазоне от 2 до 36, будет выброшено исключение `RangeError`.

Описание
--------

Объект `Number` переопределяет метод `toString`, унаследованный из объекта `Object`; он не наследует метод `Object.prototype.toString`. Для объектов `Number` метод `toString()` возвращает строку, представляющую объект в определённой системе счисления.

Метод `toString()` разбирает свой первый аргумент и пытается вернуть строковое представление в системе счисления с указанным основанием. Для оснований, больших 10, при обозначении цифр, больших 9, используются буквы латинского алфавита. Например, для шестнадцатеричных чисел (основание 16), используются буквы с `a` по `f`.

Если параметр `radix` не указан, предпочитаемое основание предполагается равным 10.

Если число `numObj` отрицательно, его знак сохраняется. Это правило действует даже если основание равно 2; возвращённая строка является двоичным представлением положительного числа `numObj`, перед которым ставится знак `-`, а **не** дополнительным кодом числа `numObj`.

Примеры
-------

### Пример: использование `toString`


```js
var count = 10;

console.log(count.toString()); // Выведет '10'
console.log((17).toString()); // Выведет '17'

var x = 6;

console.log(x.toString(2)); // Выведет '110'
console.log((254).toString(16)); // Выведет 'fe'

console.log((-10).toString(2)); // Выведет '-1010'
console.log((-0xff).toString(2)); // Выведет '-11111111'
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.prototype.tostring |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.prototype.toFixed()`
* `Number.prototype.toExponential()`
* `Number.prototype.toPrecision()`
Number.isNaN()
==============

Сводка
------

Метод **`Number.isNaN()`** определяет, является ли переданное значение `NaN`. Это более надёжная версия оригинальной глобальной функции `isNaN()`.

Синтаксис
---------
```

Number.isNaN(value)
```

### Параметры

`value`

Значение, проверяемое на `NaN`.

Описание
--------

Поскольку оба оператора проверки на равенство, `==` (en-US) и `===` (en-US), вычисляются в `false` при проверке, что `NaN` *и есть* `NaN`, появляется необходимость в функции `Number.isNaN()`. Эта ситуация отличается от всех других возможных сравнений в JavaScript.

В отличие от глобальной функции `isNaN()`, `Number.isNaN()` не имеет проблемы принудительного преобразования параметра в число. Это значит, что в него безопасно передавать значения, которые обычно превращаются в `NaN`, но на самом деле `NaN` не являются. Также это значит, что метод возвращает `true` только для числовых значений, имеющих значение `NaN`.

Примеры
-------


```js
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0); // true

// При использовании глобальной функции isNaN() это всё будет true
Number.isNaN("NaN"); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false

// А это всё в любом случае будет false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
```

Полифил
-------


```js
Number.isNaN =
  Number.isNaN ||
  function (value) {
    return typeof value === "number" && isNaN(value);
  };
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.isnan |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number`
* `isNaN()`
Number.prototype.valueOf()
==========================

Сводка
------

Метод **`valueOf()`** возвращает примитивное значение объекта `Number`.

Синтаксис
---------
```

numObj.valueOf()
```

### Параметры

Нет.

Описание
--------

Этот метод обычно вызывается внутренними механизмами движка JavaScript, а не явно в коде.

Примеры
-------

### Пример: использование `valueOf()`


```js
var numObj = new Number(10);
console.log(typeof numObj); // object

var num = numObj.valueOf();
console.log(num); // 10
console.log(typeof num); // number
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.prototype.valueof |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.prototype.toSource()` (en-US)
Number.parseInt()
=================

Сводка
------

Метод **`Number.parseInt()`** разбирает строковый аргумент и возвращает целое число. Этот метод ведёт себя идентично глобальной функции `parseInt()` и является частью ECMAScript 6 (его целью является модуляризация глобальных сущностей).

Синтаксис
---------
```

Number.parseInt(string[, radix])
```

### Параметры

`string`

Значение для разбора. Если параметр не является строкой, он будет в неё преобразован. Ведущие пробельные символы в строке игнорируются.

`radix`

Необязательный параметр. Целое число, представляющее основание системы счисления для числа в указанной выше строке. Для избежания непонятностей при чтении кода и гарантии предсказуемого поведения **всегда определяйте этот параметр**. Различные реализации дадут разные результаты, если основание системы счисления не будет указано.

### Возвращаемое значение

Целое число, полученное парсингом (разбором и интерпретацией) переданной строки. Если первый символ строки не может быть преобразован в число, то возвращается `NaN`.

Описание
--------

Этот метод имеет ту же функциональность, что и глобальная функция `parseInt()`:


```js
Number.parseInt === parseInt; // true
```


Пожалуйста, обратитесь к документации по глобальной функции `parseInt()` для просмотра подробного описания и примеров.

Полифил
-------


```js
if (Number.parseInt === undefined) {
  Number.parseInt = window.parseInt;
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.parseint |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Объект `Number`, которому принадлежит этот метод.
* Глобальная функция `parseInt()`.
Number.MIN\_VALUE
=================

Сводка
------

Свойство **`Number.MIN_VALUE`** представляет минимальное положительное числовое значение, представимое в JavaScript.

| Атрибуты свойства `Number.MIN_VALUE` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Описание
--------

Свойство `MIN_VALUE` является положительным ближайшим к нулю числом, которое может быть представлено в JavaScript.

`MIN_VALUE` имеет значение, приблизительно равное `5e-324`. Значения, меньшие `MIN_VALUE`, преобразуются в 0 (так называемое «исчезновение порядка» или «антипереполнение»).

Поскольку `MIN_VALUE` является статическим свойством объекта `Number`, вы всегда должны использовать его как `Number.MIN_VALUE`, а не как свойство созданного вами объекта `Number`.

Примеры
-------

### Пример: использование `MIN_VALUE`

В следующем примере кода производится деление одного значения на другое. Если результат больше или равен `MIN_VALUE`, вызывается функция `func1`; в противном случае вызывается функция `func2`.


```js
if (num1 / num2 >= Number.MIN\_VALUE) {
  func1();
} else {
  func2();
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.min\_value |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.MAX_VALUE`
Number.isSafeInteger()
======================

Метод **`Number.isSafeInteger()`** определяет, является ли переданное значение *безопасным целым числом*.

Интерактивный пример
--------------------

Безопасное целое число это такое число, которое:

* может быть точно представлено числом IEEE-754 двойной точности и
* чьё представление IEEE-754 не может быть результатом округления любого другого целого числа, соответствующего представлению IEEE-754.

Например, число `253 - 1` является безопасным целым числом: оно может быть представлено точно и никакое другое целое число не округляется к нему ни в каком режиме округления IEEE-754. В противовес ему, число `253` *не является* безопасным целым числом: оно может быть точно представлено в IEEE-754, но целое число `253 + 1` не может быть напрямую представлено в IEEE-754 и округляется к числу `253` в режимах округления к ближайшему и к нулю. Безопасные целые числа состоят из всех целых чисел в диапазоне от `-(253 - 1)` до `253 - 1` включительно (± `9007199254740991` или ± 9,007,199,254,740,991).

Обработка значений, больших или меньших чем ~9 квадриллионов, с высокой точностью требует использования библиотеки, умеющей работать с длиной арифметикой. Ознакомьтесь с Что Каждому Программисту Необходимо Знать об Арифметике с Вещественными числами для получения дополнительной информации о представлении чисел, с плавающей запятой.

Для больших целочисленных значений, рассмотрите возможность использования типа `BigInt`.

Синтаксис
---------
```

Number.isSafeInteger(testValue)
```

### Параметры

`testValue`

Значение, проверяемое на целочисленную «безопасность».

### Возвращаемое значение

`Boolean` значение, сообщающее о том, является ли переданное значение безопасным целочисленным числом или же нет.

Примеры
-------


```js
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
```

Полифил
-------


```js
Number.isSafeInteger =
  Number.isSafeInteger ||
  function (value) {
    return (
      Number.isInteger(value) && Math.abs(value) <= Number.MAX\_SAFE\_INTEGER
    );
  };
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.issafeinteger |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Объект `Number`, которому принадлежит этот метод.
* `Number.MIN_SAFE_INTEGER`
* `Number.MAX_SAFE_INTEGER`
* `BigInt`
Number.NaN
==========

Сводка
------

Свойство **`Number.NaN`** представляет «не число». Эквивалентно глобальному объекту `NaN`.

Вам не нужно создавать объект `Number` для доступа к этому статическому свойству (используйте `Number.NaN`).

| Атрибуты свойства `Number.NaN` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.nan |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Глобальный объект `NaN`.
* Объект `Number`, которому принадлежит это свойство.
Number.POSITIVE\_INFINITY
=========================

Сводка
------

Свойство **`Number.POSITIVE_INFINITY`** представляет значение положительной бесконечности.

Вам не нужно создавать объект `Number` для доступа к этому статическому свойству (используйте `Number.POSITIVE_INFINITY`).

| Атрибуты свойства `Number.POSITIVE_INFINITY` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Описание
--------

Значение `Number.POSITIVE_INFINITY` является тем же самым значением, что содержит свойство `Infinity` глобального объекта.

Это значение ведёт себя несколько иначе, нежели математическая бесконечность:

* Любое положительное значение, включая `POSITIVE_INFINITY`, умноженное на `POSITIVE_INFINITY` даёт `POSITIVE_INFINITY`.
* Любое отрицательное значение, включая `NEGATIVE_INFINITY`, умноженное на `POSITIVE_INFINITY` даёт `NEGATIVE_INFINITY`.
* Ноль, умноженный на `POSITIVE_INFINITY`, даёт `NaN`.
* `NaN`, умноженный на `POSITIVE_INFINITY`, даёт `NaN`.
* `POSITIVE_INFINITY`, делённое на любое отрицательное значение, исключая `NEGATIVE_INFINITY`, даёт `NEGATIVE_INFINITY`.
* `POSITIVE_INFINITY`, делённое на любое положительное значение, исключая `POSITIVE_INFINITY`, даёт `POSITIVE_INFINITY`.
* `POSITIVE_INFINITY`, делённое на `NEGATIVE_INFINITY` или `POSITIVE_INFINITY`, даёт `NaN`.
* Любое число, делённое на `POSITIVE_INFINITY`, даёт ноль.

Вы можете использовать свойство `Number.POSITIVE_INFINITY` для проверки на ошибки и возвращать конечное число в случае успеха. Однако, обратите внимание, что в этом случае более уместным было бы использование функции `isFinite`.

Примеры
-------

### Пример: использование `POSITIVE_INFINITY`

В следующем примере переменной `bigNumber` присваивается значение, большее максимального. Когда выполняется инструкция `if`, переменная `bigNumber` имеет значение `Infinity`, так что перед продолжением вычислений она устанавливается в более приемлемое значение.


```js
var bigNumber = Number.MAX\_VALUE \* 2;

if (bigNumber == Number.POSITIVE\_INFINITY) {
  bigNumber = returnFinite();
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.positive\_infinity |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.NEGATIVE_INFINITY`
* `Number.isFinite()`
* `Infinity`
* `isFinite()`
Number.MAX\_SAFE\_INTEGER
=========================

Сводка
------

Константа **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (`253 - 1`).

| Атрибуты свойства `Number.MAX_SAFE_INTEGER` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Описание
--------

Константа `MAX_SAFE_INTEGER` имеет значение `9007199254740991`. Смысл этого числа в том, что в JavaScript используется формат чисел с плавающей запятой двойной точности, как определено в стандарте IEEE 754, а он может безопасно представлять числа только в диапазоне от `-(253 - 1)` до `253 - 1`.

Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта `Number`, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство созданного вами объекта `Number`.

Примеры
-------


```js
Number.MAX\_SAFE\_INTEGER; // 9007199254740991
Math.pow(2, 53) - 1; // 9007199254740991
```

Полифил
-------


```js
if (!Number.MAX\_SAFE\_INTEGER) {
  Number.MAX\_SAFE\_INTEGER = 9007199254740991; // Math.pow(2, 53) - 1;
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.max\_safe\_integer |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.MIN_SAFE_INTEGER`
* `Number.isSafeInteger()`
Number.isInteger()
==================

Метод **`Number.isInteger()`** определяет, является ли переданное значение целым числом.

Интерактивный пример
--------------------

Синтаксис
---------
```

Number.isInteger(value)
```

### Параметры

`value`

Значение, проверяемое на целочисленность.

### Возвращаемое значение

`Boolean` сообщающий о том, является ли переданное значение целочисленным числом.

Описание
--------

Если целевое значение является целым числом, возвращает `true`. Если значение `NaN` или `Infinity`, то возвращает `false`. Метод также возвращает `true`, если это вещественное число с точкой, которое может быть представлено в целочисленном виде.

Примеры
-------


```js
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(99999999999999999999999); // true

Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false

Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false

Number.isInteger(5.0); // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true
```

Полифил
-------


```js
Number.isInteger =
  Number.isInteger ||
  function (value) {
    return (
      typeof value === "number" &&
      isFinite(value) &&
      Math.floor(value) === value
    );
  };
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.isinteger |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Объект `Number`, которому принадлежит этот метод.
Number.parseFloat()
===================

Сводка
------

Метод **`Number.parseFloat()`** разбирает строковый аргумент и возвращает число с плавающей запятой. Этот метод ведёт себя идентично глобальной функции `parseFloat()` и является частью ECMAScript 6 (его целью является модуляризация глобальных сущностей).

Синтаксис
---------
```

Number.parseFloat(string)
```

### Параметры

`string`

Строка, представляющая значение, которое вы хотите разобрать.

Описание
--------

Пожалуйста, обратитесь к документации по глобальной функции `parseFloat()` для просмотра подробного описания и примеров.

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.parsefloat |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Объект `Number`, которому принадлежит этот метод.
* Глобальная функция `parseFloat()`.
Number.MAX\_VALUE
=================

Сводка
------

Свойство **`Number.MAX_VALUE`** представляет максимальное числовое значение, представимое в JavaScript.

| Атрибуты свойства `Number.MAX_VALUE` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Описание
--------

Свойство `MAX_VALUE` имеет значение, приблизительно равное `1.79E+308`. Значения, большие `MAX_VALUE` представляются как «бесконечность».

Поскольку `MAX_VALUE` является статическим свойством объекта `Number`, вы всегда должны использовать его как `Number.MAX_VALUE`, а не как свойство созданного вами объекта `Number`.

Примеры
-------

### Пример: использование `MAX_VALUE`

В следующем примере кода производится умножение двух значений. Если результат меньше или равен `MAX_VALUE`, вызывается функция `func1`; в противном случае вызывается функция `func2`.


```js
if (num1 \* num2 <= Number.MAX\_VALUE) {
  func1();
} else {
  func2();
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.max\_value |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `Number.MIN_VALUE`
Number.EPSILON
==============

Свойство **`Number.EPSILON`** представляет собой разницу между единицей и наименьшим значением, большим единицы, которое может быть представлено типом `Number`.

Вам не нужно создавать объект типа `Number` для доступа к этому статическому свойству (используйте `Number.EPSILON`).

| Атрибуты свойства `Number.EPSILON` |
| --- |
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |

Описание
--------

Свойство `EPSILON` имеет значение, приблизительно равное `2.2204460492503130808472633361816E-16` или `2-52`.

Примеры
-------

### Проверка на равенство
```

x = 0.2;
y = 0.3;
z = 0.1;
equal = (Math.abs(x - y + z) < Number.EPSILON);
```

Полифил
-------


```js
if (Number.EPSILON === undefined) {
  Number.EPSILON = Math.pow(2, -52);
}
```

Спецификации
------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-number.epsilon |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* Объект `Number`, которому принадлежит это свойство.