前言
金三银四又是找工作的高峰期了,由于一直在广州某公司做前端,大概两年时间了,一直对于自己本身的定位不是很明确。由于家里的特殊原因,要从广州回到老家成都发展。最近半年在工作之余开始准备面试,终于在4月15号正式离职了。但是就是这么倒霉,广州突然爆发疫情,所以暂时回不去成都,所以在广州投递了一些简历,开始试试水。在广州也拿到过一些15k到17k的offer。面试的公司大多都是一些中小厂。五月初,广州解封了。怀着激动的心情正式返回成都。5月8号到成都,9号开始正式成都的面试之旅。经过截至到5月17号为止,每天3-4家的面试,一共面试了15、6家的样子了。一共收到7个offer。最终选择了一个给到14k的公司。其他的公司都是最低要的13k,职位定级大概在中级左右的样子。面试就到这里告一段落了。这里对我的面试过程做一个总结,希望对初级、中级的前端小伙伴们在成都找工作的话,或者在其他地方找工作能有所帮助。可以对照下面的我面试过程中遇到的问题试着自己回答一下,看看能回答到什么程度。
这里放一下我个人的技能的清单:
Web框架:Vue2技术栈(vue2+webpack+vuex)、Vue3.0技术栈(vue3+vite+pinia+ts)、jquery
语言:Typescript、Es5、Es6、HTML5、CSS3
前端框架:Bootstrap、element、element plus、移动端vant、vux框架、echartsJs图表框 架、antd-of- vue
前端工具:sass、vscode、stylus、websocket
版本管理、文档和自动化部署工具:Svn/Git/ 单元测试:eslint
英语能力:CET-4级证书,能熟练阅读相关英文文档
其他:使用过wepy+weui开发过小程序、熟悉uniapp开发跨端小程序。熟练使用SuperMap、 百度、高德等地图的功能开发、具有函数编程思想、熟悉通用组件的封装思想。
问题类型
Vue
谈一谈你对vue生命周期的理解?每个生命周期分别做了什么事情?
你用过哪些修饰符?
谈谈vue2跟vue3的区别?
假如让你封装一个自定义指令你的思路是什么?
v-for跟v-if优先级?
vue中数据双向绑定原理?
vue组件通信有哪些?
你二次封装第三方UI库的组件是怎么做的?
vue2中实现响应式的过程介绍一下?在vue3中是怎么实现响应式的呢?
依赖收集这一块你能详细介绍一下吗?
vue中你有没有做过权限这一块的东西?权限的管理你是怎么处理的呢?比如说路由权限、按钮级别的权限、以及登录的权限控制?
你们用的什么去请求后端接口呢?是怎么封装这个axios的?在请求拦截器中除了设置token之外还有没有做其他的操作?在响应拦截器中后端给我们的是一个包含了data、code的对象,但是在业务中只需要用到data,你有什么办法只返回data?
谈一下路由模式以及他们之间的区别
你用过路由的钩子函数吗?用过哪些,说一下用法。
vuex有哪些属性?vuex跟pinia的区别?
nextTick你介绍它的用法?它的原理你了解多少?
diff算法你能介绍一下吗?
事件总线是什么原理?
在vue中你有用到什么设计模式吗?简单介绍一下
webpack跟vite
介绍一下webpack吧?
webpack跟vite的区别?为什么vite的热更新会快?vite的原理
webpack你用的多吗?你一般做了哪些webpack的优化?分包的依据?
plugin跟loader的区别?loader你用过哪些?
es6
谈谈你对es6的看法,以及你用到了哪些es6的新特性?
let const跟var之间的区别?
箭头函数跟普通函数的区别?箭头函数有哪些特性?
es6中怎么实现继承?
扩展运算符用的多吗?
promise的实现过程?你用promise做了哪些操作?它解决了什么痛点?
async/await的用法?他们是怎么实现的?谈谈你对Generator跟yeild的看法
js
js中数据类型你能详细介绍一下吗?怎么去准确判断他们的类型呢?
typeof以及instanceof的用法?
new一个对象的过程(手写一个new)
谈谈你对原型和原型链理解?
浅拷贝和深拷贝的区别?浅拷贝有哪些?实现深拷贝的方法有哪些?试着写一写
闭包理解?你用闭包做了哪些操作?垃圾回收机制?为什么闭包不会被垃圾回收机制回收?我们怎么清除闭包?
防抖和节流的区别?分别简单实现一下
实现继承的方法有哪些?他们的优缺点简单说一下?
事件循环的理解?(这里通常会以代码题的形式考察,让你写出执行的结果)
冒泡捕获的理解?(这里一般只会问概念,有时候会让你实现事件绑定,点击li将点击事件绑定在ul上面)
作用域和作用域链(我遇到的都是问概念)
Ts
ts跟js的区别?
ts实现接口继承怎么做的?
泛型你有用过吗?
css
盒子模型?
实现垂直水平居中的方式?(这里可能涉及到手写)
sass中你用到了哪些特性?他跟css的区别?
动画你用的多吗?(实现一个简单的动画,这里一般不会考察比较复杂,可能就是一个简单的旋转,平移的一些基本操作)
网络相关
http的发展史你有了解过吗?简单介绍一下
强缓存和协商缓存的理解
跨域的解决方案有哪些?前端的解决方案主要有哪些?实现一下jsonp?有用过node代理吗?
get、post的区别?
常见的http状态码?
浏览器从输入网址到最后页面渲染这个过程讲一下?
浏览器渲染页面的过程?
规范相关
假如让你指定团队的规范,你会从哪些方面考虑?(可以从代码的规范、git的规范、开发流程的规范这几个方面谈)
项目
这个根据每个人具体项目来答,一定要注意不熟悉的,不要写上去,不然问到会很尴尬。
你在项目的过程中有遇到什么难点吗?你是怎么解决的?(建议至少准备两个难点,稍微能体现你解决问题能力的,要稍微有点水平的这里发散讲的话,能聊很久)
你对赶项目进度加班的看法是什么?(这个就不用多说了,我爱加班!懂的都懂怎么回答)
其他开放性问题
谈谈你对react的看法?
你用过jsx吗?render函数有用到过吗?
你最近有学习什么东西吗?(由于我最近在学习函数式编程,所以着重谈了一下这一块)
一定要展现出你自己是一个好学的人。
还有很多细节,就是答的越细越好。我遇到的问题大概的话就是这些了。在成都有到14k的样子。总体来说问的东西都不是很难,很少涉及到算法上的问题,不过这一块也要有所准备。希望大家都能收获自己喜欢的offer!