使用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