From 7bf737a2d9b561ff8314661febbab26a2fdd42ee Mon Sep 17 00:00:00 2001
From: Matvey Romanov <38384967+ra1nbow1@users.noreply.github.com>
Date: Sun, 13 Oct 2024 12:20:59 +0300
Subject: [PATCH 1/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?=
=?UTF-8?q?=D0=B5=D1=82=20=D0=B4=D0=BE=D0=BA=D1=83=20=D0=BF=D1=80=D0=BE=20?=
=?UTF-8?q?`BigInt`?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
js/bigint/index.md | 42 +++++++++++++++++++++++++++++++++++++-----
1 file changed, 37 insertions(+), 5 deletions(-)
diff --git a/js/bigint/index.md b/js/bigint/index.md
index 3b97907f89..63273e86ff 100644
--- a/js/bigint/index.md
+++ b/js/bigint/index.md
@@ -1,22 +1,22 @@
+
---
title: "Большое целое"
description: "В математике числа бесконечны, а в программировании — нет. Если число не влезает в стандартный `number`, то есть его старший брат."
authors:
- - doka-dog
+ - ra1nbow1
related:
- js/number
- js/typecasting
- tools/json
tags:
- doka
- - placeholder
---
## Кратко
-Тип большого целого `BigInt` — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный [примитив «число»](/js/number/).
+Тип большого целого `BigInt` — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный [примитив «число»](/js/number/).
-Этот тип может использоваться для работы с произвольно большими целыми числами.
+Этот тип может использоваться для работы с произвольно большими целыми числами, такими как идентификаторы, криптографические ключи или другие данные, где требуется высокая точность.
## Как пишется
@@ -34,7 +34,7 @@ const biggy = 9997000254740991n
const alsoBig = BigInt(9997000254999999)
```
-Для `BigInt` определены операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведение в степень `**`.
+Для `BigInt` определены операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведения в степень `**`.
Операция деления `/` также работает, но дробная часть будет отброшена:
@@ -51,3 +51,35 @@ console.log(seven / five)
☝️ `BigInt` не сериализуется в [JSON](/tools/json/). Это усложняет использование этого типа данных в задачах взаимодействия с сервером.
+
+## Преобразование типов
+
+`BigInt` не может быть напрямую использован с обычными числами типа `number` в операциях, так как это вызовет ошибку:
+
+```js
+const biggy = 10n
+const number = 5
+
+console.log(biggy + number) // Ошибка
+```
+
+Чтобы провести операции между `BigInt` и обычными числами, их нужно явно преобразовать. Например:
+
+```js
+const biggy = 10n
+const number = 5
+
+console.log(biggy + BigInt(number)) // 15n
+console.log(Number(biggy) + number) // 15
+```
+
+## Ограничения
+
+- **Нет поддержки дробных чисел:** `BigInt` работает только с целыми числами. Дробные числа нельзя использовать с этим типом данных.
+- **Ограниченная поддержка в браузерах:** Хотя `BigInt` поддерживается большинством современных браузеров, старые версии могут не поддерживать этот тип.
+
+## Советы
+
+- Используйте `BigInt`, когда нужно работать с числами, которые превышают максимальное безопасное целое значение в JavaScript, то есть 253-1.
+- Для стандартных вычислений с небольшими числами продолжайте использовать тип `number`, так как он занимает меньше памяти и более эффективен в операциях.
+- Не забудьте проверять поддержку `BigInt` в тех средах, где используется ваш код, чтобы избежать неожиданных ошибок.
From 260bf81968ba37764d03c4b92ebc7c93814c835f Mon Sep 17 00:00:00 2001
From: Matvey Romanov <38384967+ra1nbow1@users.noreply.github.com>
Date: Mon, 14 Oct 2024 11:29:02 +0300
Subject: [PATCH 2/6] Update index.md
---
js/bigint/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/bigint/index.md b/js/bigint/index.md
index 63273e86ff..3029154ac6 100644
--- a/js/bigint/index.md
+++ b/js/bigint/index.md
@@ -14,7 +14,7 @@ tags:
## Кратко
-Тип большого целого `BigInt` — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный [примитив «число»](/js/number/).
+Тип большого целого `BigInt` — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный [примитив «число»](/js/number/).
Этот тип может использоваться для работы с произвольно большими целыми числами, такими как идентификаторы, криптографические ключи или другие данные, где требуется высокая точность.
From 161e078a1b5bd7ba567d2468b8dcc3d673771113 Mon Sep 17 00:00:00 2001
From: Matvey Romanov <38384967+ra1nbow1@users.noreply.github.com>
Date: Mon, 14 Oct 2024 22:11:25 +0300
Subject: [PATCH 3/6] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D1=8F?=
=?UTF-8?q?=D0=B5=D1=82=20=D0=B4=D0=BE=D0=BA=D1=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
js/bigint/index.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/js/bigint/index.md b/js/bigint/index.md
index 3029154ac6..76a6942926 100644
--- a/js/bigint/index.md
+++ b/js/bigint/index.md
@@ -77,6 +77,7 @@ console.log(Number(biggy) + number) // 15
- **Нет поддержки дробных чисел:** `BigInt` работает только с целыми числами. Дробные числа нельзя использовать с этим типом данных.
- **Ограниченная поддержка в браузерах:** Хотя `BigInt` поддерживается большинством современных браузеров, старые версии могут не поддерживать этот тип.
+- Не поддерживаются операции [унарного плюса](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unary_plus) и [сдвига битов вправо](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift)
## Советы
From 2609725603560dad4a24ad669f224ada6673ed95 Mon Sep 17 00:00:00 2001
From: Tatiana Fokina
Date: Fri, 18 Oct 2024 17:43:56 +0400
Subject: [PATCH 4/6] =?UTF-8?q?=D0=A0=D0=B5=D0=B4=D0=B0=D1=87=D0=B8=D1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
js/bigint/index.md | 42 +++++++++++++++++++++++++-----------------
1 file changed, 25 insertions(+), 17 deletions(-)
diff --git a/js/bigint/index.md b/js/bigint/index.md
index 76a6942926..d6c4812e54 100644
--- a/js/bigint/index.md
+++ b/js/bigint/index.md
@@ -1,4 +1,3 @@
-
---
title: "Большое целое"
description: "В математике числа бесконечны, а в программировании — нет. Если число не влезает в стандартный `number`, то есть его старший брат."
@@ -16,7 +15,7 @@ tags:
Тип большого целого `BigInt` — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный [примитив «число»](/js/number/).
-Этот тип может использоваться для работы с произвольно большими целыми числами, такими как идентификаторы, криптографические ключи или другие данные, где требуется высокая точность.
+Этот тип используют для работы с произвольно большими целыми числами: идентификаторами, криптографическими ключами и другими данными, где требуется высокая точность.
## Как пишется
@@ -36,7 +35,7 @@ const alsoBig = BigInt(9997000254999999)
Для `BigInt` определены операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведения в степень `**`.
-Операция деления `/` также работает, но дробная часть будет отброшена:
+Операция деления `/` также работает, но дробная часть отбросится:
```js
const seven = 7n
@@ -48,19 +47,21 @@ console.log(seven / five)
-## Преобразование типов
+### Преобразование типов
-`BigInt` не может быть напрямую использован с обычными числами типа `number` в операциях, так как это вызовет ошибку:
+В операциях `BigInt` невозможно использовать напрямую с обычными числами типа `number`: это приведёт к ошибке.
```js
const biggy = 10n
const number = 5
-console.log(biggy + number) // Ошибка
+console.log(biggy + number)
+// Uncaught TypeError: Cannot mix BigInt and other types,
+// use explicit conversions
```
Чтобы провести операции между `BigInt` и обычными числами, их нужно явно преобразовать. Например:
@@ -69,18 +70,25 @@ console.log(biggy + number) // Ошибка
const biggy = 10n
const number = 5
-console.log(biggy + BigInt(number)) // 15n
-console.log(Number(biggy) + number) // 15
+console.log(biggy + BigInt(number))
+// 15n
+
+console.log(Number(biggy) + number)
+// 15
```
-## Ограничения
+### Ограничения
+
+**Нет поддержки дробных чисел**. `BigInt` работает только с целыми числами. Дробные числа нельзя использовать с этим типом данных.
+
+**Ограниченная поддержка в браузерах**. Хотя `BigInt` поддерживается большинством браузеров, старые версии могут не поддерживать этот тип.
+
+В `BigInt` не поддерживаются операции [унарного плюса](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unary_plus) и [сдвига битов вправо](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift).
+
+## Подсказки
-- **Нет поддержки дробных чисел:** `BigInt` работает только с целыми числами. Дробные числа нельзя использовать с этим типом данных.
-- **Ограниченная поддержка в браузерах:** Хотя `BigInt` поддерживается большинством современных браузеров, старые версии могут не поддерживать этот тип.
-- Не поддерживаются операции [унарного плюса](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unary_plus) и [сдвига битов вправо](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift)
+💡 Используйте `BigInt`, когда работаете с числами, которые превышают максимальное безопасное целое значение в JavaScript — 253-1.
-## Советы
+💡 Продолжайте использовать тип `number` для стандартных вычислений с небольшими числами. Этот тип занимает меньше памяти и более эффективен в операциях.
-- Используйте `BigInt`, когда нужно работать с числами, которые превышают максимальное безопасное целое значение в JavaScript, то есть 253-1.
-- Для стандартных вычислений с небольшими числами продолжайте использовать тип `number`, так как он занимает меньше памяти и более эффективен в операциях.
-- Не забудьте проверять поддержку `BigInt` в тех средах, где используется ваш код, чтобы избежать неожиданных ошибок.
+💡 Проверяйте поддержку `BigInt` в средах, где используется ваш код. Так избежите неожиданных ошибок.
From 58b38319c83b31373bb32cb44d33ae74894ae35b Mon Sep 17 00:00:00 2001
From: Matvey Romanov <38384967+ra1nbow1@users.noreply.github.com>
Date: Sat, 19 Oct 2024 12:17:42 +0300
Subject: [PATCH 5/6] Update index.md
---
js/bigint/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/bigint/index.md b/js/bigint/index.md
index d6c4812e54..5bf566ad72 100644
--- a/js/bigint/index.md
+++ b/js/bigint/index.md
@@ -33,7 +33,7 @@ const biggy = 9997000254740991n
const alsoBig = BigInt(9997000254999999)
```
-Для `BigInt` определены операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведения в степень `**`.
+Для `BigInt` определены, например, операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведения в степень `**`.
Операция деления `/` также работает, но дробная часть отбросится:
From 8d6726d0a4708fedc441daf6a160429990ca6924 Mon Sep 17 00:00:00 2001
From: Tatiana Fokina
Date: Sun, 20 Oct 2024 18:57:05 +0400
Subject: [PATCH 6/6] =?UTF-8?q?=D0=97=D0=B0=D0=BC=D0=B5=D0=BD=D1=8F=D0=B5?=
=?UTF-8?q?=D1=82=20=D0=B3=D0=BB=D0=B0=D0=B3=D0=BE=D0=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
js/bigint/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/bigint/index.md b/js/bigint/index.md
index 5bf566ad72..9fd0df16e5 100644
--- a/js/bigint/index.md
+++ b/js/bigint/index.md
@@ -33,7 +33,7 @@ const biggy = 9997000254740991n
const alsoBig = BigInt(9997000254999999)
```
-Для `BigInt` определены, например, операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведения в степень `**`.
+`BigInt` поддерживает, например, операции сложения `+`, вычитания `-`, умножения `*`, взятия остатка от деления `%`, возведения в степень `**`.
Операция деления `/` также работает, но дробная часть отбросится: