json-bigint处理大数字问题

  • 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

你可能感兴趣的:(学习笔记,Vue.js,前端,html5,javascript,vue.js,es6)