# 初始 localStorage
# localStorage 是什么
localStorage 也是一种浏览器存储数据的方式 (本地存储),它只是存储在本地,不会发送到服务器端。
单个域名下的 localStorage 总大小有限制。
# 在浏览器中操作 localStorage
# localStorage 的基本用法
console.log(localStorage) |
# 向 localStorage 中添加数据
localStorage.setItem('username','zhangsan') | |
localStorage.setItem('username','lisk') | |
localStorage.setItem('age',18) | |
localStorage.setItem('sex','male') |
# 获取 localStorage 中的数据
console.log(localStorage.getItem('username')) | |
console.log(localStorage.getItem('age')) | |
// 获取不存在的返回 null | |
console.log(localStorage.getItem('name')) |
删除 localStorage 中的数据
localStorage.removeItem('username') | |
localStorage.removeItem('age') | |
console.log(localStorage) |
清空 localStorage 中所有数据
localStorage.clear() |
# 使用 localStorage 实现自动填充
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Document</title> | |
</head> | |
<body> | |
<form id="login" action="#" method="post"> | |
<input type="text" name="username"/><br> | |
<input type="password" name="password"/><br> | |
<button id="nth" type="submit">提交</button> | |
</form> | |
<script> | |
// 通过 id 获取 form 标签 | |
let loginForm = document.getElementById('login') | |
// 通过 id 获取按钮标签 | |
let nth = document.getElementById('nth') | |
// 从 localStorage 中获取 username 的值 | |
const username = localStorage.getItem('username') | |
// 判断是否为 null | |
if(username){ | |
// 不为 null 则赋值给 username 里 | |
loginForm.username.value = username | |
} | |
// 绑定点击事件 | |
nth.addEventListener('click',e => { | |
// 阻止默认的点击事件执行 | |
e.preventDefault() | |
// 将获取到 username 中的 value 添加到 localStorage 中 | |
localStorage.setItem('username',loginForm.username.value) | |
// 执行提交事件 | |
loginForm.submit() | |
}) | |
</script> | |
</body> | |
</html> |
# localStorage 的注意事项
# localStorage 的存储期限
localStorage 是持久化的本地存储,除非手动清除 (比如通过 js 删除,或者清除浏览器缓存),否则数据是永远不会过期的。
sessionStorage
当会话结束 (比如关闭浏览器) 的时候,sessionStorage 中的数据会被清空
sessionStorage.setItem('username','zhangsan') | |
sessionStorage.getItem('username') | |
sessionStorage.removeItem('username') | |
sessionStorage.clear() |
# localStorage 键和值的类型
localStorage 存储的键和值 <font color=red> 只能是字符串类型 </font>.
不是字符串类型,也会先转化为字符串类型再存进去
# 不同域名下能否共用 localStorage
不同的域名是不能共用 localStorage 的
# localStorage 的兼容性
查询网站:https://caniuse.com/