描述
使用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):'[]')
||[]