JSON.parse解析大整数踩坑

项目返回的id是long类型,比较大,简洁一下前端的代码如下

javascript 复制代码
let jsonStr = `{
      "id": 1921823983347568644,
      "uid": 1921823983347568344
}`;
console.log(JSON.parse(jsonStr));

输出结果:

可以看到id的最后两位变成了00,uid的最后三位变成了400,原因是js序列化整数为Number的时候数据超出了Number的范围,导致出现了不可预测的结果

JS的数字只有在[-(Math.pow(2,53)-1), Math.pow(2,53)-1]内的数字才是符合规范

最好的解决方案是后端将大整数返回类型改为String

相关推荐
mCell2 小时前
GSAP ScrollTrigger 详解
前端·javascript·动效
gnip2 小时前
Node.js 子进程:child_process
前端·javascript
codingandsleeping8 小时前
使用orval自动拉取swagger文档并生成ts接口
前端·javascript
白水清风9 小时前
微前端学习记录(qiankun、wujie、micro-app)
前端·javascript·前端工程化
用户22152044278009 小时前
new、原型和原型链浅析
前端·javascript
阿星做前端9 小时前
coze源码解读: space develop 页面
前端·javascript
叫我小窝吧9 小时前
Promise 的使用
前端·javascript
前端康师傅11 小时前
JavaScript 作用域
前端·javascript
云枫晖11 小时前
JS核心知识-事件循环
前端·javascript
eason_fan12 小时前
Git 大小写敏感性问题:一次组件重命名引发的CI构建失败
前端·javascript