外派百度:
1.说说对事件委托的理解?
- 事件委托及事件代理,利用事件冒泡的原理将事件绑定在父元素或者是祖先元素上,通过触发父元素或祖先元素,将事件层层传递下去。方法:addEventListener(指定事件名(如click),事件触发执行的函数(function),Boolean(默认false-事件冒泡,true-事件捕获))
2.promise与async,await的区别?
- promise是解决异步编程的解决方案,async与await是基于promise实现的。
3.promise与setTimeout的执行顺序?
- 同步先行,异步靠边,回调垫底。
- setTimeout是回调函数。只能是垫底,所以是promise先执行,最后是setTimeout在执行。
- 然后了解下promise是解决异步编程的一种方案,它是异步操作,但是需要注意的是.catch(),.then()里面的代码是同步执行的。
4.forEach与for in 的区别?
- for in 一般是遍历对象的,也可以遍历数组。
- forEach一般是遍历数组的,没有返回值
5.浏览器输入url,之后页面发生了什么?
- 浏览器查看本地缓存信息新鲜度,足够新鲜会直接返回浏览器,否则的话就会发起HTTP请求
- 浏览器解析url,获取协议,端口,主机,path
- 浏览器组装一个请求报文
- 发起TCP三次握手,关闭TCP四次挥手
- 服务端返回资源
- 浏览器解析HTML,建立dom,下载资源,构建css,解析js
- 浏览器渲染页面展示给用户
6. 什么是闭包?为什么用闭包?闭包的使用?
- 闭包就是有权访问另外函数作用域下的变量的函数,当这个函数被外部调用的话,就会形成闭包
- 闭包突破作用域链,可以访问其他作用域下的变量
- vue里面的计算属性 computed就是闭包
7.vue里面的watch与computed区别?
- watch单一的数据监听,方法名与要监听的名字一样,可以得到数据的修改前后的值,不需要返回值
- computed是计算属性,会将值进行缓存,内部的值一直没有发生变化的话就一直是缓存的值
8.vue里面的mixins怎么用?
- mixins用[]包裹,里面的变量是引入js创建的文件
- js对应的里面组件里面都有,生命周期,methods事件
- mixins不同与组件,父组件引入子组件,相当与给子组件留出一块地方,两个是独立的组件;mixins的引入相当与父组件合并一些方法,扩展了些方法,相当于一体的
- methods里面键值名起一样的话,会取组件对象的键值对
9.vuex的理解?详细说下vuex?
- vuex是数据状态管理
- vue里面的state存放默认数据变量,通过mutations里面的方法是改变state的操作,不可以直接修改state里面的值,官方意思是不能客观看出state值的变化,不可以跟踪
- 所以需要用到actions里面的commit触发muttions里面的操作
- mapState 用法:computed计算属性里面用到,快捷的访问vuex里面的state
- getter可以理解为store里面state的计算属性,依赖值发生改变的话会被重新计算
- mapGetters 用法:computed计算属性里面遇到,将store里面的getter映射到组件的计算属性里面
- actions是提交mutations里面的操作,可以进行异步操作