H5新属性 cookie、localStorage和sessionStorage的区别

       web存储:让我们的浏览器像数据库一样,存储内容

一、cookie------存储账号密码

 1、说明:大小限制在5KB左右;可以设置cookie过期时间存储大小;有效期在有效期内数据可被访问,过了有效期数据消失;

 2、语法:document.cookie='usename=value;expires=GMTtime;path=/';

     参数一:存储账号值;参数二:expries 过期时间;参数三:path 路径

   PS:用户名不能是中文,需要转码

 3、设置、获取cookie:

        //1.设置cookie
        //  document.cookie='usename=value;expires=GMTtime;path=/';
        var name='xiaom小明';
        var pwd=123;
        var num=1;//男  2  女

        //中文转码
        name=encodeURIComponent(name);
        //console.log(name);//%E5%B0%8F%E6%98%8E
        
        //时间
        var time=new Date().getTime()+24*60*60*1000;//设置过期时间  毫秒 
        // console.log(time);
        var newTime=new Date(time);//newTime 得到过期时间 中国标准时间
        // console.log(newTime);
        time=newTime.toUTCString();//格林尼治的时间 toUTCString()  
        //转化时间格式 

        // document.cookie='username='+name+';expires='+time+';path=/'; 
        // document.cookie='pwd='+pwd+';expires='+time+';path=/'; 
        // document.cookie='sex='+num+';expires='+time+';path=/'; 

        //2.获取  document.cookie
        console.log(document.cookie);
        //username=xiaom%E5%B0%8F%E6%98%8E; pwd=123

 4、封装cookie:

       方式一:

      function getCookies(key){
            //字符串变成数据  ;分割
            var arr=document.cookie.split(';');
            // console.log(arr);//["username=xiaom%E5%B0%8F%E6%98%8E", " pwd=123"]
            var str='';
            for(var i=0;i<arr.length;i++){
               str=arr[i].trim().split('=');//i=0->["username", "xiaom%E5%B0%8F%E6%98%8E"] i=1->["pwd", "123"]
            //    console.log(str);
            //    console.log(str[0]);
                if(key==str[0]){
                    // return str[1];//对应的值 返回出去了
                    //输出的时候 解码
                    return decodeURIComponent(str[1]);
                }

            }
        }
        getCookies('username');
        console.log(getCookies('username'));
        console.log(getCookies('pwd'));

       方式二:

   function getCookies2(key){
        var arrCookie=document.cookie+';';
        // console.log(arrCookie);
        //1.获取当前key 所在的字符串里面首次出现的位置
        var key_index=arrCookie.indexOf(key);//
        // console.log(key_index);
        //2.获取key的长度 
        var key_len=key.length;
        // console.log(key_len);
        //3.获取value 开始的下标
        var key_start=key_index+key_len+1;
        // console.log(key_start);
        //4.结束  value结束的下标   获取;所在 下标之后的第一个;出现的
        var key_end=arrCookie.indexOf(';',key_index);
        // console.log(key_end);
        //5.截取字符串
        return decodeURIComponent(arrCookie.slice(key_start,key_end));
    }

    getCookies2('pwd');
    console.log( getCookies2('username'));
    console.log( getCookies2('sex'));

二、localStorage

 1、说明:本地存储、永久存储;只要不删除就一直存在;不需要网络;大小为5m;

 2、语法:   ①设置:localStorage.setItem(key,value);
                    ②读取:localStorage.getItem(key);
                    ③删除:localStorage.removeItem(key);
                    ④清空:localStorage.clear();

       eg:

      //对象
        var obj={
            "name":"张三",
            "age":18,
            "pwd":123
        }

        localStorage.setItem('uname','小明');
        localStorage.setItem('upwd','666');
        //复杂类型 
        localStorage.setItem('info',JSON.stringify(obj));

        //2.获取
        console.log(localStorage.getItem('uname'));
        console.log(localStorage.getItem('info'));//字符串 ---对象需要转化

        //3.删除 
        localStorage.removeItem('uname');

  PS:存储是字符串格式,存储复杂类型需要转为字符串

      JSON.stringify();-----转为字符串

      JSON.parse();--------转为对象

三、sessionStorage

  1、说明:会话存储;大小为5m;不需要网络;浏览器打开期间有效,浏览器关闭自动清除;

  2、语法:  ①sessionStorage.setItem(key,value);
                    ②sessionStorage.getItem(key);
                    ③sessionStorage.removeItem(key);
                    ④sessionStorage.clear();

       eg:

        //1.设置
        sessionStorage.setItem('zhanghao','www.haha.com');
        sessionStorage.setItem('password','123456');
        //2.获取

        //3.删除
        sessionStorage.removeItem('zhanghao');
        //4.清空
        sessionStorage.clear();

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值