JavaScript 基础与页面交互
用 localStorage 保存状态
把数组序列化保存,加载时验证并为损坏数据提供恢复路径。
- 难度
- 入门
- 预计时间
- 40 分钟
- 最近验证
- 2026/9/21
这一节要完成什么
把数组序列化保存,加载时验证并为损坏数据提供恢复路径。
先理解:为什么要学它
把数组序列化保存,加载时验证并为损坏数据提供恢复路径。
跟着做
const STORAGE_KEY = 'coderung:sessions:v1';
function saveSessions(items) {
localStorage.setItem(STORAGE_KEY, JSON.stringify(items));
}
function loadSessions() {
try {
const value = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? '[]');
return Array.isArray(value) ? value : [];
} catch {
return [];
}
}- 打开上一节保留的项目,先运行当前版本并记录结果。
- 输入示例并逐行运行,完成:新增后刷新确认保留;再在 DevTools 写入损坏 JSON,页面应恢复为空状态而不崩溃。
- 至少改变一个输入,先预测结果,再用浏览器验证。
- 故意制造本节典型错误,再根据错误信息修复:localStorage 只存字符串且不适合秘密;任何读出的数据都当作不可信输入。
关键代码怎么读
- 把数组序列化保存,加载时验证并为损坏数据提供恢复路径。
- 代码要按输入、处理、输出三部分阅读;先指出每一部分在哪里。
- 能运行只是第一步,完成后必须用不同输入验证边界。
常见错误:看到什么,检查什么
| 现象 | 检查方法 |
|---|---|
| 结果与预期不同 | localStorage 只存字符串且不适合秘密;任何读出的数据都当作不可信输入。 |
| 刷新后没有变化 | 确认文件已保存、脚本路径正确,并阅读 Console 第一条相关错误。 |
自己完成一次
新增后刷新确认保留;再在 DevTools 写入损坏 JSON,页面应恢复为空状态而不崩溃。
完成后再看参考答案
完成后应能不用复制示例重新实现,并解释为什么这样处理。关键检查:localStorage 只存字符串且不适合秘密;任何读出的数据都当作不可信输入。
完成检查
- 我完成了本节要求的可见结果
- 我能解释关键代码的输入、处理和输出
- 我测试了正常、边界和错误情况