也是一个失败面试记录,这一次的自我介绍我觉得进步了,啊~对了,介绍一下公司:是做关于汽车行业方面的管理系统(pc端(业务管理,官网),h5,小程序(比较少)),公司规模不大,今年扩人快(可是我还是被pass了,哭唧唧),好了,言归正传!这次面试题很少,因为主要用到vue框架,所以基本问的都是vue(给了我一个提醒:还是主攻vue好了,不要太贪心)
闭包是什么?
① 简单来说就是函数A嵌套函数B,函数B使用函数A变量,那么函数B就是闭包。
② 特性:内部函数可以引用外层的参数和变量;
参数和变量不会被垃圾回收机制回收;避免污染全局变量的污染但也容易造成内存泄漏。
③ 用处:读取到函数内部的变量,而且让这些变量一直保存在内存里;
封装对象的私有属性和私有方法;
④ 使用注意点:
不能滥用(因为变量一直在内存中,消耗大),不然容易造成性能,内存泄漏问题;在退出函数时顺便把不使用的变量删除。
Vue的Template编译原理
详情步骤:(整体逻辑分为三部分)
①解析器(parse) 将模板字符串转换为element ASTs
②优化器(optimize) 对AST进行静态节点标记,主要用来做虚拟DOM的渲染优化
③代码生成器(generate) 使用element ASTs生成render函数,render的返回值是VNode,VNode是Vue的虚拟DOM节点,里面有(标签名、子节点、文本等等)
总结:通过解析器把template解析成AST,然后优化器对解析出来的AST进行标记,最后generate把优化了的AST转化为可执行的代码。
注释:AST-抽象语法树
vue router有哪些钩子函数?
1、全局前置守卫: router.beforeEach(to,from ,next)
应用场景:可进行一些页面跳转前处理,例如判断需要登录的页面进行拦截,做登录跳,管理员权限判断、浏览器判断。
2、全局解析守卫: router.beforeResolve
3、全局后置钩子: router.afterEach
4、路由独享的守卫: beforeEnter
5、组件内的守卫: beforeRouteEnter、beforeRouteUpdate (2.2 新增)、beforeRouteLeave
具体使用
浏览器兼容问题?(基础常问)
vuex作用?
1.vuex是什么(作用):
vue数据状态管理,相当于一个仓库,任何组件都可以存取里面的数据。
2.有什么?
五个属性:state(数据储存),getters(过滤器),mutations(可以改变state数据),actions(异步请求),modules(模块管理)
3.使用下面这两种方法存储数据:
dispatch:异步操作,写法: this.$ store.dispatch(‘mutations方法名’,值)
commit:同步操作,写法:this.$store.commit(‘mutations方法名’,值)
4.辅助函数
mapState、mapGetters、mapActions、mapMutations