js里面的整數有安全范圍,即最大能顯示的范圍,超過了這個范圍可能會精度丟失
Number.MAX_SAFE_INTEGER //值為9007199254740991
json-bigint:可以像JSON.parse一樣方便轉換(json-bigint 是一個第三方包,它可以幫我們很好的處理這個問題。)
1 //導入 2 import JSONbig from 'json-bigint' 3 4 //可以通過axios的transformResponse方法,這個方法的作用是在傳遞給then/catch前,允許修改響應數據 5 6 //axios在這里默認把響應體從json字符串轉成了js對象 7 axios.defaults.transformResponse = [function (data) { 8 9 10 try { 11 //作用1:把json字符串轉為js對象 12 //作用2:把里面的大數字做安全處理 13 return JSONbig.parse(data) 14 }catch(){ 15 return data; 16 } 17 //return data; 18 }] 19 20 //如果不寫這個方法,返回的數據是自動就轉為json對象的了,如果寫了,就要自己轉為對象,即return JSON.parse(data)
只要經過json-bigint轉換后的id,直接toString(),就能得到真實的id
json-bigint 會把超出 JS 安全整數范圍的數字轉為一個 BigNumber 類型的對象,對象數據是它內部的一個算法處理之后的,我們要做的就是在使用的時候轉為字符串來使用。