JS中int類型數(shù)字超過最大值的問題及解決方案
問題
在項目中遇到一個奇怪的問題,我們在后臺獲取到一個id是數(shù)字類型的,然后再進行頁面操作時通過這個id去查其所綁定的數(shù)據(jù)時,一直查不到數(shù)據(jù)后臺報錯;
問題原因
后面經(jīng)過自己的對id的比對之后發(fā)現(xiàn)我們獲取到的id與傳給后臺的值竟然是不一樣
解決辦法
在獲取到數(shù)字類型的id之后先將id轉成字符串再傳入后臺,問題就解決了。
data() {
return {
number: 59588178895489589,
};
},
created() {
console.log(this.number)
},
原因分析:
我們可以看到上面我給的這個number賦值是:59588178895489589,而我們再瀏覽器打印出來的卻是:59588178895489590;其實如果我們用了ESLINK是會有提示的。

因為根據(jù)ECMAScript標準的要求,JS能表示并進行精確算術運算的整數(shù)范圍為:正負2的53次方,也即從最小的值-9007199254740992到最大的值9007199254740992之間的范圍;雖然對于超過這個范圍的整數(shù),JavaScript依舊可以進行運算,但卻不保證運算結果的精度。
值得注意的是:
對于整數(shù)的位運算(比如移位等操作),JavaScript僅支持32位整型數(shù),也即從-2147483648到+2147483647之間的整數(shù)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
JS typeof fn === ''function'' && fn()詳解
最近在學習js的時候發(fā)現(xiàn)很多人都喜歡在JS 中存在fn && fn() 執(zhí)行語句或者typeof fn === 'function' && fn(),下面這篇文章就為大家分享一下2020-08-08
javascript Array數(shù)組對象的擴展函數(shù)代碼
我們經(jīng)常給 String,Function,Array 的原型加上自定義的擴展函數(shù),比如去除字符串空格,數(shù)組排序等2010-05-05
詳解javascript對數(shù)組和json數(shù)組的操作
這篇文章主要介紹了javascript對數(shù)組和json數(shù)組的操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04

