成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

別再盲目用 JSON.parse(localStorage.getItem(…)) 了,這個(gè)檢查你一定要加!

開發(fā) 前端
多少前端開發(fā)者的噩夢(mèng),都是從這句開始的。直到某天,本地存儲(chǔ)里蹦出個(gè)壞數(shù)據(jù),頁面崩了,用戶罵了,老板問了……

“我這邊沒問題啊。”

多少前端開發(fā)者的噩夢(mèng),都是從這句開始的。直到某天,本地存儲(chǔ)里蹦出個(gè)壞數(shù)據(jù),頁面崩了,用戶罵了,老板問了……

大部分項(xiàng)目里,我們都這樣寫過:

const user = JSON.parse(localStorage.getItem('user'));

寫一遍,復(fù)制粘貼一百遍,從沒多想過,直到:

  • localStorage里根本不是合法的JSON(用戶誤操作DevTools)
  • 存進(jìn)去的是 undefined、空字符串""null
  • 版本升級(jí)后數(shù)據(jù)結(jié)構(gòu)變了

結(jié)果就是:

SyntaxError: Unexpected token u in JSON at position 0

整個(gè)應(yīng)用崩潰,白屏,沒脾氣。

一行代碼的防護(hù)罩

這個(gè)包裝函數(shù)你本該一開始就寫好:

function safeJSON(key, defaultValue = null) {
  const item = localStorage.getItem(key);
  if (!item) return defaultValue;
  try {
    return JSON.parse(item);
  } catch {
    localStorage.removeItem(key);
    return defaultValue;
  }
}

用法:

const user = safeJSON('user', { role: 'guest' });
  • 先判斷是否存在,避免 JSON.parse(null) 報(bào)錯(cuò)
  • 異常捕獲壞數(shù)據(jù),自動(dòng)清理,避免反復(fù)崩潰
  • 給個(gè)默認(rèn)值,保證應(yīng)用狀態(tài)安全回退

實(shí)戰(zhàn)進(jìn)階:版本化你的 localStorage key

數(shù)據(jù)結(jié)構(gòu)要大改?別直接換同一個(gè) key,搞兩個(gè)版本:

const userV1 = safeJSON('user:v1');
const userV2 = safeJSON('user:v2');

老客戶端繼續(xù)用舊版本,新版本走新版,零遷移,零痛苦。

TypeScript 加持:用類型守衛(wèi)把錯(cuò)誤擋在編譯期

配合類型定義和守衛(wèi)函數(shù),保證代碼層面就排除格式異常和字段缺失。

TL;DR

  • JSON.parse(localStorage.getItem()) 假設(shè)數(shù)據(jù)完美,現(xiàn)實(shí)中99%不是。
  • 用 null 判斷+try/catch 包裝,自動(dòng)清理壞數(shù)據(jù)。
  • 版本化 key,優(yōu)雅應(yīng)對(duì)結(jié)構(gòu)變更。
  • 會(huì)用TS就用TS,減少運(yùn)行時(shí)風(fēng)險(xiǎn)。
責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2025-06-10 02:22:00

2022-05-30 07:36:07

Python腳本函數(shù)

2022-10-25 08:46:26

JSONJavaScript

2021-10-29 06:56:15

Python腳本解釋器

2022-08-31 22:50:13

JavaScript函數(shù)JSON

2023-05-16 14:07:52

AI自然語言

2016-01-13 10:24:27

2022-06-13 09:26:41

Promise前端代碼

2022-05-26 09:24:09

volatile懶漢模式

2018-08-23 16:25:29

HadoopHDFS存儲(chǔ)

2014-10-29 14:52:13

程序員

2020-12-03 10:17:25

Kubernetes架構(gòu)微服務(wù)

2020-10-27 10:58:07

Linux內(nèi)核操作系統(tǒng)

2022-10-17 06:22:36

Anaconda開源

2019-12-02 15:35:25

電腦i7i5

2024-05-10 08:10:05

Spring虛擬線程JDK

2021-03-15 12:00:19

Kubernetes微服務(wù)架構(gòu)

2010-11-19 16:02:42

IT族

2018-09-11 10:57:53

CIOCAOBI

2025-05-21 09:23:03

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美激情精品久久久久久免费 | 九九热这里 | 久久久久9999 | 色综合一区 | 国产精品美女久久久久aⅴ国产馆 | 久久亚洲欧美日韩精品专区 | 婷婷综合激情 | 91视视频在线观看入口直接观看 | www.久久久.com | 在线亚州 | 中文字幕一区二区三区在线乱码 | 日本精品视频 | 欧美在线一区视频 | 成人伊人| 日韩网站在线 | 日本精品一区 | 色频| 在线日韩欧美 | 国产精品国产三级国产aⅴ无密码 | 成人欧美一区二区三区黑人孕妇 | 亚州综合一区 | 99色综合 | 亚洲 精品 综合 精品 自拍 | 91久久爽久久爽爽久久片 | 国产激情在线看 | 国产精品久久久久久久久久东京 | 美国黄色一级片 | 草草影院ccyy | 中文字幕在线播放不卡 | 国产精品特级毛片一区二区三区 | 欧美精品一区二区在线观看 | 欧美日韩综合一区 | 婷婷综合色 | 亚洲精品一区中文字幕乱码 | 久久性 | 在线观看国产www | www.久久 | 久久久免费 | 中国一级特黄毛片大片 | 婷婷久久一区 | 精品欧美一区二区三区精品久久 |