cookie
alert(typeof document.cookie); //string 查看是否有cookie
//向本地磁盘写入cookie
document.cookie='user=张三';
alert(document.cookie);
// PS: 本地不存在域名,所以域就为空
![](https://images2017.cnblogs.com/blog/1019711/201709/1019711-20170919115354181-1773648793.png)
------------------------------------------------------------------------------------------------
document.cookie='user='+encodeURIComponent('张三'); //user=%E5%BC%A0%E4%B8%89 编码 这个已经写入磁盘了,所以不要这句也可以获取
alert(decodeURIComponent(document.cookie)); //user=张三 解码
-----------------------------------------------------------------------------------------------------------------------------------------------------
alert(decodeURIComponent(document.cookie));
//如果不向磁盘写入cookie,我们还是可以获取cookie的
-----------------------------------------------------------------------------------------------------
//过期时间,就是到了这个时间点,就会自动清理cookie
//在会话结束时,就是关闭浏览器后就自动清理cookie了
//在火狐的浏览器关闭后,火狐的cookie被删除了,
//但不影响其他浏览器的cookie,因为每个浏览器都各自保存了自己的cookie,不通用一个cookie
//expires=date 失效时间,如果没有声明,则为浏览器关闭后即失效。声明了失效时间,那么时间到期后方能失效。
----------------------------------------------------------------------------------------------------
//完整形式
// document.cookie='user=值;[expires=失效时间;path=路径访问;domain=域名访问;secure=安全的https限制通信]'
// var date=new Date();
// date.setDate(date.getDate()+7); //27号
// document.cookie='user='+encodeURIComponent('张三')+';expires='+date;
//当过了这个时间点,那么cookie就被清理了
alert(decodeURIComponent(document.cookie));
----------------------------------------------------------------------------------------
清除cookie
var date=new Date();
date.setDate(date.getDate()-1);
//设置为当前时间的之前时间,即可手工清理cookie ,删除cookie方法,真正的删掉了
document.cookie='user='+encodeURIComponent('张三')+';expires='+date;
alert(decodeURIComponent(document.cookie));
---------------------------------------------------------------------------------------------------
清除cookie的另一种方法
document.cookie='user='+encodeURIComponent('张三')+';expires='+new Date(0);
alert(decodeURIComponent(document.cookie));
---------------------------------------------------------------------------------------------------
//path 路径限制,可以限制访问cookie的目录
var path='/D:/workspace/gengxin/javascript/demo/'
document.cookie='user='+encodeURIComponent('李四')+';path='+path;
alert(decodeURIComponent(document.cookie));
----------------------------------------------------------------------------------------------------
// domain 限制域名访问
// var domain='yc60.com'; //无效,域名不用设置
// document.cookie='user='+encodeURIComponent('李四1')+';domain='+domain;
// alert(decodeURIComponent(document.cookie));
// secure 指定必须通过https来通信访问
// 仅限加密链接,安全性更好
document.cookie='user='+encodeURIComponent('李四1');
alert(decodeURIComponent(document.cookie));
-----------------------------------------------------------------------------------------------------------------------
//设置cookie
function setCookie(name,value,expires,path,domain,secure){
var cookieName=encodeURIComponent(name)+'='+encodeURIComponent(value);
if(expires instanceof Date){
cookieName+=';expires='+expires;
}
if(path){
cookieName+=';path='+path;
}
if(domain){
cookieName+=';domain='+domain;
}
if(secure){
cookieName+=';secure';
}
document.cookie=cookieName;
}
function setCookieDate(day){ //传递一个天数,比如传递7,就7天后失效
var date=null;
if(typeof day == 'number' && day > 0){
date=new Date();
date.setDate(date.getDate()+day);
}else {
throw new Error('您传递的天数不合法!必须是数字切大于0');
}
return date;
}
// setCookie('user','张三',setCookieDate(7));
// setCookie('url','yc60.com',setCookieDate(7));
// setCookie('email','yc60.com@gmail.com',setCookieDate(7));
--------------------------------------------------------------------------------------
//获取cookie
function getCookie(name){
// return document.cookie;
var cookieName=encodeURIComponent(name)+'=';
// alert(cookieName);
var cookieStart=document.cookie.indexOf(cookieName)
// alert(cookieStart);
var cookieValue=null;
if(cookieStart>-1){ //有值
var cookieEnd=document.cookie.indexOf(';',cookieStart);
if(cookieEnd==-1){
cookieEnd=document.cookie.length;
}
// alert(cookieStart+cookieName.length);
cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd));
}
return cookieValue;
}
// alert(getCookie());
// user=%E5%BC%A0%E4%B8%89; url=yc60.com; email=yc60.com%40gmail.com
//cookieName 得到 user= 或者 url= 或者 email=
//cookieStart 得到 user= 或者其他的位置 user=位置是0 url=位置是25 email=位置是39 不存在就是-1
// cookieEnd 得到 user的结尾';'是23,url的结尾是37 email的结尾是-1,用document.cookie.length 65
// 0+(user=).length,cookieEnd 得到:%E5%BC%A0%E4%B8%89
alert(getCookie('email'));
![](https://images2017.cnblogs.com/blog/1019711/201709/1019711-20170920103438384-837222817.png)
// sessionStorage.setItem('name','Lee');
// sessionStorage.removeItem('name');
// alert(sessionStorage.getItem('name'));
// sessionStorage.bbb='Lee1';
// sessionStorage.removeItem('bbb');
// alert(sessionStorage.bbb);
// localStorage 和 sessionStorage 使用方法一样