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,但在某些场景下仍可能出现转换问题。

解决方案:

  1. 使用BigInt的内置方法进行处理,避免直接转换为Number
// 使用toString()方法转换为字符串
const P2 = (0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn ** 2n - 1n).toString();
  1. 如果需要数值运算,保持使用BigInt类型
const bigIntValue = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn ** 2n - 1n;
// 后续运算继续使用BigInt方法
回到顶部