1、最近在做开发的时候,在调试售后单列表数据里,后端返回的售后单号是一个超长的数字(20181207140756183),然后在调试订单详情时,后端始终找不到这个售后单,说是这个售后单不存在,一看才发现售后单变成20181207140756184了。

对比返回的数据,后端确实是返回正确的20181207140756183,那么肯定是前端出问题了。

如上图可以看出,浏览器在解析json的时候,把这个超长的数字解析错了,最后在确认数据库的时候发现,数据库用的是bigint(20),想到这个数字长度是不是超过js的解析范围了,网上一查, JavaScript能表示并进行精确算术运算的整数范围为:正负2的53次方,也就是从最小值-9007199254740992到最大值+9007199254740992之间的范围,没有办法,只有叫后端把20181207140756183改为字符串传输了,就可以解决了。