文章目录
cookie
cookie里面的数据存储以键值对的形式存储 key:value
完整格式 name=value ;[expires=date];[path=路径];[domain=域名];[secure]带[]都是可以省略的
name=value 对应的存值
expires 日期(过期时间)
path 路径
domain 域名
secure 安全性设置
存值 需要传递key和value
直接这样设置默认的过期时间为你浏览器关闭(会话结束)以后
document.cookie = `键:值`
我们也可以使用浏览器自带的清除浏览器记录的功能强行清除cookie
document.cookie 可以获取 也可以设置 获取string类型 设置是添加一个新的cookie
取值 就只需要key(通过键去拿值)
encodeURIComponent() 对数据进行编码 ascii码 针对于这两个方法低版本浏览器不支持中文
decodeURIComponent() 对数据进行解码
var str = encodeURIComponent('刘德华')
console.log(decodeURIComponent(str))
删除 设置expires属性(设置过期时间)时间如果已经过去就不会过期了 到达对应的时间 自动失效
这是国际事件要-8小时才是中国时间
document.cookie = 'name=jack;expires='+new Date(2022/3/30 15:05:00)
封装
// 封装cookie对应的方法 常用的对应的key和value expires过期时间 path
//set的方法
function setCookie(key,value,date,path){
if(date instanceof Date){// instanceof是否俩个属于同一个类型
document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};expires=${date};path=${path}`
}else{
document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};expires=${new Date()};path=${path}`
}
}
//get的方法 获取对应key的cookie值
//username=zhangsan;age=lisi
function getCookie(key){
var key = encodeURIComponent(key)
var cookies = document.cookie.split(';')
for(var i in cookies){
//取出对应的键的下标
var index = cookies[i].indexOf('=')
if(cookies[i].indexOf(key)!=-1){
var value = cookies[i].substr(index+1)
return decodeURIComponent(value)
}
}
return ''
}
//remove 间隔几天以后过期
function removeCookie(key,day){
var date = new Date()
date.setDate(date.getDate+day)
document.cookie = encodeURIComponent(key)+'=;expires='+date
}
// function removeCookie(name) {
// document.cookie=encodeURIComponent(name)+"=; expires=" + new Date();
// }
json格式
<!-- json是一种结构化的数据格式 他常用于数据传输及相关数据处理
现阶段才有的数据传输方式通常都是json格式 (之前xml传输)所有的语言都具备
-->
<!-- json格式的数据写法 []数组 {}对象 -->
<script>
// 其实就是一个数组对象 里面的键通常为string类型(建议使用双引号)
//里面以键值对形式存储 键为string类型 值任意类型(string类型数据使用双引号)
var json = [{
"name":"李四",
"age":18
},{
"name":"王五",
"age":18
}]
console.log(json[1].name); //获取王五
var json1 = {
"arr": ["a","b"]
}
console.log(json1.arr[1]); //获取b
// 第一个方法 eval() 解析对应的json格式字符串为对象
var str = `[{
"name":"李四",
"age":18
},{
"name":"王五",
"age":18
}]` //str是json格式字符串
// console.log(str[0].name); //无法获取李四
// 我们想要从str中获取李四 先转为对象
var obj = eval(str) //eval可以将json格式的字符串转为对应的对象 eval会造成安全问题(不推荐的写法)
console.log(obj[0].name);
//使用JSON对象的静态方法 JSON.parse() 里面传入对应的json格式字符串 可以将其转为对象(常用的)
var obj1 = JSON.parse(str)
console.log(obj1[0].name); //可以获取李四
//对应的将对象转为json格式字符串 JSON.stringify() 里面传入对象 将其转为json格式字符串
var jsonStr = JSON.stringify(obj1)
console.log(typeof jsonStr);
console.log(obj1.toString()); //toString格式化的对象无法识别
console.log(jsonStr);