1
种植 cookie cookie 是前端用来保存某些数据用的,前后端都能操作。一般用来存储用户信息(一般在5K左右) H5新增的两个前端存储数据的API 大小在5M左右,这两个API只能由前端操作 localStorage: getItem(属性名) 获得 setItem(属性名,属性值) 种植 removeItem(属性名) 删除 clear() 全部删除 sessionStorage
localStorage和sessionStorage的唯一区别就是loaclStorage不会自定清除,sessionStorage 会在页面关闭时清空
getCookie(属性名) 对应的属性值 setCookie(属性名,属性值,过期日期) removweCookie(属性名) 把日期设置成过期的日子 或者 -1 也可以
cookie 1.前后端都能设置 2.大小只有5k左右 3.设置cookie只能自己编写方法 4.cookie有过期时间 5.cookie会随着请求发送给后台 localStorage 1.只能由前端设置 2.大小在5m左右 3.有现成的方法 4.后端无法操作该属性 5.没有过期日期 sessionStorage 页面关闭会直接清除
埋点软件 : 神策
获取
function getCookie(key){
let str = document.cookie
str += '; ' //补空,让最有一个能满足正则
let reg = new RegExp(`\\b${key}=([^; ]*); `)
return str.match(reg) ? str.match(reg)[1] : null
}
植入
function setCookie(key,value,data){
if(data){
document.cookie = `${key}=${value};expires=${new Date(data)}`
}else{
document.cookie = `${key}=${value}`
}
}
移除
function removeCookie(key,domain){
if(domain){
document.cookie = `${key}=null;domain=${domain};expires=${new Date(-1)}`
}else{
document.cookie = `${key} = null;expires=${new Date(-1)}`
}
}
编译
前端的编码 encodeURI(编码) decodeURI(解码) encodeURIComponent 比 encodeURI 多转译了一些特殊字符 escape(编码) unescape(解码)
ajax
readyState 请求状态 - 0 unset 为发送 - 1 opened 已执行过open函数 - 2 headers-received 已经接受响应头 - 3 loading 正在加载响应体 - 4 done 请求完成 0 - 1 是由JS控制的 2 - 4 都是由http控制的
timeout=1000 最长请求时间,超过这个时间之后自动结束(时间自定,时间为毫秒) error 请求失败的时候触发 ; 跨域也会触发 abort 主动打断请求的时候 会触发 send 发送请求
####post--get 区别: - get 有可能走缓存 post不存在缓存 - get的参数是拼接在url后边的; post是放在了请求体中 - get的参数是有大小限制的,是由于浏览器对于url的限制导致的 - get的传参方式不安全; post 相对比较安全 get传参,在接口后边补写 search get传参,也称为query传参。把要给后台的参数拼接成对应的search字符串,放到接口后边 get 请求怎么避免走缓存? 每次拼接一个不相同的字符
怎样转换成 form Data 格式? 首先把要传的对象转成search字符串,然后再去更改请求头的content-type属性
promise用法
三种状态: pending(等待中) resolved(成功) rejected(失败) pending 代表当前的promise还是处在 等待状态 resolved 代表当前走了成功的回调 rejected 代表当前走了失败的回调 状态一旦修改,就不会再发生任何改变
new Promise(function(res,rej){
res(123)
}).then((data)=>{
console.log(data)
},(error)=>{
console.log(error)
}).catch((err)=>{
console.log(err)
}).finally(()=>{
console.log('不管成功失败,都要执行')
})