You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/99-js-misc/05-bigint/article.md
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -98,17 +98,17 @@ alert( 0n || 2 ); // 2
98
98
99
99
## Полифилы
100
100
101
-
Создание полифила для `BigInt` достаточно непростая задача. Причина в том, что многие операторы в JavaScript, такие как `+`, `-` и др., ведут себя по-разному с bigint числами по сравнению с обычными числами.
101
+
Создание полифила для `BigInt` - достаточно непростая задача. Причина в том, что многие операторы в JavaScript, такие как `+`, `-` и др., ведут себя по-разному с bigint по сравнению с обычными числами.
102
102
103
103
К примеру, деление bigint числа всегда возвращает bigint (округлённое при необходимости).
104
104
105
-
Чтобы эмулировать такое поведение, полифил должен будет проанализировать код и заменить поведение всех таких операторов. Такая реализация будет тяжеловесной, что окажет негативное влияние на производительность..
105
+
Чтобы эмулировать такое поведение, полифил должен будет проанализировать код и заменить все такие операторы на свои вызовы. Такая реализация будет тяжеловесной, не очень хорошей с точки зрения производительности.
106
106
107
107
Вот почему на данный момент нет хорошо реализованного полифила.
108
108
109
-
Существует альтернативное решение, предложеное разработчиками [https://github.com/GoogleChromeLabs/jsbi](JSBI) библиотеки.
109
+
Существует обратное решение, предложеное разработчиками библиотеки [https://github.com/GoogleChromeLabs/jsbi](JSBI).
110
110
111
-
Эта библиотека реализовывает bigint числа используя свои собственные методы, которые мы можем использовать вместо собственной реализации bigint чисел JavaScript интерпретатора:
111
+
Эта библиотека реализует большие числа, используя собственные методы. Мы можем использовать их вместо встроенных bigint
112
112
113
113
| Операция | Встроенный BigInt | JSBI |
114
114
|-----------|-----------------|------|
@@ -119,9 +119,7 @@ alert( 0n || 2 ); // 2
119
119
120
120
...А затем использовать полифил (плагин Babel) для замены вызовов JSBI на встроенные `Bigint` для браузеров, которые их поддерживают.
121
121
122
-
Другими словами, данный подход предлагает использовать JSBI вместо встроенных bigint. JSBI внутри себя работает с числами как с bigint, эмулирует их с соблюдением всех требований спецификации.
123
-
124
-
Таким образом, мы можем выполнять JSBI-код в интерпретаторах, которые не поддерживают `Bigint`, а для тех, которые поддерживают - полифил преобразует вызовы в обычные `Bigint`.
122
+
Другими словами, данный подход предлагает использовать JSBI вместо встроенных bigint. JSBI внутри себя работает с числами как с bigint, эмулирует их с соблюдением всех требований спецификации. Таким образом, мы можем выполнять JSBI-код в интерпретаторах, которые не поддерживают `Bigint`, а для тех, которые поддерживают - полифил преобразует вызовы в обычные `Bigint`.
0 commit comments