龙空技术网

你不知道的javascript,这个坑你们遇到过么

佛系攻城狮 135

前言:

现时兄弟们对“js坑”大体比较注重,同学们都需要剖析一些“js坑”的相关知识。那么小编同时在网络上网罗了一些对于“js坑””的相关资讯,希望姐妹们能喜欢,兄弟们一起来了解一下吧!

在一个月黑风高的大中午,我们部门的后端大佬跑过来对我说,

后端:“小凡,有个接口有问题”

我:“啥问题”

后端:“前端接口请求的报文参数和页面取得数据不一致”

我:“怎么可能,不是测过很多遍么,不应该的呀”

后端:“。。。。”

简单的踢了一圈小皮球,我跑过去看了下,打了个断点走了一遍,发现还真是,当时就郁闷了,于是打断点仔细跑了一遍又一遍,结果始终没变,瞬间就头大了。

发现原因

经过多次尝试后,发现了一个问题,我给后端传的参数是一个number类型,我就把参数贴到控制台打印了下,不打不知道一打吓一跳。

就是这么一瞬间,顿悟了,没错,数字精度丢失了,然后我查了下资料,发现js的number类型有个最大安全值,即2的53次方(9007199254740992),超过这个值就会出现精度丢失的问题。

解决问题

那么解决这个问题的方法就很简单了,把这个字段改成String就完了,前端改或者后端改都行,看心情....

这种问题其实一点不难,但这个细节点很容易被忽略,当然,一般也不会碰到这么庞大的数据量,万一哪天你们公司的后端在ID、code等字段用的数字去存储,万一这些字段又恰好超过了最大安全值,又万一让你给碰到了呢。

怎么样JS这个小坑,你了解了么[微笑]

结尾:文章不在长短,学到的就是有用的

希望小凡的每篇文章对你都有所帮助!

关注我,一起学习进步

标签: #js坑