把你的数据序列化为 JSON,用 localStorage 把它持久化到浏览器中,并用 fetch 获取远程数据。
在 Kodokon 中打开本课JSON 是 Web 的通用交换格式:它是一种文本,其语法看起来像 JavaScript 对象(键用双引号,不含函数)。你只需要两个方法:JSON.stringify 把一个 JavaScript 值变成字符串,JSON.parse 则反向而行。
const task = { title: "Review the lesson", done: false };
const json = JSON.stringify(task);
console.log(json);
// {"title":"Review the lesson","done":false}
const parsed = JSON.parse(json);
console.log(parsed.done); // falselocalStorage 会把数据保存在浏览器中,即便标签页已经关闭。它非常适合保存所选的主题、一份草稿或一个任务列表。由于它只存储文本,JSON 便充当了桥梁:在 setItem 之前序列化,在 getItem 之后反序列化。
const tasks = [
{ title: "Buy bread", done: false },
{ title: "Review the lesson", done: true }
];
localStorage.setItem("tasks", JSON.stringify(tasks));
const raw = localStorage.getItem("tasks");
const saved = raw ? JSON.parse(raw) : [];
console.log(saved.length); // 2最后一块拼图:从服务器获取数据。fetch 发送一个 HTTP 请求并返回一个promise。借助 async/await,代码可以自上而下地阅读:你等待响应,检查它是否有效,然后等待 JSON 解码——这一步同样是异步的。
async function loadUsers() {
const response = await fetch(
"https://jsonplaceholder.typicode.com/users"
);
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const users = await response.json();
console.log(users[0].name);
}
loadUsers();JSON.stringify 做什么?localStorage.getItem 会返回什么?await response.json() 而不是简单地写 response.json()?