面试告一段落, 把自己的面试体验整理一下, 给各位提供一下备战的思路.
声明: 以下皆是个人观点, 仅供参考之用.
简历投递
前期为了解自身短板, 可以海投一些试试. 不建议长期海投简历, 对用人单位简历筛选和你自身都没什么好处. 投简历之前最起码要关注以下几点(薪资范围, 公司位置, 职位要求, 是否为培训机构冒充招聘).
前端职位类型
现在前端招人分的挺细了, 下面是我印象中几种职位.
- Web 前端开发工程师 (页面重构方面和JS逻辑方面)
- HTML5 前端开发工程师 (一般都是移动端或者 canvas 做游戏)
- WebGL 前端开发工程师 (这是数据可视化的, 三维实时展现数据)
- APP 前端开发工程师 (应该混合 App 开发、RN 都算这里面)
- 微信小程序、公众号开发 前端开发工程师 (我是不准备选, 可能小公司会专门找人做这个)
- PHP/JAVA 前端开发工程师 (公司可能前后端没有完全分离)
- React 前端开发工程师 (做大项目的居多, 业务逻辑复杂)
- Nodejs 工程师 (写服务端的, Node 处理高并发很优秀, CNode 社区很多招的)
公司类型
每个公司的技术栈是不同的, 招人也会倾向于你简历的技术栈.
- 稳健型 使用 jQuery 等历史悠久类库, 一般不用 3 大框架, 重视 JQuery, JS, HTML + CSS 基础和实际效果实现
- 潮流型 普遍大公司或者中小型公司, 会使用 Angular, Vue, React 等框架, 会问框架的具体使用和下面我写的那些东西, 原理偏多,很少问 jQuery.
- 基础型 页面重构&效果呈现, CSS3 + HTML5, 基础 JS 能力, 招你可能就是写页面或者活动页之类的
- 偏门型 招你专做小程序&微信相关东西, 或者WebGL,D3之类的做数据化展示,比较高深,恩..
- 疯癫型 不知所云, 把面试当公司宣传活动或者拿面试题打击你, 我没遇到过, 有人遇到过, 是我的话, 离远点, 只是个人建议.
不管到哪里, 基础都很重要, 恩, 随机应变也很重要.
面试官考教流程
- 你的笔试题, 根据其做延伸.
- 你的简历, 技术栈、工作外学习情况、项目经验. 第一页很重要, 最好都能掌握, 有亮点更好.
- 面试官额外的延展的知识点, 随机问,看你运气和积累(一般会提及到 ES6、解决实际问题的方法、数据结构与算法都有可能).
应对
- 刷题, 各种基础题会帮你快速回忆起来, 比你看书快, 如果基础不好的话, 看书好好学学吧.
- 简历上自己写的东西, 要能说出来.
- 积累, 每次面试不成功就回来填坑吧, 还是有掌握不到位的. 我觉得能坚持下来的话, 找工作只是时间问题.
面试着重点分类
根据公司业务不同, 着重点不一样, 公司能把你简历挑出来, 就说明有用人单位感兴趣的部分.
- 可能你写的是
熟练使用 Vue
, 公司也是这个技术栈. - 可能你知识写的全面, 公司想面面你实际掌握怎么样.
- 可能你项目写的贴合用人单位需要, 比如都是做后台管理的.
框架问题: (Vue 举例, 3框架实质问题差不多, 具体有些差异)
- 封装过哪些组件?有自己写过 UI 组件吗?
- 什么是 MVVM , 和 MVC 是什么区别, 原理是什么?
- 父子组件怎么通信的?
- 兄弟组件怎么通信的?
- 生命周期有哪些, 怎么用?
- Vue 全家桶都用过哪些?具体怎么用?
HTML5 + CSS3
- 盒子模型
- 如何给未知宽高的图片垂直居中对齐? 有几种方法?
- 移动端的 rem 布局.
- 前端可以做哪些优化, 或问你 SEO, 基本都问.
- 清除浮动方式和原理, 基本都问. 几种方式? 原理? 为什么要用伪元素? 具体代码怎么写,为什么这么写?
- 清除浮动就会涉及到 BFC 的问题.
- 给你实际页面例子, 让你口述布局或手写实现细节, 可以使用几种方法, 怎么写兼容性好, 拓展性好.
- 具体 API 哪个 CSS 版本的?
- CSS3 新增了哪些 API?
- 可能问你哪些 API 是 CSS 哪个版本的? 兼容性怎么样.
- CSS hack 是什么? 包含什么? 怎么处理兼容性问题?
- HTML5 新增了哪些 API? 哪些比较常用? 用来做什么? 实际怎么用?
- cookie, session, localStrorage, sessionStorage 区别, 具体怎么用代码去操作?
JavaScript
- 变量声明提升的问题.
- 闭包的原理, 闭包的各种题, 基本都问.
- DOM2 事件流, 冒泡和捕获问题?
- this 指向问题, 一般都是在笔试题里, 拿着问你, 问的比较多.
- call 和 apply 区别? 有的还会加问 bind?
- jQuery 获取复选框选中状态, 为什么要用 prop 方法?
- 面向对象编程中的继承问题, 原型链问题在笔试题里比较常见.
- jQuery API , 各种操作 DOM 用法, 还有一些新的 API, 这种在不用 3 大框架的公司会问的很详细.
- 可能有些考算法结构的, 可以了解一下, 一般前端掌握的很少.
- Ajax 基本都问, 问的细节可能不同, 比如 get 和 post 有什么区别?
- 数组的方法 – es6 以下基本都能熟练使用, 应该会加分不少
- 字符串的方法 – 拼接, 截取, 带些正则
- 数组去重问的挺多的(解法很多, ES6 有很多简短写法)
- ES6 的 Promise , 很多都会问. 如果公司用框架或者你写了, 还会问你 Class.
- var, let, const区别, 问的多.
- 栈和队列结构, 有的会问.
- 跨域问题: 同源策略, 解决方案, 解决原理(比如 jsonp 的原理), 这里都是高发区.
其他
- url 解析过程.
- 缓存的原理.
- TCP 3次握手.
- HTTP 协议.
- 看过哪些技术书籍? 可能直接问你书里的东西, 个人觉得至少 2 本以上储备量吧.
项目
问你用过什么技术, 用过哪些插件解决什么问题之类的, 了解一下你的技术栈.
那些开发用的插件和技术名词最好回想, 整理一下, 不要面试的时候蒙了.
- 负责什么模块?
- 使用到的技术?
- 遇到过什么难题?
- 怎么解决的?
- 工作之外的学习情况? 一般会从侧面了解一下
技术部门架构
- 按照业务线来划分部门, 每个部门配置(运营, 产品, UI, 前端, 服务端, 安卓, ios), 工作效率高, 前端 1-4 人或更多都有可能, 看业务量.
- 按照技术种类划分部门, 交流成本较高.
- 恩, 还有可能前端只有 1 或 2 人.
技术人员配置主要还是看公司业务量的多寡, 和公司产品类型.