1、 区别:伪元素产生新对象,在DOM树中看不到,但是可以操作;伪类不产生新的对象,仅是DOM中一个元素的不同状态;
伪类:
概念-大小-有效期-作用域-通信-应用场景
cookie:记住用户登录信息 4k 可设置失效时间 同源窗口共享 在浏览器和服务器之间来回传递 记住密码
sessionstorage:会话,浏览器关闭就清除 5M及以上 同一个浏览器窗口共享 仅在本地保存 敏感账号一次性登录
localstorage:本地存储 5M及以上 永久有效 所有同源窗口共享 仅在本地保存 长期保存
3、http状态码
1** 服务器收到请求,需要请求者继续执行操作
200
301资源(网页等)被永久转移到其它URL
302临时移动。
400客户端请求的语法错误,服务器无法理解
403 forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404 请求的资源(网页等)不存在
500 内部服务器错误
3、vue:自定义一个指令
// 注册一个全局自定义指令 `v-focus`
Vue.directive('focus', {
// 当被绑定的元素插入到 DOM 中时……
inserted: function (el) {
// 聚焦元素
el.focus()
}
})
如果想注册局部指令,组件中也接受一个 directives 的选项:
directives: {
focus: {
// 指令的定义
inserted: function (el) {
el.focus()
}
}
}
一个指令定义对象可以提供如下几个钩子函数:
inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
bind:只调用一次,指令第一次绑定到元素时调用
unbind
4、 Promise.race()
只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数