BigInt转字符串应优先使用.toString()方法,支持默认十进制及2~36进制转换;避免隐式转换如+拼接或模板字符串直接嵌入;反向转换必须用BigInt(str),禁用parseInt或Number以防精度丢失。

BigInt 类型转为字符串,直接用 .toString() 方法即可,这是最常用也最可靠的方式。
使用 .toString() 转换
BigInt 原生支持 .toString(),默认以十进制字符串返回。注意不能省略括号,myBigInt + '' 或 String(myBigInt) 虽然也能工作,但 .toString() 更明确、更安全。
-
123n.toString()→"123" -
0n.toString()→"0" -
-456n.toString()→"-456"
指定进制输出
.toString(radix) 支持传入 2~36 的进制数,适用于十六进制、二进制等场景。
-
255n.toString(16)→"ff" -
10n.toString(2)→"1010" -
1000n.toString(36)→"rs"
避免隐式转换陷阱
不要用 + 拼接或模板字符串直接混合 BigInt 和字符串(如 `value: ${123n}`),虽然现代引擎大多支持,但部分旧环境或严格模式下可能报错。稳妥做法是显式调用 .toString()。
立即学习“Java免费学习笔记(深入)”;
- ✅ 推荐:
`value: ${123n.toString()}` - ⚠️ 风险:
`value: ${123n}`(兼容性不确定) - ❌ 错误:
123n + ""在某些 polyfill 或调试器中可能触发异常
与 Number 字符串互转的注意事项
BigInt 转字符串没问题,但反向(字符串转 BigInt)必须用 BigInt(str),不能用 parseInt 或 Number,否则精度丢失或报错。
-
BigInt("9007199254740991999999")→ 正确解析大整数 -
parseInt("9007199254740991999999")→ 会变成9007199254740992000000(精度丢失) -
Number("9007199254740991999999")→ 同样精度丢失,且超出安全整数范围后不可逆


















