一. js的事件流是什么?都有什么阶段?
1.1 JavaScript的事件流是什么
事件流,说的简单点就是描述页面中接收事件的顺序当我们用户在触发一个标签的事件(例如鼠标点击,鼠标移动)时,浏览器就会一些响应比如,我们为一个按钮的点击事件绑定了一个函数,则当我们点击该按钮时浏览器就会去寻找该按钮然后执行该按钮的点击事件。
1.2.JavaScript 事件流的三个阶段
1.事件捕获阶段
- 该阶段是浏览器在寻找被触发事件的元素对象
- 在这个阶段,是不会触发事件函数
2. 处于目标阶段
- 该阶段是浏览器找到了被触发事件的元素对象
- 在这个阶段,是会触发事件函数
3. 事件冒泡阶段
- 该阶段是浏览器从被触发事件的元素对象向上冒泡,直至到达document对象
- 在这个阶段,一般是会触发所经过的元素的相同类型的事件函数
二. 事件的委派
- 利用事件冒泡的原理.自己所触发的事件,让他的父元素代替
三.js的原型链
一个对象A调用某个方法的时候,会先从自身找有没有这个方法,如果没有,就找自己的原型对象,看看有没有改方法,如果还没有,就找对象A的父类B的原型,找没有这个方法,如果还没有,接着往上级找,如果最后还没有找到.那么就会报错.这就称为原型链.(中途任何一级找到直接调用)
四. html5的储存方式有哪些?区别是什么
分别是 cookie , sessionStorage , localStorage
- cookie: 一条数据大小不能超过4KB ,最多不能储存超过20条,如果不设置过期时间,那么当浏览器关闭时消失
- sessionStorage: 会话储存,一条数据大小不能超过5MB,最多不能存储超过20条,当关闭页面时,数据消失
- localStorage: 本地储存,一条数据大小不能超过5MB,最多不能存储超过20条,不主动删除,将会一直保留.
五.Vue项目当中怎么解决跨域问题?
-
使用jsonp(项目基本不用)
原理:动态生成script标签,回调函数
缺点: 不支持POST请求,支持get请求 - 反向代理: 在config当中配置proxyTable属性,如果脚手架版本在3.0以上,则需要创建一个vue.config.js的文件进行配置.
module.exports = {
lintOnSave: false,
devServer: {
// 设置代理
proxy: {
"/api": {
target: "http://127.0.0.1:8888/api/private/v1", // 域名
ws: true, // 是否启用websockets
changOrigin: true,
//开启代理:在本地会创建一个虚假服务器,然后发送请求的数据,并同时接收请求的数据,
// 这样服务端和服务端进行数据的交互就不会有跨域问题
pathRewrite: { // 路径重写:将 /api 替换为 /
"^/api": "/"
}
}
}
}
}
- CORS跨域资源共享,服务器端进行配置,( 后端开发人员设置 )加一个响应头(工作中常用)