个人面试总结

202 阅读5分钟

本文记录一下自己近期面试被提及的面试题(笔试+面试)(题目不分顺序)

第一家

一家面向政务业务的公司,做自己的OA系统,基于webpack做了自己的cli

笔试阶段

1. 说说web安全和防护方法

真不会,空着没写

2. 什么情况会导致内存泄漏

待整理补充

3. 手写一种js数组的方式

待整理补充

4. 怎么删除cookie

待整理补充

5. js怎么实现继承

待整理补充

6. route 和 router 的区别

route译为当前活跃状态的路由,this.route 译为 当前活跃状态的路由, this.route可以获取当前活跃状态路由的信息

router译为当前整个路由实例,this.router 译为 当前整个路由实例,this.router.push() 可以实现路由跳转

7. vue单页面的优点

待整理补充

面试阶段 (看样子应该是个项目经理+技术总监面试)

vue部分

1. vue的生命周期

 - 这块说说vue2和vue3的生命周期的改变比较加分

待完整补充

2. 一个对象增加属性但是视图没有响应式怎么办

  1. vue.$set() 方法
  1. Obeject.assign() 注意:这块是增加属性,如果是完全增加一个对象需要用 vue.observable

3. 想在mounted()中获取到最新的DOM怎么办

这块就是考验nextTick()知识原理:nextTick译为下次DOM更新循环之后的延迟函数为什么这么做:因为vue更新DOM是异步的,当数据发生改变时,会开启一个异步更新队列,只有所有数据更新完成后才会去更新DOM,所有可以在this.nextTick()知识 原理:nextTick译为 下次DOM更新循环之后的延迟函数 为什么这么做:因为vue更新DOM是异步的,当数据发生改变时,会开启一个异步更新队列,只有所有数据更新 完成后才会去更新DOM,所有可以在this.nextTick()获取最新的DOM

4. 说说vue-router的几种方式

hash 哈希模式 => 实际就是通过url中的触发hashchange事件

history 历史记录模式 => HTML5为History对象添加了两个新方法,pushStatereplaceState方法,用来在浏览历史中添加和修改记录。 history和hash的差异 - history和hash都是利用浏览器的两种特性实现前端路由,history是利用浏览历史记录栈的API实现,hash是监听location对象hash值变化触发hashchange事件来实现 - history的url没有’#'号,hash反之 - history修改的url可以是同域的任意url,hash是同文档的url - 相同的url,history会触发添加到浏览器历史记录栈中,hash不会触发。 - history模式往往需要后端支持,如果后端nginx没有覆盖路由地址,就会返回404,hash因为是同文档的url,即使后端没有覆盖路由地址,也不会返回404

5. 说说vue组件通信

这块说的有点乱,大致说下

父子组件 1.props emit>2.ref/emit > 2.ref/refs > 3. children/children/parent > 4.EventBus > 5.Proinct/inject(依赖注入)

兄弟组件 1.EventBus > 2.Proinct/inject(依赖注入)

祖孙组件

非兄弟组件

6. keep-alive了解过吗

- 说说他是叫什么,怎么用,两个生命周期,怎么配置

vue的内置组件,被包裹的动态组件会保留状态。

对应两个钩⼦函数 activated 和 deactivated ,当组件被激活时,触发钩⼦函数 activated,当组件被移除时,触发钩⼦函数 deactivated

提供 include 和 exclude 属性,两者都⽀持字符串或正则表达式

运用场景:用户在某个列表页面选择筛选条件过滤出一份数据列表,由列表页面进入数据详情页面,再返回该列表页面,我们希望:列表页面可以保留用户的筛选(或选中)状态。

7. 说说Vuex里面的属性,分别是什么意思?

state 数据源

getter 计算属性

mutations 同步任务

actions 异步任务

modules 模块化

8. actions是怎么处理异步的?是怎么调用的?还有其他方法吗

- ays awiat 处理

待完整补充

9. 多个异步请求怎么处理

- 只说了用promise.all([arr1,arr2]),后续会补充完整

待完整补充

10.key是作用是什么

- 此块说明key的作用扩展了diff算法(vue2),说到后面自己有点乱。。。

待完整补充

11.路由导航守卫有哪些

> 没说好,单词也说错了

待完整补充

12. 怎么用input封装自己的组件(原生)

> 这块我理解为v-model 的原生写法,所有数量:value @input这个

待完整补充

13.v-if和v-show的区别

> 

待完整补充

14.说说都有哪些指令

> 

待完整补充

15.template可以放v-if吗?原因呢

> 这块答错了,应该是可以放的。这里还扩展了v-if和v-for为啥不能放在同一个标签

待完整补充

js部分

1. input设置什么可以让高度自适应

待完整补充

2. call, apply, bind的区别

待完整补充

3. 针对大屏2k,4k,8k的适配怎么弄

 没做过

待完整补充

  • 总结:感觉面的还行,差不多回答上了百分八十左右,后面跟老板聊了会,挺好的一个人。

第二家

居然遇到了跟现在做一样业务的公司,真怕他们相互认识,也是要做OA系统

笔试

1.一些选择题,vue,js都有(this指向的多)

待完整补充

2.css3的移动动画

待完整补充

3.vue组件通信,在子组件定义方法修改父组件数据

待完整补充

4.多维数据结构+去重 (代码写好了,找错修改)

待完整补充

5.判断打印的值

待完整补充

6.一道this调用的题

待完整补充

面试

1.vue的生命周期 (第一家有)

> 

待完整补充

2.路由导航守卫说说哪些(第一家有)

> 

待完整补充

  • 总结:后面就一直再说vue的使用时间也不长,问了原生js和vue分别用了多久,上家公司叫啥,能不能自己独立开发,不需要别人带.....啦啦啦啦.....问了很多其他情况.... 我都想马上跑

第三家

一家电商项目的公司,主做自己的Sass系统,就围绕这个新增需求和维护

笔试 (终于没有笔试了!(╥╯^╰╥))

面试 (一个中年人,技术总监吧应该是)

1.vue的生命周期(同上)

> 

待完整补充

2.vue的双向绑定

> 这块说下了原理,又说了响应式的原理

待完整补充

3.布局的垂直水平居中的方式

- 说了几种常用的

待完整补充

4.说说HTTP

- 没答出来

待完整补充

5.说说设计模式

- 说了MVVM和MVC分别是什么

待完整补充

6.SSR有了解过吗

- 没答出来

待完整补充

7.图片懒加载怎么写

- 没答出来

待完整补充

8.SPA和SSR是什么

待完整补充

9.响应式设计是什么

答的是boosStrap,然后扯开了话题,说了多端兼容适配的问题

待完整补充

10.画了个界面,要说出自己的编写思路

严重怀疑是自己遇到问题,来白嫖别人的思路

待完整补充