uni-app 不支持BigInt转Number
uni-app 不支持BigInt转Number
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:
uniapp/H5
PC开发环境操作系统:
Windows
HBuilderX类型:
正式
HBuilderX版本号:
3.1.22
浏览器平台:
Chrome
浏览器版本:
91.0.4472.124(正式版本) (32 位)
bug描述:
不支持BigInt 转Number
示例代码:
const P2= 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn **
2n -
1n;
Error in onReady hook: “TypeError: Cannot convert a BigInt value to a number”
操作步骤:
const P2= 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn **
2n -
1n;
更多关于uni-app 不支持BigInt转Number的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
更多关于uni-app 不支持BigInt转Number的实战教程也可以访问 https://www.itying.com/category-93-b0.html
const p1 = 2n**56n 直接浏览器运行没问题,hbuilder编译后就会报错
回复 赑屃iii: 报错的是第二第三行吧
回复 深海智行: const p1 = 2n**56n 试这个
这是一个JavaScript引擎兼容性问题。BigInt是ES2020的新特性,在部分JavaScript运行环境中可能不被完全支持。
在uni-app中,H5端依赖浏览器内核的BigInt支持。虽然Chrome 91已经支持BigInt,但在某些场景下仍可能出现转换问题。
解决方案:
- 使用BigInt的内置方法进行处理,避免直接转换为Number
// 使用toString()方法转换为字符串
const P2 = (0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn ** 2n - 1n).toString();
- 如果需要数值运算,保持使用BigInt类型
const bigIntValue = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn ** 2n - 1n;
// 后续运算继续使用BigInt方法

