JS中int类型数字超过最大值的问题及解决方案
问题
在项目中遇到一个奇怪的问题,我们在后台获取到一个id是数字类型的,然后再进行页面操作时通过这个id去查其所绑定的数据时,一直查不到数据后台报错;
问题原因
后面经过自己的对id的比对之后发现我们获取到的id与传给后台的值竟然是不一样
解决办法
在获取到数字类型的id之后先将id转成字符串再传入后台,问题就解决了。
data() {
return {
number: 59588178895489589,
};
},
created() {
console.log(this.number)
},
原因分析:
我们可以看到上面我给的这个number赋值是:59588178895489589,而我们再浏览器打印出来的却是:59588178895489590;其实如果我们用了ESLINK是会有提示的。

因为根据ECMAScript标准的要求,JS能表示并进行精确算术运算的整数范围为:正负2的53次方,也即从最小的值-9007199254740992到最大的值9007199254740992之间的范围;虽然对于超过这个范围的整数,JavaScript依旧可以进行运算,但却不保证运算结果的精度。
值得注意的是:
对于整数的位运算(比如移位等操作),JavaScript仅支持32位整型数,也即从-2147483648到+2147483647之间的整数
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
三剑客:offset、client和scroll还傻傻分不清?
这篇文章主要给大家介绍了三剑客:offset,client和scroll的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12


最新评论