今天在跟後端聯調中,偶然發現幾個數據的id竟然同樣,我就詢問了下後端這是什麼狀況,然然後端告訴我說並無相同的id,因而開始一塊兒排查問題。後端
排查中發現,從後端拿來的數據在瀏覽器控制檯NetWork - Response中是正常的,然而在Preview中幾個數據的id變成了相同的,着實使人費解。瀏覽器
而後感受應該是這個id過長的緣由,超出js能夠處理的最大整數。爲了證實這個猜測,在瀏覽器中作了如下實驗。測試
首先,js能夠處理的最大整數爲 −9007199254740992 and 9007199254740992 (即正負2的53次方)。
spa
就算說是能夠處理長度爲16的整數吧,而後繼續加長度,看看瀏覽器會怎樣處理。code
下面我輸入了17位的整數,和18位的整數,發現超出16位的數字都會被處理爲0,這也是今天出現這個bug的緣由。blog
由於是測試數據,這些id都是後端工程師本身製造的,生產環境中是不存在16位以上長度的id的,後端修改了這些id長度問題就解決了。it
算是工做中碰見的疑難雜症吧,本身mark,與你們分享。class