localStorage用法小总结

作者: 潺公子 | 来源:发表于2016-04-20 14:35 被阅读43039次

    记得前端大神winter说过:要建立起自己的知识体系,第一步:寻找线索(找准确、全面的);第二步,建立联系;第三步,是分类(用思维导图),第四步,是追本溯源(找到最初的那个它~)

    今天,怀着崇拜大神的心情,来学习下 localStorage的基本用法。用到的学习机是chrome浏览器,毕竟大厂权威性还是可以的。

    我首先在开发者工具的Console中,输入了

    localStorage.
    

    然后就弹出了一些列宿主(浏览器)提供的localStorage自带的方法,摘录了一些常用的API如下表所示:

    名称 作用
    clear 清空localStorage上存储的数据
    getItem 读取数据
    hasOwnProperty 检查localStorage上是否保存了变量x,需要传入x
    key 读取第i个数据的名字或称为键值(从0开始计数)
    length localStorage存储变量的个数
    propertyIsEnumerable 用来检测属性是否属于某个对象的
    removeItem 删除某个具体变量
    setItem 存储数据
    toLocaleString 将(数组)转为本地字符串
    valueOf 获取所有存储的数据

    清空localStorage

    localStorage.clear()    // undefined    
    localStorage            // Storage {length: 0}
    

    存储数据

    localStorage.setItem("name","caibin") //存储名字为name值为caibin的变量
    localStorage.name = "caibin"; // 等价于上面的命令
    localStorage // Storage {name: "caibin", length: 1}
    

    读取数据

    localStorage.getItem("name") //caibin,读取保存在localStorage对象里名为name的变量的值
    localStorage.name // "caibin"
    localStorage.valueOf() //读取存储在localStorage上的所有数据
    localStorage.key(0) // 读取第一条数据的变量名(键值)
    //遍历并输出localStorage里存储的名字和值
    for(var i=0; i<localStorage.length;i++){
        console.log('localStorage里存储的第'+i+'条数据的名字为:'+localStorage.key(i)+',值为:'+localStorage.getItem(localStorage.key(i)));
    }
    

    删除某个变量

    localStorage.removeItem("name"); //undefined
    localStorage // Storage {length: 0} 可以看到之前保存的name变量已经从localStorage里删除了
    

    检查localStorage里是否保存某个变量

    // 这些数据都是测试的,是在我当下环境里的,只是demo哦~
    localStorage.hasOwnProperty('name') // true
    localStorage.hasOwnProperty('sex')  // false
    

    将数组转为本地字符串

    var arr = ['aa','bb','cc']; // ["aa","bb","cc"]
    localStorage.arr = arr //["aa","bb","cc"]
    localStorage.arr.toLocaleString(); // "aa,bb,cc"
    

    将JSON存储到localStorage里

    var students = {
        xiaomin: {
            name: "xiaoming",
            grade: 1
        },
        teemo: {
            name: "teemo",
            grade: 3
        }
    }
    
    students = JSON.stringify(students);  //将JSON转为字符串存到变量里
    console.log(students);
    localStorage.setItem("students",students);//将变量存到localStorage里
    
    var newStudents = localStorage.getItem("students");
    newStudents = JSON.parse(students); //转为JSON
    console.log(newStudents); // 打印出原先对象
    

    说一下这个纠结的东西:简单说是跨js传递json值,通过localStorage中转,有种压缩和解压缩的味道在。其实应该有个公共的变量.js放在最前面,会不会更好呢。我好像是在这样一个场景下用到的:后台传递json格式的经纬度给前台,前台让它在地图上渲染出来,而且是两个不同的js文件传递,然后就使用了这个方法。不过现在想想应该有其它更好的解决方法吧。

    相关文章

      网友评论

      • LeeYaMaster:作者你好,我觉得你写的不错,我学到了很多,现在我也在写简书,我能借一下你的表格吗?
      • 海_af41:gao 小猪猪
      • 亡之遗迹:router传值
      • 5675a3d02077:您好 , 我用vue 做的APP 点击商品的时候调到详情页 再点击立即购买的时候希望添加到购物车 其实我已经实现了 但是因为是刷新跳页 没有用localstorage 所以返回到购物车查看的时候 是空的 但是数据确实已经打印出来了 这该怎么写呢
      • 614806aae8d1:网址传参

      本文标题:localStorage用法小总结

      本文链接:https://www.haomeiwen.com/subject/uwwzlttx.html