Skip to content

Commit 65fb224

Browse files
committed
fix comments 5
1 parent d7690f6 commit 65fb224

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

1-js/02-first-steps/05-types/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ n = 12.345;
6868

6969
Тип `BigInt` был добавлен в JavaScript, чтобы дать возможность работать с целыми числами произвольной длины.
7070

71-
Чтобы создать значение типа `BigInt` необходимо добавить `n` в конец числового литерала:
71+
Чтобы создать значение типа `BigInt`, необходимо добавить `n` в конец числового литерала:
7272

7373
```js
7474
// символ "n" в конце означает, что это BigInt
@@ -78,7 +78,7 @@ const bigInt = 1234567890123456789012345678901234567890n;
7878
Так как `BigInt` числа нужны достаточно редко, мы рассмотрим их в отдельной главе <info:bigint>.
7979

8080
```smart header="Поддержка"
81-
В данный момент `BigInt` поддерживается только в браузерах Firefox и Chrome, но не поддерживается в Safari/IE/Edge
81+
В данный момент `BigInt` поддерживается только в браузерах Firefox и Chrome, но не поддерживается в Safari/IE/Edge.
8282
```
8383

8484
## Строка

1-js/99-js-misc/05-bigint/article.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
```js
1010
const bigint = 1234567890123456789012345678901234567890n;
11+
1112
const sameBigint = BigInt("1234567890123456789012345678901234567890");
13+
1214
const bigintFromNumber = BigInt(10); // то же самое, что и 10n
1315
```
1416

@@ -18,10 +20,11 @@ const bigintFromNumber = BigInt(10); // то же самое, что и 10n
1820

1921
```js run
2022
alert(1n + 2n); // 3
23+
2124
alert(5n / 2n); // 2
2225
```
2326

24-
Обратите внимание: операция деления `5/2` возвращает результат, округлённый до нуля без дробной части. Все операции с числами типа `bigint` возвращают `bigint`.
27+
Обратите внимание: операция деления `5/2` возвращает округлённый результат, без дробной части. Все операции с числами типа `bigint` возвращают `bigint`.
2528

2629
В математических операциях мы не можем смешивать `bigint` и обычные числа:
2730

@@ -34,19 +37,23 @@ alert(1n + 2); // Error: Cannot mix BigInt and other types
3437
```js run
3538
let bigint = 1n;
3639
let number = 2;
40+
3741
// конвертируем number в bigint
3842
alert(bigint + BigInt(number)); // 3
43+
3944
// конвертируем bigint в number
4045
alert(Number(bigint) + number); // 3
4146
```
4247

43-
Конвертирование bigint в число всегда происходит неявно, но если значение bigint слишком велико и не подходит под тип number, то дополнительные биты будут отброшены, что приведёт к потере точности.
48+
Конвертирование bigint в число всегда происходит неявно, но если значение bigint слишком велико и не подходит под тип number, то дополнительные биты будут отброшены, так что следует быть осторожными с такими преобразованиями.
4449

4550
````smart header="К `BigInt` числам нельзя применить унарный оператор `+`"
4651
Унарный оператор `+value` является хорошо известным способом конвертировать `value` в число.
47-
Данный оператор не поддерживается при работе с `BigInt` числами, чтобы [не сломать](https://github.com/tc39/proposal-bigint/blob/master/ADVANCED.md#dont-break-asmjs) "asm.js".
52+
53+
Данный оператор не поддерживается при работе с `BigInt` числами.
4854
```js run
4955
let bigint = 1n;
56+
5057
alert( +bigint ); // SyntaxError: Unexpected identifier
5158
```
5259
````
@@ -57,13 +64,15 @@ alert( +bigint ); // SyntaxError: Unexpected identifier
5764
5865
```js run
5966
alert( 2n > 1n ); // true
67+
6068
alert( 2n > 1 ); // true
6169
```
6270
6371
Так как обычные и bigint числа принадлежат к разным типам, они могут быть равны только при нестрогом сравнении `==`:
6472
6573
```js run
6674
alert( 1 == 1n ); // true
75+
6776
alert( 1 === 1n ); // false
6877
```
6978
@@ -83,6 +92,7 @@ if (0n) {
8392
8493
```js run
8594
alert( 1n || 2 ); // 1
95+
8696
alert( 0n || 2 ); // 2
8797
```
8898
@@ -100,18 +110,18 @@ alert( 0n || 2 ); // 2
100110
101111
Они предлагают использовать методы JSBI библиотеки вместо собственной реализации bigint чисел JavaScript интерпретатора:
102112
103-
| Операция | BigInt | JSBI |
113+
| Операция | Встроенный BigInt | JSBI |
104114
|-----------|-----------------|------|
105-
| Создание с `number` | `a = BigInt(789)` | `a = JSBI.BigInt(789)` |
115+
| Создание из `number` | `a = BigInt(789)` | `a = JSBI.BigInt(789)` |
106116
| Сложение | `c = a + b` | `c = JSBI.add(a, b)` |
107117
| Вычитание | `c = a - b` | `c = JSBI.subtract(a, b)` |
108118
| ... | ... | ... |
109119
110-
...а затем использовать "polyfill" (плагин Babel) для замены вызовов JSBI в использование нативных bigint чисел для браузеров, в которых имеется поддержка `BigInt`.
120+
...А затем использовать полифил (плагин Babel) для замены вызовов JSBI на встроенные `Bigint` для браузеров, которые их поддерживают.
111121
112-
Другими словами, данный подход предлагает использовать JSBI вместо использования нативных bigint чисел. JSBI внутри себя работает с числами как с bigint числами с соблюдением требований спецификации. Таким образом, мы можем выполнять код в интерпретаторах, которые не поддерживают `BigInt`.
122+
Другими словами, данный подход предлагает использовать JSBI вместо встроенных bigint. JSBI внутри себя работает с числами как с bigint, эмулирует их с соблюдением всех требований спецификации. Таким образом, мы можем выполнять JSBI-код в интерпретаторах, которые не поддерживают `Bigint`, а для тех, которые поддерживают - полифил преобразует вызовы в обычные `Bigint`.
113123
114-
## References
124+
## Ссылки
115125
116126
- MDN: [BigInt](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/BigInt).
117127
- Спецификация: [BigInt](https://tc39.es/ecma262/#sec-bigint-objects).

0 commit comments

Comments
 (0)