js里面的整数有安全范围,即最大能显示的范围,超过了这个范围可能会精度丢失
Number.MAX_SAFE_INTEGER //值为9007199254740991
json-bigint:可以像JSON.parse一样方便转换
用法:
//导入
import JSONbig from 'json-bigint'
//可以通过axios的transformResponse方法,这个方法的作用是在传递给then/catch前,允许修改响应数据
//axios在这里默认把响应体从json字符串转成了js对象
axios.defaults.transformResponse = [function (data) {
console.log(data)//这里的data是字符串,在这个字符串的是没有丢失精度的,所以需要在这里先把精度调好
try {
//作用1:把json字符串转为js对象
//作用2:把里面的大数字做安全处理
return JSONbig.parse(data)
}catch(){
return data;
}
//return data;
}]
//如果不写这个方法,返回的数据是自动就转为json对象的了,如果写了,就要自己转为对象,即return JSON.parse(data)
注意
:
alert会自动调用了toString()方法
只要经过json-bigint转换后的id,直接toString(),就能得到真实的id