在JavaScript中,sessionStorage
是一个用于在浏览器会话期间存储数据的Web存储API。与 localStorage
不同,sessionStorage
中的数据仅在当前会话中可用,当页面会话结束(即窗口或标签页被关闭)时,数据就会被清除。
sessionStorage
只能存储字符串类型的数据。如果需要存储其他类型的数据,可以使用 JSON.stringify()
方法将其转换为字符串,读取时再使用 JSON.parse()
方法转换回来。// 存储一个字符串
sessionStorage.setItem('username', 'JohnDoe');
// 存储一个对象
const user = { name: 'JohnDoe', age: 30 };
sessionStorage.setItem('user', JSON.stringify(user));
// 读取一个字符串
const username = sessionStorage.getItem('username');
console.log(username); // 输出: JohnDoe
// 读取一个对象
const userStr = sessionStorage.getItem('user');
const user = JSON.parse(userStr);
console.log(user); // 输出: { name: 'JohnDoe', age: 30 }
// 删除一个键值对
sessionStorage.removeItem('username');
// 清空所有键值对
sessionStorage.clear();
原因: 可能是由于键名拼写错误或者数据已被删除。
解决方法: 检查键名是否正确,并确认数据是否存在。
if (sessionStorage.getItem('username')) {
console.log('数据存在');
} else {
console.log('数据不存在');
}
原因: 存储时和读取时的数据类型不一致。
解决方法: 确保存储和读取时使用相同的数据类型转换方法。
// 存储对象时转换为字符串
sessionStorage.setItem('user', JSON.stringify(user));
// 读取对象时转换回对象
const userStr = sessionStorage.getItem('user');
const user = JSON.parse(userStr);
通过以上方法,可以有效管理和操作 sessionStorage
中的数据。
领取专属 10元无门槛券
手把手带您无忧上云