JS 本地存储 localStorage 操作总结
现在前端做数据存储,跨页面传值,localStorage是一个很好的方式,以键值对的方式存储,也方便取值赋值,下面说一说使用方法和一些常见的使用技巧。
1.存值共有3种方式,localStorage相当于window对象下面的一个属性,所以有[]和.调用,但也具有自身的setItem方法
// 自身方法
localStorage.setItem("name","bonly");
// []方法
localStorage["name"]="bonly";
// .方法
localStorage.name="bonly";
复制代码
2.取值也是如此,自身的方法是getItem
// 自身方法
localStorage.getItem("name");
// []方法
localStorage["name"];
// .方法
localStorage.name;
复制代码
3.改变的方式,就是相当于给对应的key重新赋值,就会把原来的值覆盖掉
// 自身方法
localStorage.setItem("name","TOM");
// []方法
localStorage["name"]="TOM";
// .方法
localStorage.name="TOM";
复制代码
4.移除某一个值,可以通过对象删除属性的关键字delete也可以用自身的方法removeItem
// 自身方法
localStorage.removeItem("name");
// []方法
delete localStorage["name"];
// .方法
delete localStorage.name
复制代码
5.获取所有的key
// 通过自身的key
for (var i=0;i<localStorage.length;i++) {
console.log(localStorage.key(i));
}
// 通过for in 循环获取
for(var key in localStorage){
console.log(key);
}
复制代码
6.获取所有的值
localStorage.valueOf();//取出所有的值
复制代码
7.清除所有的值
localStorage.clear()
复制代码
8.判断是否具有某个key,hasOwnProperty方法
localStorage.hasOwnProperty("name")
// 如果存在的话返回true,不存在返回false
复制代码
9.注意事项
1.localStorage特定于页面的协议,不是同一域名,不能访问。 2.有长度限制,5M左右,不同浏览器大小会有不同。 3.生命周期是永久的,但是数据实际是存在浏览器的文件夹下,可能卸载浏览器就会删除。 4.浏览器可以设置是否可以访问数据,如果设置不允许会访问失败。 5.兼容IE8以上浏览器 6.只能存储字符串类型,需要转成字符串存储。
10.使用技巧
1.先判断浏览器是否支持localStorage,通过if(!window.localStorage) return; 2.单词太长,不方便书写,可以利用 var storage=window.localStorage; 3.字符串和原始类型需要通过JSON.stringfy转字符串,通过JSON.parse转成对象 4.通过封装方法实现来回转化
PS. 获取localStorage最大存储大小的方法
(function() {
if(!window.localStorage) {
console.log('当前浏览器不支持localStorage!')
}
var test = '0123456789';
var add = function(num) {
num += num;
if(num.length == 10240) {
test = num;
return;
}
add(num);
}
add(test);
var sum = test;
var show = setInterval(function(){
sum += test;
try {
window.localStorage.removeItem('test');
window.localStorage.setItem('test', sum);
console.log(sum.length / 1024 + 'KB');
} catch(e) {
alert(sum.length / 1024 + 'KB超出最大限制');
clearInterval(show);
}
}, 0.1)
})()
JS 本地存储 localStorage 操作总结的更多相关文章
- HTML5本地存储 localStorage操作使用详解
1.html5几种存储形式 本地存储(localStorage && sessionStorage) 离线缓存(application cache) indexedDB 和 webSQ ...
- js 本地存储 localStorage 之 angular
今天项目中用到 php yii框架 用的不是 angular路由 所以用rootScope传值是不行的 我就用到了 localStorage 本地持久化存储 如下 set 顾名思义是设置 值 loca ...
- 本地存储localStorage以及它的封装接口store.js的使用
本地存储localStorage以及它的封装接口store.js的使用 sublime-text chrome javascript readyGo 2016年11月20日发布 0 推荐 9 收藏 ...
- 本地存储localStorage sessionStorage 以及 session 和cookie的对比和使用
cookie和session都是用来跟踪浏览器用户身份的会话方式. 1.验证当前服务中继续请求数据时,哪些缓存数据会随着发往服务器? 只有cookie中设置的缓存数据会发送到服务器端 2. 强调几点: ...
- 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题
移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...
- html5的本地存储localStorage和sessionStorage
html5的本地存储localStorage和sessionStorage html5中新增的比较重要的一个功能就是web storage来实现客户端本地存储数据,之前存储数据都是用cookie来实现 ...
- 本地存储 localStorage
本地存储localStorage 概念:window对象下面的属性,html5新增的,将5M大小的数据存储本地的浏览器上面. 浏览器支持存储5M大小 本地存储localStorage特点 本地存储属于 ...
- HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localSt ...
- HTML5 JS API 本地存储LocalStorage基本操作
LocalStorage:使用方法与SessionStorage如出一辙,如下代码所示:此对象主要有两个方法:保存数据:localStorage.setItem(Key, value);读取数据:lo ...
- js本地存储解决方案(localStorage与userData)
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的user ...
随机推荐
- 为什么大部分的 PHP 程序员转不了 Go 语言?
大家好,我是码农先森. 树挪死,人挪活,这个需求我做不了,换个人吧.大家都有过这种经历吧,放在编程语言身上就是 PHP 不行了,赶紧转 Go 语言吧.那转 Go 语言就真的行了?那可不见得,我个人认为 ...
- 面试官:JDK中都用了哪些设计模式?
设计模式是前辈们经过实践验证总结的解决方案,帮助我们构建出更具可维护性.可扩展性和可读性的代码.当然,在面试的过程中,也会或多或少的被问到.那么今天,我们就来看一道设计模式中的常见面试问题:JDK 中 ...
- 使用SiliconCloud快速体验SimpleRAG(手把手教程)
SiliconCloud介绍 SiliconCloud 基于优秀的开源基础模型,提供高性价比的 GenAI 服务. 不同于多数大模型云服务平台只提供自家大模型 API,SiliconCloud上架了包 ...
- **错误积累&&防止GG写法总结
19.3.20 关于int与ll 1.如果一道题时间充足,把全部变量定义成long long 2.特别注意最上面宏定义的变量类型,特别是FOR 3.如果是int,用1LL* ...... **实例,让 ...
- zabbix网络拓扑图介绍
"zabbix network map"可以简单的理解为动态网络拓扑图,可以针对业务来配置zabbix map,通过map可以了解应用的整体状况:服务器是否异常.网络是否有故障.应 ...
- freertos总结
freertos学习总结:(别人的)https://blog.csdn.net/qq_39397153/article/details/123997346 freertos学习笔记:(别人的)http ...
- 二. Spring Boot 中的 “依赖管理和自动配置” 详解透彻到底(附+详细代码流程)
二. Spring Boot 中的 "依赖管理和自动配置" 详解透彻到底(附+详细代码流程) @ 目录 二. Spring Boot 中的 "依赖管理和自动配置" ...
- CM3和ARM7的差异
此文章由文心一言生成,引用请标注作者:文心一言CM3通常指的是Cortex-M3,它是ARM公司设计的一种基于ARMv7-M架构的32位处理器内核,主要用于嵌入式系统.而ARM7则是ARM公司早期设计 ...
- 005.MinIO-DirectPV分布式多租户存储部署
MinIO部署准备 部署概述 本实验结合Kubernetes进行MinIO部署,实现MinIO于Kubernetes的融合. minio官方支持通过简单的快速部署,以便于进行基础测试: curl ht ...
- webpack高版本抽离css样式报错[已解决]
全局安装的webpack版本是5.51.1,webpack-cli是4.9的版本; 本来想用 extract-text-webpack-plugin 的,但是报错了,查了一下文档 发现,已经不支持新版 ...