问题:在项目中遇到一个奇怪的问题,我们在后台获取到一个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之间的整数