一、cookie(浏览器临时存储数据的一种方式 ,浏览器对一个地址只读一次)
1.特性
1)一定要在服务器环境下
2)不安全,浏览器端application--》cookies可以查看并右键删除
2.存取注意的问题
1)存:document.cookie = "value";//浏览器端可以看到一个没有name值的value cookie的值,默认expires是session(关闭浏览器表示会话结束,cookie也就失效)
2)取:document.cookie ;// 得到一个字符串,如上例就是“value”
3)存有name的:document.cookie = "name = value";// 这时存的cookie就是name是name,value是value,expires是session,同上
4)存一个根目录下的:document.cookie = "name=value;path=/";//表示将cookie存在了这个域的根目录下,(根目录path是/),这样所有的该域下的文件都可以访问获取该cookie,cookie是子级可访问父级设置的cookie,父级不可以访问子级设置的,所以要设置到根目录/
5)存有时间限制的:
var date = new Date();
date.setDate(date.getDate()+10);
document.cookie = "name=value;path=/;expires="+date;
这时候获取到的就是一个name是name,value是value,path是/,expires是当前日期+10天后的时间
如果多个cookie例如:“name=value;age=12;sex=female”;可以用字符串的split方法拆分
3.还有几个相关注意事项
1)cookie的存储容量较小4k左右
2)document.cookie取出来的值是字符串
3)相同name值的cookie设置会覆盖之前的
4)知道什么时候设置,什么时候适合使用
4.封装三个常用的cookie存取删方法
1)存:function setCookie(name,value,iDay){
if(iDay){
var date = new Date();
date.setDate(date.getDate()+iDay);
document.cookie = name+"="+value+";path=/;expires="+iDay;
}else{
document.cookie = name+"="+value+";path=/";
}
}
2)取:function getCookie(name){
var arr = document.cookie.split("; ");
for(var i=0;i<arr.length;i++){
var arr2=arr[i].split("=");
if(arr2[0]===name){
return arr2[1];
}
}
}
3) 删:function removeCookie(name){
document.cookie = name+"="+"; path/";//name相同用空的覆盖原来的cookie
}
二、关于eval和function将字符串转换成可执行程序的方式
1.eval,字符串就直接写eval(str);
如果是json就是eval('('+json+')');
2.function
var str = "alert(1)";
var a = new Function('return '+str)();
console.log(a);//a就是返回的结果