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

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

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

“我這邊沒問題啊。”

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

大部分項(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

2016-01-13 10:24:27

2023-05-16 14:07:52

AI自然語(yǔ)言

2022-06-13 09:26:41

Promise前端代碼

2018-08-23 16:25:29

HadoopHDFS存儲(chǔ)

2022-05-26 09:24:09

volatile懶漢模式

2014-10-29 14:52:13

程序員

2020-12-03 10:17:25

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

2019-12-02 15:35:25

電腦i7i5

2022-10-17 06:22:36

Anaconda開源

2020-10-27 10:58:07

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

2021-03-15 12:00:19

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

2010-11-19 16:02:42

IT族

2024-05-10 08:10:05

Spring虛擬線程JDK

2025-05-22 10:05:00

JSON.parse黑盒JavaScrip

2018-09-11 10:57:53

CIOCAOBI
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 日本黄色大片免费看 | 91天堂| 羞羞视频网 | 在线一区二区三区 | 亚洲一区二区在线视频 | 国产成人在线一区 | 精品一区二区三区在线观看 | 日本粉嫩一区二区三区视频 | 欧美一区二区免费在线 | 亚洲一区av | 中文在线日韩 | 国内久久精品 | 久久精品日产第一区二区三区 | 亚洲一区二区视频 | 久久久久久久久久久91 | 正在播放国产精品 | 成人三级在线播放 | www.日韩| 亚洲天堂网站 | 久久久精品一区 | 久久视频精品在线 | 成人不卡在线 | 一区二区欧美在线 | 国产在线观看免费 | 亚洲精品中文字幕在线观看 | 亚洲欧美在线视频 | 欧美xxxⅹ性欧美大片 | 国产欧美日韩综合精品一区二区 | 国产亚洲一区二区三区 | 久久久精品视频一区二区三区 | 黄免费看| 91麻豆精品国产91久久久更新资源速度超快 | 国产一二区免费视频 | 亚洲欧美日韩国产综合 | 国产在线精品一区二区 | 国产精品国产三级国产a | 日韩免费三级 | 日韩av高清| 午夜视频一区二区三区 | 久久综合久久久 | 久久久精品一区二区 |