Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ru] update Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER translation #22818

Merged
merged 4 commits into from
Jul 30, 2024
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,35 +1,44 @@
---
title: Number.MAX_SAFE_INTEGER
slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
l10n:
sourceCommit: fcd80ee4c8477b6f73553bfada841781cf74cf46
---

{{JSRef}}

## Сводка
Статическое свойство **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (2<sup>53</sup> – 1).

Константа **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (`253 - 1`).
Для бо́льших целых чисел используется {{jsxref("BigInt")}}.

{{EmbedInteractiveExample("pages/js/number-maxsafeinteger.html")}}

## Значение

`9007199254740991` (9,007,199,254,740,991 или приблизительно 9 квадриллионов).

{{js_property_attributes(0, 0, 0)}}

## Описание

Константа `MAX_SAFE_INTEGER` имеет значение `9007199254740991`. Смысл этого числа в том, что в JavaScript используется [формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности), как определено в стандарте [IEEE 754](https://ru.wikipedia.org/wiki/IEEE_754), а он может безопасно представлять числа только в диапазоне от `-(253 - 1)` до `253 - 1`.
[Формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности) имеет только 52 бита для представления [мантиссы](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_encoding), поэтому он может безопасно представлять целые числа в диапазоне от -(2<sup>53</sup> – 1) до 2<sup>53</sup> – 1. «Безопасность» в этом контексте означает способность точно представлять целые числа и правильно их сравнивать. Например, `Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2` будет иметь истинное значение, что математически неверно. Больше информации в {{jsxref("Number.isSafeInteger()")}}.
leon-win marked this conversation as resolved.
Show resolved Hide resolved

Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта {{jsxref("Global_Objects/Number", "Number")}}, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство созданного вами объекта {{jsxref("Global_Objects/Number", "Number")}}.
Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта {{jsxref("Number")}}, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство числового значения.

## Примеры

### Значение MAX_SAFE_INTEGER

```js
Number.MAX_SAFE_INTEGER; // 9007199254740991
Math.pow(2, 53) - 1; // 9007199254740991
```

## Полифил
### Связь между MAX_SAFE_INTEGER и EPSILON

{{jsxref("Number.EPSILON")}} — это 2<sup>-52</sup>, а `MAX_SAFE_INTEGER` — это (2<sup>53</sup> – 1), оба значения являются производными от размера мантиссы, который составляет 53 бита (при этом старший бит всегда равен 1). Их умножение даст значение, очень близкое (но не равное) 2.

```js
if (!Number.MAX_SAFE_INTEGER) {
Number.MAX_SAFE_INTEGER = 9007199254740991; // Math.pow(2, 53) - 1;
}
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
```

## Спецификации
Expand All @@ -42,5 +51,7 @@ if (!Number.MAX_SAFE_INTEGER) {

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

- [Полифил `Number.MAX_SAFE_INTEGER` в `core-js`](https://github.com/zloirock/core-js#ecmascript-number)
- {{jsxref("Number.MIN_SAFE_INTEGER")}}
- {{jsxref("Number.isSafeInteger()")}}
- {{jsxref("BigInt")}}
Loading