使用JSON.parse出現報錯 Error in mounted hook: "SyntaxError: Unexpected token u in JSON at position 0"


描述

使用JSON.parse(window.localStorage.getItem(TASKKEY)||'[]')獲取緩存中的數據時,遇到了以下問題

分析

經過求證發現JSON.parse(undefined)會報此類錯誤,可是在上述代碼中用||規避了window.localStorage.getItem(TASKKEY)為undefined的情況,還是報錯,后發現window.localStorage.getItem(TASKKEY)的undefined值為string類型,即"undefined",而非undefined,因此需要判斷是的window.localStorage.getItem(TASKKEY)是否等於"undefined"
console.log(typeof window.localStorage.getItem(TASKKEY),typeof undefined)

 const a=JSON.parse(undefined||'[]')
 console.log(a)

解決方法

return JSON.parse(window.localStorage.getItem(TASKKEY)!=='undefined'?window.localStorage.getItem(TASKKEY):'[]')||[]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM