json字符串、localStorage 本地存储、sessionstorage

json字符串

  • json字符串就是:json格式的字符串

“abc123truelkgsjhgo” 普通字符串

“< h1 >hgahgo< /h1 >” html格式字符串

键值对格式 键和值都需要用双引号去包括
‘“name”:“yasuo”’

json用途:

在网络传输时使用。 比如前后端交互。

不能够传输对象和数组的。

只能通过字符串形式去传输数据。

所以说我们如果要传输对象和数组,我们需要将其转换为字符串。

json格式就是满足对象和数组数据结构的一种字符串

json的使用方法:

JSON.parse()

把json格式的字符串转为js中的数组或对象

在这里插入图片描述

json.stringify()

把js中的数组或对象转为json字符串

在这里插入图片描述

<script>
//--------------------------------------------------------
        var str = [1, 2, 3, 4];
        var sss = JSON.stringify(str); //把数组转换成为字符串
        console.log(sss);
        console.log(typeof sss);
//--------------------------------------------------------
        var str = ["亚索", true, 3, 4];
        var sss = JSON.stringify(str); //把数组转换成为字符串
        console.log(sss);
        console.log(typeof sss);
//--------------------------------------------------------
        var str = ["亚索", true, 3, 4];
        var sss = JSON.stringify(str); //把数组转换成为字符串
        var ccc = JSON.parse(sss); //把json字符串格式的字符串转换成为数组
        console.log(ccc);
        console.log(typeof ccc);
//--------------------------------------------------------
        var str = [{
    
    
            name: "亚索",
            eag: 18,
            skill: "狂风绝息斩"
        }, {
    
    
            name: "孙悟空",
            eag: 1800,
            skill: "大招"
        }, {
    
    
            name: "赵云",
            eag: 18,
            skill: "不记得"
        }]
        var ssa = JSON.stringify(str); //把数组转为字符串
        console.log(ssa);
        console.log(typeof ssa);

//--------------------------------------------------------
        var str = [{
    
    
            name: "亚索",
            eag: 18,
            skill: "狂风绝息斩"
        }, {
    
    
            name: "孙悟空",
            eag: 1800,
            skill: "大招"
        }, {
    
    
            name: "赵云",
            eag: 18,
            skill: "不记得"
        }]
        var ssa = JSON.stringify(str); //把数组转为字符串
        var cxcc = JSON.parse(ssa); //把json字符串格式的字符串转换成为对象
        console.log(cxcc);
        console.log(typeof cxcc);
//--------------------------------------------------------

        var str = [
            '"name":"yasuo"',
            '"eag":"18"',
            '"skill":"狂风绝息斩"',

            '"name":"yasuo"',
            '"eag":"18"',
            '"skill":"狂风绝息斩"',

            {
    
    
                "name": "yasuo",
                "eag": "18",
                "skill": "狂风绝息斩"
            }
        ]
        var sss = JSON.stringify(str)
        var ccc = JSON.parse(sss);
        // console.log(sss);
        // console.log(typeof sss);
        console.log(ccc);
        console.log(typeof ccc);
    </script>

localStorage 本地存储

  • 储存本地的好处:

不会对服务器造成负担

提高访问速度

  • 局限性:

会占用本地内存

重要的信息不安全

三种本地储存方式:

localstorage h5新增的 IE8以下不兼容 5MB存储空间

sessionstorage 5MB存储空间

cookie 4KB存储空间

localStorage 优点:

容量比cookie要大

局限:

有兼容性问题

不会被爬虫获取

本质上是对字符串的读取操作,比较频繁,存储的内容比较多,会导致页面卡顿。

使用:

1.先考虑兼容性问题

if(!window.localStorage){

alert(“该浏览器不支持localstorage!”)

return false;

}else{

//业务逻辑

}

2.将数组存储到localstorage

三种写法:

storage[“name”] = “yasuo”;

storage.setItem(“name”,“sss”)

storage.age = 18;

3.读取

storage[“键”];

storage.getItem(“键”)

storage.键;

4.删除

storage.removeItem(“age”);

5.修改:

用同一个键去赋不同的值就是修改

6.清除全部

storage.clear();

7.获取所有的键值

for (var i = 0; i < storage.length; i++) {

var key = storage.key(i);

var value = storage.getItem(key);

}

【注意】 localstorage只能存储字符串,如果将对象或者数组放入,取出来时是string类的数据。

如果要存储对象或数组,则先将对象或者数组转为json的字符串,然后再存储,需要时,取出并将其转为对象或数组使用、。

存储事件:永久存储的

同源性:

不同的域名下存储的数据是不共通的

eg:

    <script>
        //判断浏览器是否支持
        if (!window.localStorage) {
    
    
            alert("该浏览器不支持localStorage");
        } else {
    
    
            //写入执行的业务逻辑
            var storage = window.localStorage;
            //将数据存储到本地的三种写法:
            storage["name"] = "yasuo"; //给storage赋值  第一种
            storage.setItem("age", "18");; //第二种
            storage.skill = "buzhidaoaa" //第三种
			//------------------------------------------------------
            storage.setItem("name", "zhaoyun"); //给storage的name值修改
            storage.setItem("age", "18");
            storage.setItem("skill", "buzhidao");
            //------------------------------------------------------

            //读取键值的三种方法:
            console.log(storage.getItem("name")) //读取storage的name值
            console.log(storage.age)
            console.log(storage["skill"])
            //------------------------------------------------------

            //删除
            storage.removeItem("name") //name的值在本地就会被删除掉
            //------------------------------------------------------

            // 修改  用同一个键去赋不同的值就是修改
            storage.setItem("name", "zhaoyun");
            //------------------------------------------------------

            // 清除全部
            storage.clear();
            //------------------------------------------------------

            // 获取所有的键值
            for (i = 0; i < storage.length; i++) {
    
    
                var sss = storage.key(i);
                var valer = storage.getItem(sss);
                console.log("sss=" + sss + ",valer=" + valer);
            }
        }
    </script>

sessionstorage

存储空间:5M
它与 localstorage 的用法基本一样

它们两个的共同点:

都是将数据存储在本地中

只能存储字符串

区别:

localstorage 永久存储的 除非手动删除

sessionstorage 会话缓存

会话结束时失效

1.代码控制结束

2.浏览器关闭/窗口关闭

猜你喜欢

转载自blog.csdn.net/weixin_53125457/article/details/112858279