码迷,mamicode.com
首页 > Web开发 > 详细

Mark下js最大精确整数范围,业务中出现的疑难bug

时间:2018-01-16 23:55:51      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:测试   遇见   network   work   输入   image   告诉   一起   实验   

  今天在跟后端联调中,偶然发现几个数据的id居然一样,我就询问了下后端这是什么情况,然而后端告诉我说并没有相同的id,于是开始一起排查问题。

    排查中发现,从后端拿来的数据在浏览器控制台NetWork - Response中是正常的,然而在Preview中几个数据的id变成了相同的,着实令人费解。

  然后感觉应该是这个id过长的原因,超出js可以处理的最大整数。为了证明这个猜想,在浏览器中做了以下实验。

  首先,js可以处理的最大整数为 ?9007199254740992 and 9007199254740992 (即正负253次方)。

  技术分享图片

  就算说是可以处理长度为16的整数吧,然后继续加长度,看看浏览器会怎样处理。

  下面我输入了17位的整数,和18位的整数,发现超出16位的数字都会被处理为0,这也是今天出现这个bug的原因。

  技术分享图片

  因为是测试数据,这些id都是后端工程师自己制造的,生产环境中是不存在16位以上长度的id的,后端修改了这些id长度问题就解决了。

  算是工作中遇见的疑难杂症吧,自己mark,与大家分享。

 

 

  

Mark下js最大精确整数范围,业务中出现的疑难bug

标签:测试   遇见   network   work   输入   image   告诉   一起   实验   

原文地址:https://www.cnblogs.com/wunan/p/8298138.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!