diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/issafeinteger/index.md b/files/zh-cn/web/javascript/reference/global_objects/number/issafeinteger/index.md
index 08596b698e5e9b..d1e5b498f59d62 100644
--- a/files/zh-cn/web/javascript/reference/global_objects/number/issafeinteger/index.md
+++ b/files/zh-cn/web/javascript/reference/global_objects/number/issafeinteger/index.md
@@ -5,38 +5,46 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger
{{JSRef}}
-**`Number.isSafeInteger()`** 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)。
+**`Number.isSafeInteger()`** 静态方法判断提供的值是否是一个*安全整数*。
-一个安全整数是一个符合下面条件的整数:
-
-- 可以准确地表示为一个 IEEE-754 双精度数字,
-- 其 IEEE-754 表示不能是舍入任何其他整数以适应 IEEE-754 表示的结果。.
-
-比如,`2^53 - 1` 是一个安全整数,它能被精确表示,在任何 IEEE-754 舍入模式(rounding mode)下,没有其他整数舍入结果为该整数。作为对比,`2^53` 就不是一个安全整数,它能够使用 IEEE-754 表示,但是 `2^53 + 1` 不能使用 IEEE-754 直接表示,在就近舍入(round-to-nearest)和向零舍入中,会被舍入为 `2^53`。
-
-安全整数范围为 `-(2^53 - 1)` 到 `2^53 - 1` 之间的整数,包含 `-(2^53 - 1)` 和 `2^53 - 1`。
+{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}}
## 语法
-```plain
+```js-nolint
Number.isSafeInteger(testValue)
```
### 参数
- `testValue`
- - : 需要检测的参数。
+ - : 要测试是否为安全整数的值。
### 返回值
-一个{{jsxref("Boolean", "布尔值")}} 表示给定的值是否是一个安全整数(safe integer)。
+如果给定的值是一个安全整数,则返回布尔值 `true`。否则返回 `false`。
+
+## 描述
+
+安全整数由 -(253 - 1) 到 253 - 1 的所有整数组成,包含(±9,007,199,254,740,991)。安全整数是符合以下条件的整数:
+
+- 可以精确地表示为 IEEE-754 双精度数,并且
+- 其 IEEE-754 表示形式不能是舍入任何其他整数以适应 IEEE-754 表示形式的结果。
+
+例如,253 - 1 是一个安全整数:它可以精确地表示,并且在任何 IEEE-754 舍入模式下都没有其他整数舍入结果为该整数。相比之下,253 *不是*一个安全整数:它可以在 IEEE-754 中精确地表示,但整数 253 + 1 不能直接在 IEEE-754 中表示,而是采用就近舍入和向零舍入时,会舍入到 253。
+
+处理大约 9 千万亿左右的值时,需要使用[任意精度算术库](https://zh.wikipedia.org/wiki/高精度计算)来实现完全精确性。有关浮点数表示的更多信息,请参阅[程序员需要了解的浮点数算术知识](https://floating-point-gui.de/)。
+
+对于更大的整数,请考虑使用 {{jsxref("BigInt")}} 类型。
## 示例
+### 使用 isSafeInteger()
+
```js
Number.isSafeInteger(3); // true
-Number.isSafeInteger(Math.pow(2, 53)); // false
-Number.isSafeInteger(Math.pow(2, 53) - 1); // true
+Number.isSafeInteger(2 ** 53); // false
+Number.isSafeInteger(2 ** 53 - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
@@ -44,14 +52,6 @@ Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
```
-## Polyfill
-
-```plain
-Number.isSafeInteger = Number.isSafeInteger || function (value) {
- return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
-};
-```
-
## 规范
{{Specifications}}
@@ -60,8 +60,10 @@ Number.isSafeInteger = Number.isSafeInteger || function (value) {
{{Compat}}
-## 相关链接
+## 参见
+- [`core-js` 中 `Number.isSafeInteger` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-number)
- {{jsxref("Number")}}
- {{jsxref("Number.MIN_SAFE_INTEGER")}}
- {{jsxref("Number.MAX_SAFE_INTEGER")}}
+- {{jsxref("BigInt")}}